技术频道

嵌入式Linux软件工程师培训课程

嵌入式Linux研发工程师培训大纲
一、培训目的
近年来,嵌入式系统产业规模持续增长,作为IT 业的重要新兴产业和经济增长点,发展嵌入式系统产业成为“中国制造”向“中国创造”转变的突破口。消费电子产业的蓬勃发展成为拉动嵌入式系统的重要动力。数码相机、媒体播放器、LCD电视和游戏机市场每年的增长都在15%以上,而蓝牙、无线局域网、数码音乐芯片和闪存的发展将成为继续拉动市场前进的动力。  
嵌入式系统是当前最热门最有发展前途的IT 应用领域,像常见到的手机、PDA、MP3/MP4、机顶盒、高清电视(HDTV)、路由器、汽车电子、智能家电、医疗仪器、航天航空设备等等都是典型的嵌入式系统。目前我国嵌入式系统发展最大制约因素是缺乏研发人才,这主要有两方面的原因:一是与目前我国高校的计算机教育普遍以高级应用软件为主,很少涉及嵌入式软件的课程;二是嵌入式领域门槛相对较高,知识要求比较全面,而且需要有实验环境(开发板和工具软件)和有经验的人进行指导,很难自学成才。因此企业很难招聘到马上可以从事嵌入式软件开发的实战型人才。深圳是电子产品研发的王国,对嵌入式开发人才的需求非常大,而且是最具有高薪实力的IT职位。
本课程是为了适应目前发展迅速的嵌入式Linux需求而设计,课程目标是让学员达到适应嵌入式应用软件开发、嵌入式系统开发或嵌入式驱动开发的基本素质。课程循序渐进的带领您嵌入式开发的世界,采用了目前应用最广泛的软硬件开发平台(Linux和Arm),可以保证您尽量贴近目前企业需求。具体目标是使学员在短期内迅速达到嵌入式企业的用人需求,精通嵌入式开发的基本技能;掌握嵌入式linux项目的完整开发流程,能够独立完成嵌入式linux系统的移植和设备驱动程序的编写,熟练掌握嵌入式Linux应用程序的开发。
本培训课程由资深嵌入式领域专家根据嵌入式系统的设计原则和IT企业的技术需求定制,实践证明本教学大纲科学合理,能够快速培养实用的嵌入式工程师。通过培训可以获得扎实的开发技能,积累至少相当一年的开发经验。
二、课程简介
本课程系统学习Linux操作系统、嵌入式C语言程序设计、数字电路、ARM体系结构及其编程、嵌入式系统应用开发等技术知识。通过这些知识的学习,让学生掌握嵌入式系统开发的基本原理和设计方法,并通过实际项目的开发,让学生掌握嵌入系统开发的整个流程,操作系统的移植的基本思想,移植原则,应用程序及驱动程序的开发和调式方法。
本课程理论与实践相结合,理论与实战的课时比例约为5:5;由有关专家、学者和优秀的一线资深嵌入式工程师,集合国际先进嵌入式技术和理论,对嵌入式开发过程进行综合分析,结合最新的软件开发环境,进行实际案例的培训;实战训练贯穿于全部课程中,学员学练结合、学以致用,以培养实际工作能力,快速获得项目经验。每半月进行一次测试,确保学员掌握所学知识。本课程学习中需要开发试验版支持,本公司选用最新的的ARM开发版,支持ADS1.2(开发环境)等调试。

三、课程设计

