Linux,IIO驱动完结有感

描述

1. 我录制45天,你学完只需要1天

历时1个半月,驱动大全IIO驱动完结了!20个视频,时长5小时45分钟。大纲如下:

01.1_IIO子系统简化框架
01.2_DHT11操作原理与编程思路
01.3_DHT11驱动程序体验_IMX6ULL
01.3_DHT11驱动程序体验_STM32MP157
01.4_DHT11驱动程序分析
01.5_通道的sysfs信息修改与体验
02.1_iio_buffer的核心要素与体验
02.2_增加iio_buffer并体验sysfs
02.3_实现iio_buffer的写入
03.1_iio_trigger的引入与体验
03.2_iio_trigger内部机制
03.3_iio-trig-hrtimer分析
03.4_修改DHT11驱动使用iio_trigger
04.1_iio_event的引入与体验
04.2_修改DHT11驱动使用iio_event_编程
04.3_修改DHT11驱动使用iio_event_上机测试
04.4_使用trigger写iio_event(不实用)
05.1_驱动示例_IMX6ULL的ADC驱动
05.2_驱动示例_STM32MP157的ADC驱动
05.3_STM32MP157的ADC驱动分析

2. Linux驱动:用起来很爽,能用起来很困难

Linux驱动的发展已经形成了一个又一个的山头,触摸屏有"输入子系统",I2C设备有"I2C子系统"。

硬件的差异必然导致访问的差异,这很正常。

但是对于IIO子系统,在常规的"/dev/xxx"设备节点外,又增加了"sysfs"文件的访问,

而你要理解如何使用这些"sysfs",又必须理解IIO子系统的设计思路,

也就是一个写APP的人,需要去理解内核IIO子系统的知识。

即使作为Linux驱动开发工程师,去理解IIO子系统也是困难的:

它使用"虚拟中断控制器"管理传感器的硬件操作函数,

使用各类"trigger"l来实现不同方式的读取方法:比如循环读取、周期性读取。

听不懂了吧?

我一开始也是懵的!你能一下子看懂下面这个框图吗?

Linux

Linux内核里,习惯引入大量的结构体,引入新的框架,但是又没有足够的注释。

这就导致:

对于某个知识点,已经学会的人用起来很高效、很爽

但是,如果你想"学会",成本很高,很耗时

这就导致很多驱动开发者,直接越过各类框架,比如越过IIO子系统,简单粗暴地使用字符设备操作传感器。

3. 百问网的意义

我们研究Linux,转换为教程,让工程师更高效地理解、使用Linux,这就是我们存在的意义。

比如PCIE驱动,我们录制了半年;IIO驱动,我们录制了1个半月;你们只需要学习几天。

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分