课程目标
本课程以案例教学为主,系统地介绍Linux下有关FrameBuffer、MMC卡、USB设备的驱动程序开发。参加本课程学习的学员,因为具备了Linux设备驱动开发基础,所以本课程针对性较强,能在短期内掌握上述几类设备的开发。
培养对象
Linux系统驱动开发工程师、Linux中高级软件工程师以及内核开发人员。
入学要求
学员学习本课程应具备下列基础知识:
◆
熟练使用Linux操作系统,具备一定的Linux内核知识;
◆ 了解Linux驱动开发基础(学员好具备驱动初级班知识);
◆
了解MMC/SD协议、USB协议效果会更好。
师资团队
【王 辉】
● 讲师,7年嵌入式开发经验,针对多款硬件平台(PowerPC8xx,Xscale,s3c2410,s3c2440,Mx1,Mx21,Mips,Parisc)进行嵌入式Linux裁减及移植工作,对其它嵌入式操作系统(eCos,WindowsCE)也有深入的研究。同时具有深厚的硬件功底,独自一人完成过上述多款平台从电路图设计,pcb布线,裸板的调试,bootloader编写,操作系统(linux、WindowsCE)移植及驱动开发,上层开发库及应用的移植一整套开发工作。
■ 点击此处在线试听王老师新授课视频>>>
【宋宝华】
● 讲师,多年嵌入式系统从业经验,熟悉嵌入式系统软硬件设计的全过程,有丰富的嵌入式系统硬件设计经验,精通嵌入式Linux、Vxworks操作系统,尤其擅长Linux设备驱动开发,原创性地完成多种设备的驱动程序的开发。曾指导完成多个大型嵌入式项目的软硬件设计,涉及通信、网络、控制等领域。对嵌入式系统移植有很强的经验,曾在X86/ARM//PowerPC等体系结构平台上移植Linux内核、VxWorks系统。著有《Linux设备驱动开发详解》一书。
【周 明】
● 讲师,具有10年嵌入式技术从业经验和6年嵌入式linux驱动开发经验,对于嵌入式Linux的实现和应用有深入研究,主持开发过多个大型嵌入式项目,涉及网络,通讯,控制,信息终端等各行各业,例如航天在轨数据采集系统、地震数据采集分析系统、车载MP4设备等。对系统移植有很强的经验,在X86/ARM/XSCALE/PowerPC/MIPS等各种体系结构平台上移植Linux内核;对于嵌入式Linux的实时性和Montavista Linux的特点有深入研究。
■ 点击此处在线试听周老师新授课视频>>>
更多师资力量请参见华清远见师资团队。
教材
◆
《华清远见-嵌入式Linux驱动开发培训讲义》
◆
《Linux设备驱动开发详解》(2008.01出版) 华清远见 编著
班级规模及环境
为了保证培训效果,增加互动环节,我们坚持小班授课,每期报名人数限15人,多余人员安排到下一期进行。人手一套开发板和开发用的PC主机。 >>单击查看实验设备
时间地点
北京总部(滚动开班):
上课地点:北京清华大学
周末班(周六日上课):2008年7月26日,2008年8月30日,2008年9月13日
连续班(连续上课):2008年7月26日,2008年8月30日,2008年9月13日
上海分中心(滚动开班):
上课地点:上海徐汇区银海大厦A座2层
周末班(周六日上课):2008年7月12日,2008年9月13日,2008年10月4日
连续班(连续上课):2008年7月12日,2008年9月13日,2008年10月4日
深圳分中心(滚动开班):
上课地点:深圳大学
周末班(周六日上课):2008年9月27日,2008年11月22日
连续班(连续上课):2008年9月27日,2008年11月22日
学时费用
◆课时: 共4天,每天6学时,总计24学时
◆培训费用(含教材费):3200元,个人自费(2900元),学生自费(2500元,凭有效证件)
◆认证费(可选):300元(项目考核通过,颁发由软件行业协会嵌入式分会认证的《Linux设备驱动开发高级工程师》证书)
新优惠
◆团体报名优惠措施:两人95折优惠,三人或三人以上9折优惠
质量保障
1、培训过程中,如有部分内容理解不透或消化不好,可免费在下期培训班中重听;
2、培训结束后免费提供一个月的技术支持,充分保证培训后出效果;
3、培训合格学员可享受免费推荐就业机会。
课程进度安排(新更新日期:2008.01.10)
时间
课程大纲
第一天
学习目标
通过对Linux帧缓冲内容的学习,学员可掌握嵌入式Linux显示驱动程序的开发方法,理解嵌入式Linux图形驱动程序实现机制,能够移植或编写嵌入式显示控制器驱动程序,并完成针对各种LCD硬件的定制。
9:00
|
12:00
1. LINUX帧缓冲驱动程序开发
1.1 帧缓冲显示技术
1.2 帧缓冲驱动程序显示原理
1.3 帧缓冲驱动程序的数据结构
1.4 帧缓冲驱动程序的API
1.5 帧缓冲驱动程序的基本实现
1.6 使用高级图形库
13:00
|
16:00
【实验】
1、熟悉FRAMEBUFFER驱动的结构
2、熟悉FRAMEBUFFER中的重要数据结构
3、编写S3C2410彩色LCD控制器驱动程序
4、编写测试程序控制屏幕显示
5、编译高级图形库例子,显示图形
第二天
学习目标
通过Linux下MMC/SD卡驱动开发内容的学习,学员可以了解MMC/SD卡的物理及电气特性,熟悉相关的工作协议,并在此基础上能够移植或编写Linux下的MMC/SD控制器的驱动程序。
9:00
|
12:00
2. LINUX下MMC/SD卡驱动开发
2.1 嵌入式系统中几种常见存储介质的比较(NOR/NAND FLASH、CF、MMC/SD)
2.2 MMC/SD卡物理及电气规范简介
2.3 MMC/SD卡工作中的关键命令及关键结构信息
2.4 S3C2410(S3C2440)中MMC/SDHOST控制器分析
2.5 LINUX中MMC/SD存储卡驱动程序结构分析
2.6 S3C2410(S3C2440)中MMC/SD HOST控制器的驱动实现
13:00
|
16:00
【实验】
1、MMC/SD协议分析与布线原则
2、在LINUX源码中加入针对ARM平台的MMC/SD主控制器驱动的支持
3、以所给的驱动模板为基础,补充初始化及命令和数据传输的关键代码,终可以使用此代码成功驱动SD存储卡
第三天
学习目标
通过Linux下USB驱动开发内容的学习,学员将明白Linux中USB设备驱动的特点及层次结构,了解USB设备的初始化流程,从而进行USB设备驱动的简单开发。
9:00
|
12:00
3. LINUX下USB驱动开发基础
3.1 LINUX内核对USB的支持
3.2 USB主控制器初始化
3.3 USB主控制器层次结构
3.4 USB HUB初始化
3.5 USB HUB对端口监控
3.6 USB设备探测
3.7 USB总线地址分配
3.8 USB设备的初始化
13:00
|
16:00
【实验】
1、使用USBVIEW工具察看LINUX内核对USB的支持,以及USB总线拓扑
2、使用SYSFS分析USB层次结构
3、调试分析USB HUB驱动,察看设备初始化过程
4、编写USB骨架程序
第四天
学习目标
通过Linux下USB驱动高级开发内容的学习,学员将深入理解Linux内核USB子系统,掌握USB驱动程序编写技术。经过学习后的学员能够移植或编写USB主机OHCI和设备驱动程序,后通过具体的USB设备,实现高级的USB驱动程序。
9:00
|
12:00
4. LINUX下USB驱动高级开发
4.1 USB HOST CONTROLLER OHCI芯片实现
4.2 USB STORAGE设备初始化
4.3 USB STORAGE与SCSI块设备交互
4.4 USB STORAGE设备的协议转换
4.5 USB 网络芯片DM9601初始化
4.6 DM9601设备加载与卸载
4.7 DM9601设备数据发送与URB处理
4.8 使用USB中断
13:00
|
16:00
【实验】
1、调试USB STORAGE初始化过程和数据存储,实现完整的U盘驱动
2、调试DM9601芯片加载/卸载,数据包传递以及USB中断行为,构建基于DM9601芯片的USB-NET系统上下部支持
3、调试并移植USB-网卡驱动程序
4、调试并移植USB-RS232驱动程序