您的位置: 嵌入式在线 > 培训 > 技能培训 > 嵌入式linux驱动开发班

嵌入式linux驱动开发班

2008-01-18      嵌入式在线      收藏 | 打印

课程背景

        开放的 Linux 受到广泛的欢迎,得到越来越多公司的支持,但是阻碍 Linux 在各个领域广泛应用的主要因素就是内核/驱动高端人才极度缺乏,Linux源代码中85%是设备驱动,嵌入式系统中驱动程序更为重要,几乎每一个嵌入式系统都是从驱动程序员手中调试出来的。然而面对巨大的市场需求,国内很难找到一家专门系统培训Linux驱动工程师的培训机构,因为培训难度大,对老师的经验和知识面要求高,大部分培训机构的课程仅仅对Linux 浅尝即止,难以达到培养 Linux 高水平人才的目的。
       嵌入式linux驱动培训是华清远见的金牌课程,本课程融合了讲师多年的项目开发经验,这些经验无疑是学员短期内提升驱动开发水平最有效的捷径。

   课程目标

        熟练掌握Linux系统下设备驱动程序的开发技术,能够独立在Linux操作系统上开发各种驱动程序,如网卡、声卡、各类协议的驱动开发等。同时对Linux内核能够有较为深入的了解,掌握分析整个内核代码的方法。

   培养对象

        Linux系统驱动开发工程师、Linux中高级程序设计师以及内核开发人员。希望深入了解嵌入式Linux系统开发的学员。

   入学要求

        学员学习本课程应具备下列基础知识:
        ◆ 熟练使用Linux操作系统;
        ◆ 了解Linux内核结构;
        ◆ 熟悉C语言编程;
        ◆ 具备一定的硬件知识,如各种接口电路。

   师资团队

        【周 明】

●     金牌讲师,具有10年嵌入式技术从业经验和6年嵌入式linux驱动开发经验,对于嵌入式Linux的实现和应用有深入研究,主持开发过多个大型嵌入式项目,涉及网络,通讯,控制,信息终端等各行各业,例如航天在轨数据采集系统、地震数据采集分析系统、车载MP4设备等。对系统移植有很强的经验,在X86/ARM/XSCALE/PowerPC/MIPS等各种体系结构平台上移植Linux内核;对于嵌入式Linux的实时性和Montavista Linux的特点有深入研究。
■     点击此处在线试听周老师最新授课视频>>>

       【王 辉】

●     金牌讲师,7年嵌入式开发经验,针对多款硬件平台(PowerPC8xx,Xscale,s3c2410,s3c2440,Mx1,Mx21,Mips,Parisc)进行嵌入式Linux裁减及移植工作,对其它嵌入式操作系统(eCos,WindowsCE)也有深入的研究。同时具有深厚的硬件功底,独自一人完成过上述多款平台从电路图设计,pcb布线,裸板的调试,bootloader编写,操作系统(linux、WindowsCE)移植及驱动开发,上层开发库及应用的移植一整套开发工作。
■     点击此处在线试听王老师最新授课视频>>>

       【张秋野】

●     有多年嵌入式操作系统开发经验,曾参与过多个嵌入式系统项目的开发工作。具有X86/ARM/ XSCALE等体系结构平台的Linux移植经验,对于嵌入式Linux的实现和应用有深入研究。熟悉的处理器包括:S3C2410,PXA255,PXA270,MX21。在项目中主要负责Linux driver开发、Linux系统移植、Bootloader移植工作。并多年从事Linux内核的研究工作。
■     点击此处在线试听张老师最新授课视频>>>

