嵌入式Linux培训-驱动开发培训课程
培训目标
驱动程序开发是嵌入式Linux项目中工作量最大的一部分内容,开发出高质量的驱动程序是项目成功的关键。随着产品上市周期的缩短,市场对于驱动程序开发 人员的要求也在日益增加。本课程旨在培养具备开发Linux下驱动程序的人才,采用理论教学与实验相结合的方式,系统地介绍Linux下设备驱动程序开发过程。通过本课程的 学习,学员可以掌握Linux下字符设备、块设备、网络设备、framebuffer设备、sd卡等驱动程序、usb驱动的开发,同时掌握嵌入式Linux的系统开发和分析方法。
培训对象
Linux系统驱动开发工程师、Linux中高级软件工程师以及内核开发人员。
入学要求
学员学习本课程应具备下列基础知识:
◆ 熟练使用Linux操作系统,如学员具有一定的Linux内核阅读经验,效果会更好;
◆ 熟悉C语言,熟悉指针、结构体等概念;
◆ 了解接口电路和数字电路的知识,最好具有电路设计经验。
培训大纲
第1-2部分
|
|
学习目标
|
通过本课学习,学员可以从用户设备I/O编程角度深入了解设备驱动的原理;通过了解字符设备驱动框架和具体硬件设备I/O操作,能够进行字符设备驱动开发;了解linux3.x内核的设备模型及掌握udev的使用。
|
|
|
1. LINUX字符设备驱动程序开发
1.1 LINUX字符设备驱动基础
1.2 字符设备驱动程序实现框架与典型驱动分析
1.3 用户空间与内核空间的数据传输
1.4 同步、互斥、阻塞、睡眠机制
1.5 Linux-3.x/4.x设备模型与sysfs文件系统
1.6 udev与devfs文件系统
|
|
|
|
|
第3-4部分
|
|
学习目标
|
通过本课学习,学员可以掌握在基本字符设备驱动的基础上增加复杂的内核机制;了解1inux内核中断子系统的实现原理,掌握linux中断处理程序编写方法;掌握内核延时机制及内存管理机制。
|
|
|
2. 设备驱动中常用的内核机制
2.1 Poll和select操作
2.2 异步通知机制
2.3 1inux内核中断子系统
2.4 中断处理程序编写
2.5 驱动程序上/下半部处理与延缓执行机制
2.6 内核定时器与延迟机制
2.7 内核内存管理机制
|
|
第5部分
|
|
学习目标
|
通过本课学习,学员可以明白Linux中块设备驱动的特点及框架,独立分析Linux中大部分块设备的驱动方法,并熟悉MTD设备驱动的特点与框架。通过实验,学员还可以掌握Ramdisk驱动移植方法。
|
|
|
3. LINUX块设备驱动程序开发
3.1 块设备及其驱动的特点
3.2 块设备驱动程序中两个关键结构体GEN_DISK与REQUEST
3.3 块设备驱动程序的注册与请求处理
3.4 MTD设备的特点以及与块设备的关系
3.5 MTD设备驱动的框架及关键结构体分析
|
|
第6部分
|
|
学习目标
|
网络设备是嵌入式产品开发,特别是基于网络的产品开发中最重要的内容之一。通过本课学习,学员可以深入理解Linux网络驱动程序中有关套接字(socket)、套接字缓冲区(sk_buff)等概念,了解网络驱动程序的数据交换过程。通过实际的动手操作,学员将掌握如何移植或编写具体网卡的驱动程序,并在此基础上实现更为高级的网络功能。
|
|
0
|
4. LINUX网络设备驱动程序开发
4.1 OSI网络参考模型
4.2 套接字(SOCKET)简介
4.3 套接字缓冲区(SK_BUFF)
4.4 NET_DEVICE结构分析
4.5 数据包传送与接收
4.6 网络驱动的中断处理
4.7 网络设备驱动程序的基本实现
|
|
第7部分
|
|
学习目标
|
通过本课学习,学员可掌握嵌入式Linux显示驱动程序的开发方法,理解嵌入式Linux图形驱动程序实现机制,能够移植或编写嵌入式显示控制器驱动程序,并完成针对各种LCD硬件的定制。
|
|
|
6. LINUX帧缓冲驱动程序开发
6.1 帧缓冲显示技术
6.2 帧缓冲驱动程序显示原理
6.3 帧缓冲驱动程序的数据结构
6.4 帧缓冲驱动程序的API
6.5 帧缓冲驱动程序的基本实现
6.6 使用高级图形库
7. 触摸屏驱动开发
7.1 触摸屏工作原理
7.2 触摸屏控制器工作原理
7.3 触摸屏驱动程序编写
|
|
|
【实验】
|
|
第8部分
|
|
学习目标
|
掌握USB通讯规范及拓扑结构中的主机控制器、HUB、USB设备的工作流程;掌握 USB device控制器的工作原理;最后在开发板上编写usbtransfer固件程序,结合PC机上windows环境下的DNW软件,实现基于usb的文件下载功能。通过Linux下USB驱动开发内容的学习,学员将深入理解Linux内核USB子系统,掌握USB驱动程序编写技术。经过学习后的学员能够移植或编写USB主机OHCI和设备驱动程序,最后通过对usbtransfer设备的驱动编程,实现在linux环境下的文件下载功能(替换DNW的下载功能)。
|
|
|
8. LINUX下USB驱动开发基础
8.1 USB规范介绍
8.2 USB主机控制器
8.3 USB HUB
8.4 USB设备状态
8.5 USB描述符
8.6 USB请求
8.7 USB通讯数据格式
8.8 USB device控制器
8.9 编写usbtransfer固件程序
9. LINUX下USB驱动实例
9.1 Linux USB驱动层次
9.2 Linux USB主机控制器驱动介绍
9.3 Linux USB HUB驱动介绍
9.4 Linux USB 设备驱动程序
9.5 编写usbtransfer设备驱动程序
9.6 编写usbtransfer设备应用程序
|
|
|
【实验】
|
|
如果您想学习本课程,请
预约报名
如果没找到合适的课程或有特殊培训需求,请
订制培训
除培训外,同时提供相关技术咨询与技术支持服务,有需求请发需求表到邮箱soft@info-soft.cn,或致电4007991916
技术服务需求表点击在线申请
服务特点:
海量专家资源,精准匹配相关行业,相关项目专家,针对实际需求,顾问式咨询,互动式授课,案例教学,小班授课,实际项目演示,快捷高效,省时省力省钱。
专家力量:
中国科学院软件研究所,计算研究所高级研究人员
oracle,微软,vmware,MSC,Ansys,candence,Altium,达索等大型公司高级工程师,项目经理,技术支持专家
中科信软培训中心,资深专家或讲师
大多名牌大学,硕士以上学历,相关技术专业,理论素养丰富
多年实际项目经历,大型项目实战案例,热情,乐于技术分享
针对客户实际需求,案例教学,互动式沟通,学有所获