课程单元
主要内容
Linux 操作系统基础
主要介绍 Linux 的基本知识,包括发展历史、系统安装、基本命令和系统管理,Linux 下的常用工具、以及各种应用服务配置等知识。
介绍 Linux 上的程序设计基础知识,包括编程风格(GNU/K&R)、应用开发(gcc/gdb/make&Makefile)、源代码管理(CVS)等知识。
嵌入式C语言程序设计
主要剖析C语言语法的重点难点,掌握代码编译、连接及生成可执行文件的内部过程;
掌握函数、变量、指针运行时内存布局等基本概念的精髓;掌握嵌入式开发中交叉编译与链接的用法;
介绍嵌入式开发中的C语言编程特点,包括堆和栈、动态内存分配、易失寄存器变量、链接时的段布局以及对处理器现场保护、汇编语言与C混合编程等概念和原理做深入分析。
Linux C编程强化训练
主要包括整数算法训练,递归和栈编程训练,位操作训练,指针训练,字符串训练和常用C编程接口实践,强化学员对Linux下基本编程开发的理解和编码调试的能力。
Linux环境高级编程
主要包括:
1.系统编程(信号/系统调用/管道/FIFO/消息队列/共享内存等),
2.文件I/O编程(文件描述符/文件读写接口/原子操作/阻塞与非阻塞IO等),
3.多任务和多线程编程(进程标识/用户标识/fork与vfork/多线程概念/线程同步等),
4.网络编程(网络基本概念/套接口编程/网络字节次序/ Client/Server 结构/ UDP 编程);掌握Linux下Socket编程的开发流程,熟悉网络编程的调用接口函数和相关数据结构。
编程实践
主要进行一个团队合作项目的开发,综合前面所学内容和编程技术,考核内容包括文件I/O编程,多线程编程,网络编程和项目文档编写。
嵌入式ARM体系结构
介绍 ARM体系结构及其基本编程知识,包括基本编程模型,指令分类,寻址方式、指令集、存储系统、异常中断处理等基础知识和概念,以及包括ARM汇编语言以及C\C++和汇编语言的混合编程等编程知识和技巧。
ARM开发实践
介绍ARM嵌入式开发板硬件设计原理和基本硬件设计流程,分析嵌入式开发板各种外设的工作原理和驱动机制,了解基于ARM 开发的若干编程技巧和编程思想,并自己动手实践完成一个ARM开发板应用程序。
嵌入式Linux高级应用
主要介绍嵌入式Linux应用程序编程高级技巧
1.嵌入式图形界面的开发(包括MiniGUI和QT/Embedded)
2.嵌入式数据库(SQLite)编程技巧等知识。
嵌入式Linux驱动理论
主要介绍嵌入式 Linux 上驱动程序开发规范
1. 设备驱动程序概念、
2. 字符设备驱动程序、
3. 块设备与网络设备、网卡驱动
4. 常用嵌入式设备驱动开发等知识。
嵌入式Linux驱动实践
主要完成团队合作项目的开发,综合前4周所学内容,实现一个嵌入式Linux设备驱动程序编写的项目需求,考核内容包括嵌入式硬件外设的基本工作原理、Linux驱动程序的编程框架、驱动模块的调试和加载以及完整的项目开发文档。
实战项目一
电子点菜系统(采用ARM S3C2410芯片)
项目描述:本项目的目标是实现一个基于UDP通讯的局域网点菜系统,系统具备与网内应用服务器提取菜单信息以及将客户点菜信息发往应用服务器的能力。
★软件平台: RedHat 9.0 、uCLinux
★硬件平台: 2410开发板
★项目成员: 由学员组成。
★功能描述: 实现一个基于UDP通讯的点菜系统。
实战要求:
1) UDP通讯协议
2) 嵌入式数据库与持久存储
3) 信息压缩与解压缩
4) 图形界面QT
实战项目二
基于ARM的网络播放器
主要内容包括设计并实现一个真实和完整的嵌入式项目的开发流程,涉及到数据采集、网络通讯、图形用户界面显示以及嵌入式数据库存储系统等多种嵌入式 Linux编程技术。带领大家建立起团队开发和协同工作的企业项目开发模式的概念和流程,强化学员对编写项目概要设计文档和详细设计文档的理解,为就业前的职业技能和素质训练做好充分准备。考核内容包括嵌入式Linux网络通信、图形界面开发,嵌入式数据库编程,嵌入式驱动开发等以及完整的项目开发文档。
实战项目三
PMP开发
项目简介:所谓PMP,又名MP4。是当前逐渐流行的消费类电子产品。项目基于以 ARM920T为核的S3C2410和Linux,进行实践练习。
实践内容主要包括:Bootloader、Kernel及根文件系统重构,相关设备驱动编写,当前主流GUI库QT与Nano-X的移植,基于QT或 Nano-X的应用程序设计,Linux多线程程序设计,Linux进程间通讯(IPC)编程,Socket编程,视频播放器,音频播放器的设计与编码,交叉编译器重构等等。该实践项目涉及到了嵌入式Linux开发的各个层面,可以大幅提高学员的实际Linux开发能力。
实战要求:
5) 进行需求分析、撰写总体设计报告;
6) 选择合理的体系结构,确定开发方案
7) 编写程序要规范

文章版权归西部工控xbgk所有,未经许可不得转载。