简介:Linux驱动程序开发作为嵌入式软件开发中技术含金量最高的内容,是大部分嵌入式软件工程师所希望从事的技术方向。本课程将硬件知识、内核态编程知识和驱动编程框架的知识融为一体,详细介绍了字符设备、块设备、网络设备的驱动开发过程。理论与实践相结合实现了常见硬件的驱动程序,以及驱动实现过程中常用的调试和故障排查技巧,力图使学员达到中高级驱动开发水平。
课程章节
第01课 Linux驱动编程初步
-
课时1驱动程序开发的行业特点
-
课时2Linux驱动程序开发技能需求
-
课时3Linux驱动程序开发学习方法
-
课时4安装交叉编译工具
-
课时5编译内核源码
-
课时6tftp加载内核、设备树
-
课时7nfs方式挂载根文件系统
-
课时8source insight创建内核源码工程
第02课 内核编程基础
第03课 字符设备驱动编程框架
-
课时1字符设备核心数据结构
-
课时2静态分配设备号
-
课时3动态分配设备号
-
课时4关于cdev的API
-
课时5编程实例
-
课时6用户空间调用驱动函数
-
课时7实现原理
-
课时8一个cdev管理多个字符设备
第04课 gpio子系统
第05课 内核空间和用户空间的数据交换
第06课 ioctl
第07课 设备文件的自动创建
第08课 platform总线
-
课时1总线驱动模型三要素
-
课时2platform总线
-
课时3platform总线编程实例一
-
课时4platform总线编程实例二
-
课时5platform总线编程实例三
-
课时6设备和驱动的匹配方式
-
课时7platform总线的优势
第09课 设备树
-
课时1什么是设备树
-
课时2设备树节点
-
课时3设备树属性
-
课时4编写设备树节点
-
课时5内核对设备树的解析
-
课时6找节点
-
课时7找属性
-
课时8找value
第10课 设备树版本的LED驱动程序
第11课 Linux中断处理
-
课时1裸板中按键中断处理
-
课时2内核中提供的中断相关的API
-
课时3编写按键对应的设备树节点
-
课时4按键驱动编程一
-
课时5按键驱动编程二
-
课时6Linux中断子系统
-
课时7中断处理函数的特点
第12课 中断底半部机制
-
课时1软中断
-
课时2tasklet的使用
-
课时3tasklet使用的注意事项
-
课时4工作队列的使用
-
课时5与tasklet的对比分析
-
课时6delayed_work
第13课 Linux内核中的定时与延时
第14课 内核的竞态与并发
-
课时1按键设备的用户空间访问
-
课时2按键设备独占访问的简单实现
-
课时3简单实现中存在的BUG
-
课时4竞态与并发的基本概念
-
课时5中断屏蔽
-
课时6原子操作
-
课时7自旋锁
-
课时8自旋锁使用的注意事项
-
课时9信号量
第15课 IO模型
-
课时1阻塞IO基础
-
课时2阻塞IO编程
-
课时3阻塞IO原理
-
课时4非阻塞IO
-
课时5支持多路复用
-
课时6select实现原理分析
-
课时7poll实现原理分析
-
课时8epoll实现原理分析
-
课时9信号驱动IO
-
课时10异步IO
第16课 内存管理
-
课时1高端内存&低端内存
-
课时2动态分配内存API
-
课时3内核中的出错处理
-
课时4IO内存基本概念
-
课时5LED驱动硬件分析
-
课时6ioremap控制LED编程实例
-
课时7mmap控制硬件
第17课 input子系统
-
课时1什么是input子系统
-
课时2input子系统的使用方式
-
课时3input版按键设备树节点
-
课时4实现和platform_driver的匹配
-
课时5获取设备树节点中的硬件信息
-
课时6注册input_dev
-
课时7硬件相对代码实现
-
课时8通过hexdump访问设备
-
课时9编程访问输入设备
-
课时10input子系统的框架分析
第18课 I2C设备驱动
-
课时1裸板SI7006驱动实现回顾
-
课时2IIC总线驱动的启用
-
课时3IIC设备驱动框架
-
课时4IIC设备的添加
-
课时5设备和驱动的匹配
-
课时6读取电子串号
-
课时7读取温湿度值
-
课时8编写测试程序验证
-
课时9GPIO模拟I2C通信
第19课 SPI设备驱动
-
课时1裸板数码管驱动实现回顾
-
课时2SPI总线驱动的启用
-
课时3SPI设备驱动框架
-
课时4SPI设备的添加
-
课时5设备和驱动的匹配
-
课时6spi_write函数的使用
-
课时7按照混杂子系统框架完善驱动程序
-
课时8编写测试程序验证
-
课时9GPIO模拟SPI通信
第20课 块设备驱动
-
课时1块设备驱动编程基础
-
课时2块设备驱动的框架
-
课时3块设备驱动编程一
-
课时4块设备驱动编程二
-
课时5块设备驱动编程三
-
课时6块设备驱动的测试
第21课 网络设备驱动
授课讲师
-
孟健老师
高级讲师
关于讲师
计算机硕士,握奇数据、中国高科等大型企业技术骨干。从事人工智能、嵌入式等方向技术研发。拥有多年一线开发、教研经验,擅长图形图像的分类、检测、分割算法。
课程推荐
- 系统移植 试听 1754
- C语言项目小游戏-中国象棋小游戏 试听 1449
- C++开发基础 试听 6582
- FreeRTOS操作系统 试听 29126
学习服务
- 技术大牛直播授课
- 实时学情管理
- 课后作业批改,BUG诊断
- 辅导老师当堂答疑
- 学习规划,专属学习方案