更多师资力量请参见华清远见师资团队

   教材

        ◆ 《华清远见-嵌入式Linux驱动开发培训讲义》
        ◆ 《嵌入式设计及Linux驱动开发指南--基于ARM9处理器》 孙天泽编著

   班级规模及环境

        为了保证培训效果,增加互动环节,我们坚持小班授课,每期报名人数限15人,多余人员安排到下一期进行。人手一套开发板和开发用的PC主机。          >>单击查看实验设备

   时间地点

        北京总部(滚动开班):
        上课地点:北京清华大学
        周末班(周六日上课):2008年1月19日,2008年3月15日,2008年4月19日
        连续班(连续上课):2008年1月19日,2008年3月15日,2008年4月19日


        上海分中心(滚动开班):
        上课地点:上海徐汇区银海大厦A座2层
        周末班(周六日上课):2008年3月22日,2008年4月26日,2008年5月31日
        连续班(连续上课):2008年3月22日,2008年4月26日,2008年5月31日


每期班名额有限,报满即停止报名,请提前在线或电话预约

   学时费用

        ◆课时: 共6天,每天6学时,总计36学时
        ◆培训费用(含教材费和午餐费):公司员工(3500元),个人自费(2900元),学生自费(2500元,凭有效证件),团体报名优惠措施:两人95折优惠,三人或三人以上9折优惠
        ◆认证费(可选):300元(项目考核通过,颁发由中国软件行业协会嵌入式分会认证的《Linux设备驱动开发工程师》证书)    >>单击查看证书样本
        ◆外地学员:代理安排食宿(需提前预定)

同时报选《嵌入式Linux系统开发班》,即享受500元优惠!

报选此课程可获200元折价劵!

   质量保障

        1、培训过程中,如有部分内容理解不透或消化不好,可免费在下期培训班中重听;
        2、培训结束后免费提供一个月的技术支持,充分保证培训后出效果;
        3、培训合格学员可享受免费推荐就业机会。

   课程进度安排(最新更新日期:2007.01.31)
时间 课程大纲

第一天

9:00
|
12:00

1. Linux字符设备驱动程序
目标:掌握Linux驱动程序开发基本方法,用户程序和内核驱动程序的交互机制。经过学习后能够编写实用的字符设备驱动程序(采集数据/控制执行机)
      1.1. Linux设备驱动程序基础知识
      1.2. 系统调用和设备IO
      1.3. 字符设备驱动程序实现框架
      1.4. 阻塞与非阻塞IO设计
      1.5. 用ioctl控制驱动程序
      1.6. 典型的字符设备驱动程序分析
      1.7. Linux-2.6设备驱动模型
      1.8. sysfs虚拟文件系统
      1.9. Kobject结构分析

13:30
|
16:30

实验
      1. 熟悉驱动开发的GNU编程环境和命令
      2. 编写一个Hello World模块并加载测试
      3. 认识S3C2410的GPIO操作原理
      4. 将驱动程序直接编译到内核
      5. 编写字符驱动程序,控制执行机(LED)
      6. 编写较复杂的字符驱动程序,阻塞用户进程进行同步

第二天

9:00
|
12:00
2. 内核内存管理与中断处理
目标:掌握Linux内核存储器管理、定时、中断处理等基础设施的使用。经过学习后能够以高效的方式实现驱动程序,获得较高的驱动程序性能。包括实时性、I/O吞吐率、低处理器占用
      2.1. Linux内存管理机制
      2.2. 内存分配与存储器映射
      2.3. 高速缓存管理
      2.4. mmap设备操作
      2.5. 在内核中描述时间
      2.6. 使用任务队列
      2.7. 内核定时器
      2.8. 硬件中断处理流程
      2.9. Linux内核中断子系统
      2.10. 安装中断处理程序
      2.11. 上半部/下半部处理
      2.12. 中断共享
13:30
|
16:30

实验
      1. 编写例子驱动使用3种内存分配机制
      2. 编写驱动程序使用2种延时机制,理解当中的区别
      3. 编写驱动程序使用内核定时器和任务
      4. 编写使用中断的键盘驱动程序

第三天

9:00
|
12:00

