自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 资源 (3)
  • 收藏
  • 关注

原创 全志V3s音频设备驱动

ALSAalsa子系统初始化linux-5.1.0\sound\core\sound.c// 定义固定的alsa主设备号#define CONFIG_SND_MAJOR 116 /* standard configuration */static int major = CONFIG_SND_MAJOR; snd_major = major;// 使用定义的主设备号注册字符设备,此时没有创建设备文件,统一使用snd_fops文件操作接口if (register_chrdev(major

2021-03-19 16:53:24 1751 1

原创 goodix触摸屏(IIC)外设驱动

module_i2c_driver的i2c_driver与i2c_client匹配过程新驱动宏展开:module_i2c_driver(goodix_ts_driver);linux-5.1.0\include\linux\i2c.h#define module_i2c_driver(__i2c_driver) \ module_driver(__i2c_driver, i2c_add_driver, \ i2c_del_driver)module_driver展开:#define mo

2021-03-19 15:05:21 2309

原创 GPIO子系统

参考文章Linux驱动开发(十一):pinctrl子系统和GPIO子系统GPIO子系统的作用在以前的内核版本中,如果要配置GPIO的话一般要使用IC厂家实现的GPIO配置函数,例如三星的配置函数为/*设置为输入*/s3c_gpio_cfgpin(EXYNOS4_GPC0(3),S3C_GPIO_INPUT);/*不上拉不下拉*/s3c_gpio_setpull(EXYNOS4_GPC0(3),S3C_GPIO_PULL_NONE);这样带来的问题就是各家有各家的接口函数与实现方式,不但内核

2021-03-18 16:14:03 206

原创 Pinctrl子系统

参考文章Linux驱动开发(十一):pinctrl子系统和GPIO子系统PINCTRL (PIN CONTROL) subsystempinctrl子系统的作用大多数SOC的PIN都是支持复用的,所以在配置时要考虑复用的设置,此外还要配置PIN的电气特性,比如上下拉、速度、驱动等pinctrl子系统的主要工作内容:获取设备树中pin信息根据获得到的pin信息来设置pin的复用功能根据获得到的pin信息来设置pin的电气特性,比如上下拉、速度、驱动能力对于我们使用者来说,只需要在设备树里

2021-03-18 16:13:53 265

原创 中断子系统

中断,从硬件到软件中断时异常向量表中的一种,中断产生,中断向量会被调用,具体Soc软件设置的中断入口handle_arch_irq会被调用,一个Soc仅有一个该中断入口。具体Soc有多个硬件中断,具体哪个中断触发了,是通过中断控制器的寄存器bit判断的,确定硬件中断号。硬件中断号与虚拟软件中断号之间的映射有一个偏移值,通过硬件中断号可以找到软件中断号,进而调用软件中断处理函数,有多少个硬件中断号就有多少个软件中断处理函数。Soc中断向量入口函数不同的Soc调用该函数设置handle_arch_

2021-03-17 17:57:26 509 1

原创 USB Core核心层

usb核心为设备提供两个功能:枚举,利用的是:hub的检测和controler的urb中断传输功能。设备每个接口的数据通信,利用的是:controler的urb传输功能。

2021-03-17 15:52:10 309

原创 全志V3s USB PHY驱动分析

USB PHY作用USB控制器接受的是数字信号,USB PHY负责:在USB控制器与USB接口之间做数字信号与模拟信号的转换。参考:维基百科 PHYusb-phy设备树节点usbphy: phy@01c19400 {compatible = “allwinner,sun8i-v3s-usb-phy”;reg = <0x01c19400 0x2c>,<0x01c1a800 0x4>;reg-names = “phy_ctrl”,“pmu0”;clocks = &

2021-03-17 15:45:27 1286

原创 全志V3s USB控制器驱动分析

USB Controler与USB PHY参考: USB芯片到底完成了哪些工作?设备树节点ehci0: usb@01c1a000 { compatible = "allwinner,sun8i-v3s-ehci", "generic-ehci"; reg = <0x01c1a000 0x100>; interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>; clocks = <&ccu CLK_BUS_EHCI0>,

2021-03-17 15:33:47 1528

原创 全志V3s IIC控制器驱动分析

设备树节点i2c0: i2c@01c2ac00 { compatible = "allwinner,sun6i-a31-i2c"; reg = <0x01c2ac00 0x400>; interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>; clocks = <&ccu CLK_BUS_I2C0>; resets = <&ccu RST_BUS_I2C0>; pinctrl-names = "de

2021-03-17 14:05:58 849

原创 Linux文件系统

找一个字符设备进行挂载:[root@/]# mount /dev/ttyS0 /tmpmount: mounting /dev/ttyS0 on /tmp failed: Block device required根据提示只能挂载块设备。

2020-11-11 09:20:07 880

原创 linux 内核书籍记录

《Linux内核设计与实现(原书第3版)》《Linux内核探秘深入解析文件系统和设备驱动的架构与设计》《LINUX内核修炼之道 (任桥伟)》《嵌入式Linux应用开发完全手册].韦东山》《ARM Linux内核源码剖析》《Linux Device Drivers.3rd.Edition》《Linux内核源代码情景分析》《Linux设备驱动开发详解:基于最新的Linux4.0内核》《Understanding Linux Kernel》《深入Linux内核架构》...

2020-11-11 09:02:14 249

BlueZ,Linux Bluetooth Development,Linux 蓝牙开发

BlueZ,Linux Bluetooth Development,Linux 蓝牙开发

2022-05-27

蓝牙HCI抓包方法,bluetooth hci log capture

蓝牙HCI抓包方法,bluetooth hci log capture

2022-05-27

蓝牙5.0协议核心规范 bluetooth spec V5.2

蓝牙5.0协议核心规范 bluetooth spec V5.2

2022-05-27

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除