嵌入式linux驱动开发

    •  课程目标

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

    •  师资团队

    • 华清创客企业内训讲师,均是来自各个领域的资深专家,均拥有6年以上大型项目经验。

    •  培养对象

      ①从事单片机等裸板开发,想深入学习带系统开发、驱动开发的学员;
      ②有内核、系统裁剪、定制等相关经验,想深入学习驱动开发的学员;
      ③期望从事嵌入式/物联网底层驱动开发工作的学员

    •  培训方式

    第一种:华清创客讲师面授
    课时:共6天,每天6学时,总计36学时
    ◆费用(含教材费):公司费用3900元(含发票),个人自费3200元(不含发票),学生自费(2500元,凭有效证件)
    ◆培训证书(可选):培训合格学员可获工业和信息化部《国家信息技术应用技能嵌入式Linux驱动开发工程师认证证书》(认证费500元),Atmel公司全球统一《Atmel嵌入式工程师认证证书》(认证费500元),红帽公司《Linux驱动开发工程师证书》(认证费600元)。
    ◆外地学员:代理安排食宿(需提前预定)

    第二种:线上直播授课
    直播课时:共12天,每天3学时,总计36学时;
    辅导:授课期间,辅导老师每天有1小时的辅导直播
    ◆费用(含教材费):公司费用3900元(含发票),个人自费3200元(不含发票),学生自费(2500元,凭有效证件)
    ◆培训证书(可选):培训合格学员可获工业和信息化部《国家信息技术应用技能嵌入式Linux驱动开发工程师认证证书》(认证费500元),Atmel公司全球统一《Atmel嵌入式工程师认证证书》(认证费500元),红帽公司《Linux驱动开发工程师证书》(认证费600元)。

    第三种:嵌入式Linux驱动开发企业定制培训
    课时:根据定制的大纲确定课时
    费用:根据课程难度,每课时1500~3000元
    ◆培训证书(可选):培训合格学员可获工业和信息化部《国家信息技术应用技能嵌入式Linux驱动开发工程师认证证书》(认证费500元),Atmel公司全球统一《Atmel嵌入式工程师认证证书》(认证费500元),红帽公司《Linux驱动开发工程师证书》(认证费600元)。

      •  质量保证

        1、培训过程中,如有部分内容理解不透或消化不好,可免费在下期培训班中重听;

        2、培训结束后免费提供一个月的技术支持,充分保证培训后出效果;

        3、培训合格学员可享受免费推荐就业机会。

      •  课程大纲



        第一章             

        学习目标通过本课学习,学员可以:从用户设备I/O编程角度深入了解设备驱动的原理;通过了解字符设备驱动框架和具体硬件设备I/O操作,能够进行字符设备驱动开发;了解内核的设备模型及、linux3.14内核设备树模型及掌握udev的使用。        

        第一节     1.LINUX字符设备驱动程序开发 

                    1.1 LINUX字符设备驱动基础

                    1.2 字符设备驱动程序实现框架与典型驱动分析       

                    1.3 用户空间与内核空间的数据传输  

                    1.4 同步、互斥、阻塞、睡眠机制       

                    1.5 Linux设备模型与sysfs文件系统     

                    1.6 Linux-3.14 设备树模型     

                    1.7 udevdevfs文件系统     

                 实验:    

                    1、驱动开发编程环境与内核配置、编译    

                    2、编写模块化字符设备驱动程序与测试    

                    3、如何为内核程序传递参数        

                    4、在驱动代码中加入创建proc结点方法   

                    5、蜂鸣器驱动程序编写与测试    

                    6、编写驱动实现包含等待队列、信号量、fifo等功能      

                    7、学会利用udevsysfs文件系统动态创建设备结点     

         

        第二章             

        学习目标通过本课习,学员可以掌握在基本字符设备驱动的基础上增加复杂的内核机制;了解1inux内核中断子系统的实现原理,掌握linux中断处理程序编写方法;掌握内核延时机制及内存管理机制。熟悉基于Cortex-A9 4核处理器的FS4412平台。    

        第二节     2.设备驱动中常用的内核机制     

                    2.1 Pollselect操作      

                    2.2 异步通知机制  

                    2.3 1inux内核中断子系统       

                    2.4 中断处理程序编写  

                    2.5 驱动程序上/下半部处理与延缓执行机制     

                    2.6 内核定时器与延迟机制  

                    2.7 内核内存管理机制  

                 实验:    

                    1、编写驱动实现包含poll功能    

                    2、编写驱动实现包含异步通知功能    

                    3、编写秒表字符设备,掌握定时器用法    

                    4、编写驱动实现tasklet功能       

                    5、编写驱动实现工作队列功能    

                    6FS4412平台上按键中断实验   

                    7FS4412平台上A/D转换实验   

         

        第三章             

        学习目标通过本课学习,学员可以:明白Linux中块设备驱动的特点及框架,独立分析Linux中大部分块设备的驱动方法,并熟悉eMMC设备驱动的特点与框架,具备eMMC驱动程序开发的能力。通过实验,学员还可以掌握IDERamdisk驱动移植方法。        

        第三节     3.LINUX块设备驱动程序开发      

                    3.1 块设备及其驱动的特点  

                    3.2 两个关键结构体GEN_DISKREQUEST

                    3.3 块设备驱动程序的注册与请求处理       

                    3.4 EXYNOS4412上的eMMC控制器简介     

                 实验:    

                    1、编写简单的块设备驱动程序    

                    2、实现RAMDISK驱动  

                    3FS4412上完成eMMC驱动       

         

        第四章             

        学习目标学员可以:深入理解Linux网络驱动程序中有关套接字(socket)、套接字缓冲区(sk_buff)等概念,了解网络驱动程序的数据交换过程。通过实际的动手操作,学员将掌握如何移植或编写具体网卡的驱动程序,并在此基础上实现更为高级的网络功能。        

        第四节     4.LINUX网络设备驱动程序开发 

                    4.1 OSI网络参考模型      

                    4.2 套接字(SOCKET)简介  

                    4.3 套接字缓冲区(SK_BUFF     

                    4.4 NET_DEVICE结构分析      

                    4.5 数据包传送与接收  

                    4.6 网络驱动的中断处理       

                    4.7 网络设备驱动程序的基本实现       

        第五节     5. I2C驱动子系统开发 

        第六节     6. SPI驱动子系统开发  

                 实验:    

                    1、编写简单的虚拟以太网卡驱动程序        

                    2、移植并编写DM9000网卡驱动程序         

                    3、配置网络参数,测试网卡驱动程序行为

                

        第五章             

        学习目标通过对Linux帧缓冲内容的学习,学员可掌握嵌入式Linux显示驱动程序的开发方法,理解嵌入式Linux图形驱动程序实现机制,能够移植或编写嵌入式显示控制器驱动程序,并完成针对各种LCD硬件的定制。

        掌握电容触摸屏工作原理,能够移植或编写触摸屏驱动程序。   

        第七节     7.LINUX帧缓冲驱动程序开发      

                    7.1 帧缓冲显示技术       

                    7.2 帧缓冲驱动程序显示原理       

                    7.3 帧缓冲驱动程序的数据结构  

                    7.4 帧缓冲驱动程序的API    

                    7.5 帧缓冲驱动程序的基本实现  

                    7.6 使用高级图形库       

        第八节     8.电容触摸屏驱动开发

                    8.1 电容触摸屏驱动程序编写       

                 实验:    

                    1、熟悉FRAMEBUFFER驱动的结构      

                    2、熟悉FRAMEBUFFER中的重要数据结构 

                    3、编写EXYNOS4412彩色LCD控制器驱动程序

                    4、编写测试程序控制屏幕显示    

                    5、编译高级图形库例子,显示图形    

                    6、熟悉触屏驱动程序    

                    7、编写触屏测试代码    

         

        第六章             

        学习目标掌握USB通讯规范及拓扑结构中的主机控制器、HUBUSB设备的工作流程;掌握EXYNOS4412 USB device控制器的工作原理。

        通过LinuxUSB Host驱动和USB Gadget开发内容的学习,学员将深入理解Linux内核USB子系统,掌握USB驱动程序编写技术。经过学习后的学员能够移植或编写USB HostUSB Gadget设备驱动程序。"         

        第九节     9.LINUXUSB驱动开发基础      

                    9.1 USB规范介绍    

                    9.2 USB主机控制器

                    9.3 USB HUB     

                    9.4 USB设备状态    

                    9.5 USB描述符

                    9.6 USB请求    

                    9.7 USB通讯数据格式    

                    9.8 EXYNOS4412 USB device控制器        

                    9.9 编写usbtransfer固件程序      

        第十节     10.LINUXUSB驱动高级开发   

                    10.1 Linux USB驱动层次 

                    10.2 Linux USB主机控制器驱动介绍     

                    10.3 Linux USB HUB驱动介绍

                    10.4 Linux USB 设备驱动程序         

                    10.5 Linux USB Host设备驱动程序

                    10.6 Linux USB Gadget设备驱动程序    

        第十一节      11.Linux下其它高级设备驱动简单介绍      

                    11.1 PCI/PCIE设备驱动介绍  

                    11.2 V4L2摄像头驱动介绍     

                    11.3 MTD Flash驱动介绍        

                 实验:    

                    1、使用usbview工具观察USB设备     

                    2、使用sysfs分析USB层次结构 

                    3LINUX下编写USB Host设备驱动    

                    4LINUX下编写USB Gadget设备驱动        

                           



the end

评论(0)