嵌入式Linux驱动开发

2019-04-13 11:29发布

嵌入式Linux驱动开发

培训时间:
1、连续七天上课(强化班)
2、7个周末完成,周六全天(周末班)
3、每晚两学时,共28天完成(晚上班)
课程要求:
  该课程综合了嵌入式Linux底层驱动开发要点,专门针对有一定嵌入式Linux基础的学员,要求熟悉C语言、单片机、简单的模电、数电知识,并对Linux操作系统有一定的概念,希望对嵌入式Linux底层驱动开发进行系统学习的学员。
课程目标:
  通过本课程的学习,可以使嵌入式工程师对嵌入式Linux设备驱动开发系统、全面的掌握,熟悉在设备驱动开发过程中的注意事项,并能够独立胜任复杂的嵌入式Linux设备驱动开发,独立完成这些驱动的调试、修改、移植等任务。
课程内容要求:
1、熟悉GNU/Linux C语言部分扩展语法
2、精通Linux操作系统使用
3、熟悉嵌入式处理器底层驱动开发原理
4、掌握系统对设备发起的各项并发操作的解决方案
5、学会熟练使用Linux驱动常用内核机制,如中断、并发、同步/异步、定时器、内核线程等操作
6、掌握Linux设备驱动原理框架和调试技巧
7、熟悉工程中常见Linux下多种字符设备、framebuffer设备、块设备、MTD设备、网络设备、USB设备的驱动开发
8、熟练运用platform、杂项、IIC、SPI、V4L2、ALSA、input、frombuffer等子系统在工程项目中的应用
9、掌握最新嵌入式Linux内核驱动裁剪、移植、及开发方法
10、通过项目实践验收学习成果
课程体系:
一、Linux设备驱动大军—字符设备

课程内容:
1.字符驱动基本概念
2.字符驱动框架分析与内核实现
3.设备文件相关知识介绍及使用
4.GPIO硬件驱动设计
5.sys、proc文件系统介绍及使用
实战项目:
1.字符驱动框架实现(scull驱动)
2.led流水灯驱动
3.1*5按键驱动
4.标准GPIO驱动
二、Linux设备驱动规则—内核机制
课程内容:
1.Linux中断机制的使用以及底半部延后操作
2.Linux并发问题分析,学习并练习使用多种并发处理机制
3.Linux定时器、延时机制的应用
4.阻塞和非阻塞机制讲解与使用
5.select poll机制应用分析
6.内核线程的应用
实战项目:
1.中断方式按键驱动(采用定时器实现连续键、长短键、组合键等功能)
2.并发处理机制在实际工程中的应用
3.阻塞非阻塞功能的添加与实现
4.通过按键驱动掌握内核线程的应用
三、Linux设备驱动模型—经典子系统
课程内容:
1.杂项子系统解析
2.platform机制详解和实例应用
3.input子系统框架分析和应用
4.spi、i2c协议介绍,时序模拟
5.Linux下spi、i2c子系统分析和实战应用
实战项目:
1.杂项驱动注册实例及流程分析
2.Linux内核源码添加platform资源和platform驱动
3.input标准输入设备驱动
4.spi接口呼吸灯驱动(IO模拟方式 + 子系统方式)
5.i2c接口温湿度传感器驱动(IO模拟方式 + 子系统方式)
四、数据存储技术—块设备及MTD设备
课程内容:
1.Linux块设备驱动框架解析
2.ramdisk驱动实例的设计与实现
3.MTD设备驱动框架分析
4.s5pv210下nand flash驱动分析
实战项目:
1.ramdisk(虚拟内存盘)驱动实例开发
2.Linux格式化、分区操作练习
3.nand flash驱动实例练习和分析
4.MTD驱动框架跟踪实现
五、多媒体开发技术—framebuffer驱动
课程内容:
1.framebuffer显示机制分析
2.framebuffer设备驱动实现机制
3.framebuffer上层应用接口
4.framebuffer应用实例,基于图形库的UI界面
实战项目:
1.基于Linux3.0.8内核的RGB接口LCD驱动移植项目
2.framebuffer设备的上层应用
3.基于图形库的图片浏览器项目
4.多点触摸电容屏项目实战
六、网络通信技术—Linux网络设备驱动
课程内容:
1.网络模型介绍
2.socket接口介绍及使用
3.网络数据包收发流程
4.网络设备驱动框架分析
5.网卡驱动实现(SMSC911x、DM9000、ENC28J60)
实战项目:
1.基于Linux3.0.8内核的SMSC911x网卡驱动移植项目
2.SPI接口ENC28J60网卡驱动移植项目
3.进行网络即时通讯工具的设计与实现
七、USB数据通信技术—Linux USB高级驱动
课程内容:
1.USB2.0协议规范
2.USB主控制器规范
3.USB设备枚举过程
4.USB子系统简析
5.USB主控制器(OHCI、EHCI)驱动分析
6.USB集线器(Hub)驱动分析
7.USB设备驱动程序编写
实战项目:
1.USB键盘驱动开发实战
2.USB子系统工作流程分析
3.USB子系统sys目录结构分析与使用