1.嵌入式Linux驱动程序开发
嵌入式Linux驱动程序开发包罗万象linux命令tar,基本上每位点都要大约了解一下。
1.1软件工具
Makefile必需要把握一些linux应用程序,至于Kconfig太简单了只是个配置文件算不上程序技能。shell也必须会一点,由于makefile常常调用shell指令。
1.2内核API
作为驱动程序的原料,大约了解有哪些内核API函数可以拿来组合驱动特别重要。
1.3操作系统基本概念和代码实现
内核的操作系统直接相关的并发、阻塞非阻塞、异步通知、中断和时钟、内存管理等基本概念以及它们的代码实现。这一块内容虽然都涉及操作系统基本原理,以及它们在linux内核中是怎样实现的linux设备驱动程序 视频,假如懂操作系统基本原理很容易理解。不过有基本概念和了解怎样C代码实现是两码事,有人很懂原理叫他用C代码实现下来就卡壳了,这也是C语言基础不过关的提现。
1.4驱动分离分层概念和实现
设备(设备树编撰更改)、总线、驱动概念和实现,非常是刚开机解析设备树、建立设备数组的理解。还有主机侧和设备测驱动的分离概念和实现。
1.5低级驱动框架
proc、sysfs(udev)、I2C、SPI等一对一的低级驱动框架linux设备驱动程序 视频,早已它们怎样在驱动代码中彰显的。
1.6中级驱动框架
USBwifi、UVC、SPIADC、V4L2、framebuffer、spiflash等一个驱动包括多个低级框架的中级驱动框架。字符设备、块设备、网络设备这些泛泛的概念最好无视,从具体的对应的驱动去学习。通常在具体驱动会听到core、client、master三个部份还有特别多的源文件,基本上看不到单个源文件的驱动程序。
1.7应用层插口
设备号,sysfs(udev)、proc的实现和在应用层的表现。
1.8调试方式
printk方式最常用。proc、GDB、打桩等方式由于比较复杂通常比较少用。内核模块调试方式也常常用,把驱动弄成一个.ko文件可以放到应用层单独加载运行,可以随时替换修改调试比较便捷。