嵌入式Linux工程师培训大纲
(业余班)
一、培训目的
嵌入式系统是当前最热门最有发展前途的IT应用领域,像常见到的手机、PDA、MP3/MP4、机顶盒、高清电视(HDTV)、路由器、汽车电子、智能家电、医疗仪器、航天航空设备等等都是典型的嵌入式系统。目前我国嵌入式系统发展最大制约因素是缺乏研发人才,这主要有两方面的原因:一是与目前我国高校的计算机教育普遍以高级应用软件为主,很少涉及嵌入式软件的课程;二是嵌入式领域门槛相对较高,知识要求比较全面,而且需要有实验环境(开发板和工具软件)和有经验的人进行指导,很难自学成才。因此企业很难招聘到马上可以从事嵌入式软件开发的实战型人才。深圳是电子产品研发的王国,对嵌入式开发人才的需求非常大,而且是最具有高薪实力的IT职位
本课程是为了适应目前发展迅速的嵌入式Linux需求而设计,课程目标是让学员达到适应嵌入式应用软件开发、嵌入式系统开发或嵌入式驱动开发的基本素质。课程循序渐进的带领您嵌入式开发的世界,采用了目前应用最广泛的软硬件开发平台(Linux和Arm),可以保证您尽量贴近目前企业需求。具体目标是使学员在短期内迅速达到嵌入式企业的用人需求,精通嵌入式开发的基本技能;掌握嵌入式linux项目的完整开发流程,能够独立完成嵌入式linux系统的移植和设备驱动程序的编写,熟练掌握嵌入式Linux应用程序的开发。
本培训课程由资深嵌入式领域专家根据嵌入式系统的设计原则和IT企业的技术需求定制,实践证明本教学大纲科学合理,能够快速培养实用的嵌入式工程师。通过培训可以获得扎实的开发技能,提升至少相当2年的开发经验。
二、课程简介
本课程以嵌入式Linux软件开发为核心,系统学习Linux内核原理、内核代码裁减与移植、嵌入式Linux驱动程序开发、嵌入式Linux应用程序开发、嵌入式Linux驱动开发硬件基础知识(软件工程师角度)、ARM体系结构及其编程等。通过这些知识的学习,让学生掌握嵌入式系统开发的基本原理和设计方法,并通过实际项目的开发,让学生掌握嵌入系统开发的整个流程, 应用程序及驱动程序的开发和调式方法,积累嵌入式Linux程序设计经验。
本课程理论与实践相结合,理论与实战的课时比例约为5:5;由有关专家、学者和优秀的一线资深嵌入式工程师,集合国际先进嵌入式技术和理论,对嵌入式开发过程进行综合分析,结合最新的软件开发环境,进行实际案例的培训;实战训练贯穿于全部课程中,学员学练结合、学以致用,以培养实际工作能力,快速获得项目经验。每半月进行一次测试,确保学员掌握所学知识。本课程学习中需要开发试验版支持,本公司选用ARM9 2440开发版,凡是参加本课程的学员一律赠送整ARM9 2440开发版和NEC触摸屏。 本课程的授课教师是开发板的设计开发者。
三、课程设计
第一讲
理论:
概论与基础知识。介绍Linux的产业现状,技术特点,Linux系统的安装以及开发常用命令。
实验:
学生自动动手安装Linux系统,并练习各种常用命令。
第二讲
理论:
内核与驱动开发基础。内核模块的开发。
实验:
学生自己动手开发一个内核模块,并在2.4和2.6两个内核版本下编译运行。
第三讲
理论:
ARM开发环境搭建、ARM开发板的使用、内核的编译与裁减。
实验:
学生自己动手搭建嵌入式Linux开发环境,并把第二讲的内核模块在开发板的环境下运行通过。学生自己动手编译与裁减Linux内核,并烧录到开发板上进行测试。
第四讲
理论:
从软件工程师的角度,介绍嵌入式Linux驱动开发的所需的硬件基础知识,介绍自主研发的三星2410开发板的原理图。为后续的软件驱动开发打下最基本的硬件基础。
实验:
学生自己动手,在电路上找到LED、KEY等开发办设备和CPU的连接,并根据DataSheet,找到对这些设备操作的寄存器或IO口。并在内核源码中搜索这些寄存器和IO的访问代码。
第五讲
理论:
Linux内核中断原理与软件编程,LED和按键驱动代码结构
实验:
S3C2410LED驱动的开发和S3C2410 按键驱动的开发
第六讲
理论:
Linux内核处理机管理;进程的应用层开发。
实验:
学生自己动手,开发进程管理相关的应用程序。
第七讲
理论:
Linux下进程间通讯开发
实验:
学生自己动手,进行Linux下IPC程序设计
第八讲
理论:
Linux下网络编程
实验:
学生自己动手,进行Linux下的网络程序设计。
第九讲
理论:
Linux内核系统调用原理与开发
实验:
学生自己动手,修改内核代码,在内核增加一个系统调用,并编写应用程序调用。
第十讲
理论:
Linux下的USB设备驱动程序开发;PCI设备驱动开发;如何移植新增内核模块。
实验:
学生自动动手,使开发板上支持U盘。将crypto内核模块加入2.4.18内核。
第十一讲
理论:
SPI设备驱动程序开发;网卡设备驱动
实验:
学生自己动手,移植一款PCI接口的网卡驱动。
第十二讲
理论:
I2C设备驱动架构;Makefile编写;交叉编译器的制作
实验:
学生自己动手,构造新版的交叉编译器
第十三讲
理论:
结合三星2410介绍ARM CPU,并介绍ARM汇编语言。
实验:
学生自己动手,编写ARM汇编程序。
第十四讲
理论:
项目实践MP4/PMP实现方案;Nano-X。
实验:
学生自己动手,分别在PC和ARM开发板上,移植Nano-X。
第十五讲
理论:
项目实践MP4/PMP之音视频解码;QT程序设计之一。
实验:
学生自己动手,分别在PC和ARM开发板上,移植音视频解码库和QT库。
第十六讲
QT程序设计之二。
课程总结与考试。
实战项目
PMP开发
项目简介:所谓PMP,又名MP4。是当前逐渐流行的消费类电子产品。项目基于以 ARM920T为核心的S3C2410和Linux,进行实践练习。 实践内容主要包括:Bootloader、Kernel及根文件系统重构,相关设备驱动编写,当前主流GUI库QT与Nano-X的移植,基于QT或Nano-X的应用程序设计,Linux多线程程序设计,Linux进程间通讯(IPC)编程,Socket编程,视频播放器,音频播放器的设计与编码,交叉编译器重构等等。该实践项目涉及到了嵌入式Linux开发的各个层面,可以大幅提高学员的实际Linux开发能力。
894011780






