驱动开发是整个嵌入式软件开发中技术含量最高、难度最大,同时也是薪资最高、工作机会最少的一块,处在整个嵌入式软件开发的食物链上游。通过前面4部分课程的学习,大家已经掌握了比较好的基础,因此本课程能够有机会带大家更深入的去解析linux的内核驱动机制,譬如platform总线、I2C、input子系统、framebuffer子系统,驱动的分离与分层原则,三种驱动模型(字符设备、块设备、网络设备)等等。这些内容再加上具体硬件的操作特性其实就是驱动开发的主体了,因此对这些内容的掌握其实就意味着你已经入门驱动开发了,至少可以大方的在自己的求职简历上写上“熟悉linux下常见驱动的调试开发”。
《Linux驱动开发》总计11个课程(112节、60小时),是《朱有鹏老师嵌入式linux核心课程》的第5部分,也是最后一部分了。
主讲内容:
本课程是linux驱动开发的第3个课程,接上部分继续讲解字符设备驱动的开发要点,重点是相关的内核源代码的解析和一些真正驱动惯用的编程手法的引入。本课程的目的是让大家开始逐渐习惯和熟悉真正内核驱动的特征,为后续学习真正的驱动代码打下基础。
适用人群:
本课程是linux驱动开发的第3个课程,要求学过前面的课程,尤其是C语言高级专题及驱动基础等课程,有一定编程能力才能学习。
通过本课程学习,你将学会:
新接口如何自动分配设备号
C语言如何以面向对象的编程方式来实现linux内核
字符设备驱动注册相关的接口函数
class_create和device_create内部的实现原理
如何使用class_create和device_create这两个接口来让字符设备驱动借助设备类自动创建及删除设备文件
掌握静态映射的实现细节
章节 1 : 注册字符设备驱动新接口
章节 2 : 字符设备驱动注册代码分析
章节 3 : 自动创建字符设备驱动的设备文件
章节 4 : 设备类相关代码分析
章节 5 : 静态映射表建立过程分析
章节 6 : 动态映射结构体方式操作寄存器
章节 7 : 内核提供的读写寄存器接口