课程背景 |
开放的 Linux 受到广泛的欢迎,得到越来越多公司的支持,但是阻碍 Linux 在各个领域广泛应用的主要因素就是内核/驱动高端人才极度缺乏,Linux源代码中85%是设备驱动,嵌入式系统中驱动程序更为重要,几乎每一个嵌入式系统都是从驱动程序员手中调试出来的。然而面对巨大的市场需求,国内很难找到一家专门系统培训Linux驱动工程师的培训机构,因为培训难度大,对老师的经验和知识面要求高,大部分培训机构的课程仅仅对Linux 浅尝即止,难以达到培养 Linux 高水平人才的目的。
嵌入式linux驱动培训是华清远见的金牌课程,本课程融合了讲师多年的项目开发经验,这些经验无疑是学员短期内提升驱动开发水平最有效的捷径。 |
课程目标 |
驱动程序开发是嵌入式Linux项目中工作量最大的一部分内容,开发出高质量的驱动程序是项目成功的关键。随着产品上市周期的缩短,市场对于驱动程序开发人员的要求也在日益增加。 本课程旨在培养具备开发Linux下驱动程序的人才,采用理论教学与实验相结合的方式,系统地介绍Linux下设备驱动程序开发的基本技术。通过本课程的学习,学员可以掌握Linux下字符设备、块设备、网络设备的驱动程序开发,同时掌握嵌入式Linux的系统开发和分析方法。 |
培养对象 |
Linux系统驱动开发工程师、Linux中高级软件工程师以及内核开发人员。 |
入学要求 |
学员学习本课程应具备下列基础知识:
◆ 熟练使用Linux操作系统,如学员具有一定的Linux内核阅读经验,效果会更好;
◆ 熟悉C语言,熟悉指针、结构体等概念;
◆ 了解接口电路和数字电路的知识,最好具有电路设计经验。 |
师资团队 |
【王 辉】
● 金牌讲师,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月19日,2008年8月23日,2008年9月6日
连续班(连续上课):2008年7月19日,2008年8月23日,2008年9月6日
上海分中心(滚动开班):
上课地点:上海徐汇区银海大厦A座2层
周末班(周六日上课):2008年7月5日,2008年9月6日,2008年9月27日
连续班(连续上课):2008年7月5日,2008年9月6日,2008年9月27日
深圳分中心(滚动开班):
上课地点:深圳大学
周末班(周六日上课):2008年9月20日,2008年11月15日
连续班(连续上课):2008年9月20日,2008年11月15日
本课程每期班限额15名,报满即停止报名,请提前在线或电话预约
华清远见保留开课时间调整的权利,欢迎来电洽询
|
学时费用 |
◆课时: 共4天,每天6学时,总计24学时
◆培训费用(含教材费和午餐费):2800元,个人自费(2500元),学生自费(1900元,凭有效证件)
◆认证费(可选):300元(项目考核通过,颁发由中国软件行业协会嵌入式分会认证的《Linux设备驱动开发初级工程师》证书) >>单击查看证书样本
◆外地学员:代理安排食宿(需提前预定)
单击查看退费规定说明>>>
|
最新优惠 |
◆团体报名优惠措施:两人95折优惠,三人或三人以上9折优惠
◆套餐课程同时报名优惠措施(以下套餐优惠只能任选一种):
1、同时报选《ARM开发培训班》,即享受500元优惠,同时可获ARM公司认证证书
2、同时报选《嵌入式Linux系统开发班》,即享受500元优惠!
3、同时报选《嵌入式Linux驱动高级班》,即享受500元优惠!
4、现在同时报选《ARM班》,《Linux应用班》,《Linux系统班》,《Linux驱动初级班》,《Linux驱动高级班》中的任意3门课程,即赠送三星2410开发板
报选此课程可获200元折价劵! |
质量保障 |
1、培训过程中,如有部分内容理解不透或消化不好,可免费在下期培训班中重听;
2、培训结束后免费提供一个月的技术支持,充分保证培训后出效果;
3、培训合格学员可享受免费推荐就业机会。
|
课程进度安排(最新更新日期:2008.01.10) |
时间 |
课程大纲 |
第一天 |
学习目标 |
通过Linux字符设备驱动程序开发内容的学习,学员可以从用户设备I/O编程角度深入了解设备驱动的原理。通过内核模块编程,掌握Linux内核的开发和设备驱动模型等基础知识。通过了解字符设备驱动框架和具体硬件设备I/O操作,能够进行字符设备驱动开发。
|
9:00
|
12:00 |
1. LINUX字符设备驱动程序开发
1.1 LINUX内核结构
1.2 LINUX内核配置与编译
1.3 LINUX内核模块编程与加载
1.4 LINUX-2.6设备驱动模型与SYSFS文件系统
1.5 LINUX设备驱动程序基础与设备I/O
1.6 LINUX字符设备驱动基础
1.7 字符设备驱动程序实现框架与典型驱动分析
1.8 用户空间与内核空间的数据传输
1.9 阻塞与非阻塞I/O设计
|
13:00
|
16:00 |
【实验】
1、驱动开发编程环境与内核配置、编译
2、编写模块化字符设备驱动程序与测试
3、如何为内核程序传递参数
4、蜂鸣器驱动程序编写与测试
5、阻塞型字符设备驱动编写与测试
|
第二天 |
学习目标 |
通过字符设备驱动程序开发高级篇的学习,学员能够进行复杂的字符设备驱动程序开发,包括掌握设备硬件中断服务程序编写、操作延迟与中断上下部的编程以及掌握内核空间内存的使用等。
|
9:00
|
12:00 |
2. LINUX字符设备驱动程序高级开发
2.1 LINUX内核中断子系统
2.2 中断处理程序编写
2.3 驱动程序上/下半部处理与延缓执行机制
2.4 内核定时器与延迟机制
2.5 内核地址空间与内存使用
2.6 内核与驱动程序调试
|
13:00
|
16:00 |
【实验】
1、编写一个简单的驱动程序,使用3种内存分配机制
2、扫描键盘的驱动原理
3、内核定时器的使用
4、编写带中断支持的扫描键盘驱动
5、上下部支持的键盘驱动编写
|
第三天 |
学习目标 |
块设备常用于存储,如闪存等。通过这一天块设备驱动程序开发的学习,学员能够明白Linux中块设备驱动的特点及框架,独立分析Linux中大部分块设备的驱动方法,并熟悉MTD设备驱动的特点与框架,具备MTD Nand Flash驱动程序开发的能力。通过实验,学员还可以掌握IDE、Ramdisk驱动移植方法。
|
9:00
|
12:00 |
3. LINUX块设备驱动程序开发
3.1 块设备及其驱动的特点
3.2 块设备驱动程序中两个关键结构体GEN_DISK与REQUEST
3.3 块设备驱动程序的注册与请求处理
3.4 MTD设备的特点以及与块设备的关系
3.5 MTD设备驱动的框架及关键结构体分析
3.6 S3C2410(S3C2440)中的NAND FLASH控制器分析
3.7 S3C2410(S3C2440) NAND FLASH MTD驱动分析
|
13:00
|
16:00 |
【实验】
1、编写简单的块设备驱动程序
2、实现RAMDISK驱动
3、IDE硬盘的驱动移植
4、移植S3C2410 闪存控制器驱动
5、配置MTD内核选项
6、移植嵌入式文件系统
|
第四天 |
学习目标 |
网络设备是嵌入式产品开发,特别是基于网络的产品开发中必须掌握的一种设备。通过Linux网络设备驱动程序开发的学习,学员将深入理解Linux网络驱动程序中有关套接字(socket)、套接字缓冲区(sk_buff)等概念,了解网络驱动程序的数据交换过程。通过实际的动手操作,学员将掌握如何移植或编写具体网卡的驱动程序,并在此基础上实现更为高级的网络功能。
|
9:00
|
12:00 |
4. LINUX网络设备驱动程序开发
4.1 OSI网络参考模型
4.2 套接字(SOCKET)简介
4.3 套接字缓冲区(SK_BUFF)
4.4 NET_DEVICE结构分析
4.5 数据包传送与接收
4.6 网络驱动的中断处理
4.7 网络设备驱动程序的基本实现 |
13:00
|
16:00 |
【实验】
1、了解网络设备驱动中常用的数据结构
2、分析网络驱动程序结构
3、编写简单的虚拟以太网卡驱动程序
4、移植并编写CS8900A网卡驱动程序
5、移植并编写DM9000网卡驱动程序
6、配置网络参数,测试网卡驱动程序行为 |