3. 块设备驱动程序,MTD以及文件系统
目标:掌握Linux块设备驱动程序和Flash存储器高级使用技术。经过学习后能够自如选择嵌入式存储方案,并编写/移植相关驱动程序,满足苛刻的嵌入式数据存储需求
      3.1. 块设备特点及驱动程序工作原理
      3.2. 块设备驱动与文件系统接口
      3.3. 块设备中的访问优化原理——请求队列与缓冲区
      3.4. 典型的块设备驱动程序分析
      3.5. IDE设备块驱动程序框架
      3.6. 2.6内核的SATA驱动分析
      3.7. 2.4内核与2.6内核存储驱动的变革
      3.8. MTD Flash块设备驱动程序
      3.9. Linux中存储卡驱动分析
      3.10. 嵌入式文件系统

13:30
|
16:30

实验
      1. 编写简单的块设备驱动程序,实现磁盘分区、文件系统挂载
      2. 移植编写S3C2410 Flash控制器驱动程序
      3. 移植嵌入式文件系统,并格式化、部署根文件系统映像
      4. 分析嵌入式文件系统垃圾块回收
      5. 测试、分析非正常断电对文件系统影响

第四天

9:00
|
12:00

4. 网络驱动程序
目标:深入理解Linux网卡驱动程序开发方法,软件socket和网卡驱动程序的数据交换过程。经过学习后能够编写实用的网卡驱动程序,并实现高级的网络监控功能
      4.1. OSI网络参考模型
      4.2. 套接字(socket)简介
      4.3. 套接字缓冲区(sk_buff)
      4.4. net_device结构分析
      4.5. 数据包传送与接收
      4.6. 网络驱动的中断处理
      4.7. 以太网MAC地址解析

13:30
|
16:30

实验
      1. 编写简单的虚拟以太网卡驱动程序
      2. 移植编写嵌入式CS8900A网卡驱动程序
      3. 配置网络参数,测试网卡驱动程序行为
      4. 编写测试程序,监视并控制网卡链路层、物理层对外部事件响应

第五天

9:00
|
12:00

5. USB设备驱动程序开发和PCI
目标:深入理解Linux内核USB子系统,掌握USB驱动程序编写技术。经过学习后能够编写/移植USB主机OHCI以及设备驱动程序,实现对硬件平台功能的灵活扩展
      5.1. Linux内核对USB规范的支持
      5.2. USB主机驱动程序
      5.3. USB设备驱动程序
      5.4. USB HUB驱动程序
      5.5. OHCI HCD
      5.6. PCI总线概述
      5.7. PCI配置空间
      5.8. PCI主设备busmaster
      5.9. PCI设备驱动结构

13:30
|
16:30
实验
      1. 在内核中调整USB子系统,改变USB功能集
      2. 编写并移植PL2303驱动程序,实现USB与主机串口通信
      3. 添加U盘驱动程序,观察目标板上U盘加载过程
      4. 移植USB摄像头驱动,并加载测试
      5. 使用USB工具深入理解USB设备概念和USB驱动程序结构
      6. 调试PCI总线初始化
      7. 观察并调试PCI设备配置过程
      8. 加载简单的PCI设备驱动
第六天
9:00
|
12:00
6. 帧缓冲驱动程序和DMA
目标:掌握Linux嵌入式显示驱动程序开发方法,理解嵌入式Linux图形驱动程序实现机制。经过学习能过编写/移植嵌入式显示控制器驱动程序,并针对各种LCD硬件作定制工作
      6.1. 嵌入式显示设备简介
      6.2. 帧缓冲(framebuffer)设备特点
      6.3. 帧缓冲驱动程序显示原理
      6.4. 帧缓冲驱动程序与DMA配合
      6.5. 硬件图形加速简介
      6.6. 使用高级图形库
13:30
|
16:30

实验
      1. 编写S3C2410彩色LCD控制器驱动程序
      2. 编写测试程序控制屏幕显示
      3. 编译高级图形库例子,显示图形

本文来源:华清远见    作者:华清远见
评一评已有 0 位网友对此文发表了看法。  我也来评一下

验证码:  看不清?换一张