课程目标 | ||
培养学员Linux下开发驱动程序的能力,授课时理论和实践相结合,突出实验部分,让学员通过实践扎扎实实掌握相关技能。学员可以掌握Linux下字符设备、块设备、网络设备、Framebuffer设备、SD卡等设备的驱动程序开发的技巧,以及嵌入式Linux的系统开发和分析方法。 | ||
入学要求 | ||
★熟悉Linux操作系统 ★熟悉C语言,熟悉指针、结构体等概念; ★了解接口电路和数字电路的知识 |
||
班级规模及教学环境 | ||
为严控教学质量,让学员有充分的提问机会,我们坚持超级小班教学,每个班级的人数限定为5人,多余人员安排到下一期。人手一套开发板和实验用的PC主机。 | ||
上课时间和上课地点 | ||
上课地点:【上海】:同济大学(沪西)/新城金郡商务楼(11号线白银路站) 【深圳分部】:电影大厦(地铁一号线大剧院站)/深圳大学成教院 【北京分部】:北京中山/福鑫大楼 【南京分部】:金港大厦(和燕路) 【武汉分部】:佳源大厦(高新二路) 【成都分部】:领馆区1号(中和大道) 【沈阳分部】:沈阳理工大学/六宅臻品 【郑州分部】:郑州大学/锦华大厦 【石家庄分部】:河北科技大学/瑞景大厦 【广州分部】:广粮大厦 【西安分部】:云峰大厦 近开课时间(周末班/连续班/晚班):Linux驱动开发:2024年12月30日...... |
||
学时和费用 | ||
★课时:
共5天,总计30学时 ◆外地学员:代理安排食宿(需提前预定) ☆注重质量 ☆边讲边练 ☆合格学员免费推荐工作 专注高端培训17年,曙海提供的课程得到本行业的广泛认可,学员的能力 得到大家的认同,受到用人单位的广泛赞誉。 ★实验设备请点击这儿查看★ |
||
师资团队 | ||
【李冠涛】 金牌讲师,具有10几年嵌入式技术从业经验和十年嵌入式linux驱动开发经验,对于嵌入式Linux的实现和应用有深入研究,主持开发过多个大型嵌入式项目,涉及网络,通讯,控制,信息终端等各行各业,例如航天在轨数据采集系统、地震数据采集分析系统、车载MP4设备等。对系统移植有很强的经验,在X86/ARM/XSCALE/PowerPC/MIPS等各种体系结构平台上移植Linux内核;对于嵌入式Linux的实时性和uCLinux的特点有深入研究。 【陈亮宇】 著名IT企业硬件工程师,对于硬件产业的发展有详细的了解,在嵌入式系统的讲解和传授中偏重于嵌入式软件对硬件的技术支持方面的知识,在行业中能得到广泛的应用。具有十多年嵌入式开发实战经验,6年嵌入式培训经验,熟悉ARM/PPC/MIP平台,对嵌入式Linux、uc/OS、uClinux有深入的研究。目前专攻手机设计和培训。曾为数个大型企业进行手机开发、Linux开发方面的培训。在参与的项目中,曾使用了Coldfire、POWERPC、S3C2410、PXA255等多款处理器,完成了平台移植、Bootloader移植等工作。 ★更多师资力量请见曙海师资团队。 |
||
课程进度安排 | ||
课程大纲 | ||
第一讲 |
||
通过本课学习,学员可以从用户设备I/O编程角度深入了解设备驱动的原理;通过了解字符设备驱动框架和具体硬件设备I/O操作,能够进行字符设备驱动开发;了解linux2.6内核的设备模型及掌握udev的使用。 |
||
1. LINUX字符设备驱动程序开发 |
||
【实验】 1、驱动开发编程环境与内核配置、编译 2、编写模块化字符设备驱动程序与测试 |
||
第二讲 |
||
通过本课学习,学员可以掌握在基本字符设备驱动的基础上增加复杂的内核机制;了解1inux内核中断子系统的实现原理,掌握linux中断处理程序编写方法. |
||
2. 设备驱动中常用的内核机制 2.1 1inux内核中断子系统 2.2 中断处理程序编写 2.3 驱动程序上/下半部处理与延缓执行机制 2.4 内核定时器与延迟机制 |
||
【实验】 |
||
第三讲 |
||
通过本课学习,学员可以明白Linux中块设备驱动的特点及框架,独立分析Linux中大部分块设备的驱动方法,并熟悉MTD设备驱动的特点与框架,具备MTD
Nand Flash驱动程序开发的能力。通过实验,学员还可以掌握IDE、Ramdisk驱动移植方法。 |
||
3. LINUX块设备驱动程序开发 |
||
【实验】 |
||
第四讲 |
||
网络设备是嵌入式产品开发,特别是基于网络的产品开发中重要的内容之一。通过本课学习,学员可以深入理解Linux网络驱动程序中有关套接字(socket)、套接字缓冲区(sk_buff)等概念,了解网络驱动程序的数据交换过程。通过实际的动手操作,学员将掌握如何移植或编写具体网卡的驱动程序,并在此基础上实现更为高级的网络功能。 |
||
4. LINUX网络设备驱动程序开发 |
||
【实验】 |
||
第五讲 |
||
通过本课学习,学员可掌握嵌入式Linux显示驱动程序的开发方法,理解嵌入式Linux图形驱动程序实现机制,能够移植或编写嵌入式显示控制器驱动程序,并完成针对各种LCD硬件的定制。 |
||
5. LINUX帧缓冲驱动程序开发 |
||
【实验】 |
||
第六讲 |
||
通过本课学习,学员可以了解MMC/SD卡的物理及电气特性,熟悉相关的工作协议,并在此基础上能够移植或编写Linux下的MMC/SD控制器的驱动程序。 |
||
7. LINUX下MMC/SD卡驱动开发 7.1 嵌入式系统中几种常见存储介质的比较(NOR/NAND FLASH、CF、MMC/SD) 7.2 MMC/SD卡物理及电气规范简介 7.3 MMC/SD卡工作中的关键命令及关键结构信息 7.4 ARM中MMC/SDHOST控制器分析 7.5 LINUX中MMC/SD存储卡驱动程序结构分析 7.6 ARM中MMC/SD HOST控制器的驱动实现 |
||
【实验】 |
||
第七讲 |
||
掌握USB通讯规范及拓扑结构中的主机控制器、HUB、USB设备的工作流程;掌握S5PC100 USB device控制器的工作原理;后在FS_S5PC100开发板上编写usbtransfer固件程序,结合PC机上windows环境下的DNW软件,实现基于usb的文件下载功能。 |
||
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?S5CPC100 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设备应用程序 |
||
【实验】 |