嵌入式系统无疑是当前最热门最有发展前途的IT应用领域之一,像常见到的手机、PDA、机顶盒、高清电视(HDTV)、路由器、汽车电子、智能家电、医疗仪器、航天航空设备等等都是典型的嵌入式系统。目前我国嵌入式系统发展最大制约因素是稀缺人才,这主要有两方面的原因:一是与目前我们高校的专业设置有关,我国高校的计算机教育普遍以应用软件为主,很少涉及嵌入式软件的课程,因此企业很难招聘到马上可以投入嵌入式软件开发的实战型人才;二是嵌入式领域门槛相对较高,知识要求比较全面,而且需要一定的实验环境(开发板和工具软件)和有经验的人进行指导。
ITjob多年来一直从事高端就业培训,特别是在嵌入式领域,依托计算机行业协会嵌入式委员会以及深圳市数千家嵌入式领域开发企业,为缓解这种现状,推出嵌入式就业培训课程,专门针对零基础有就业需求的毕业生。本课程在设计上遵循循序渐进和深入浅出的特点,并牢牢把握入门零基础和结业即就业的原则;同时,在教学上配备了优良的教学环境和实力强大的师资团队,确保培训出效果。对培训合格的学员,ITjob提供理想的人才输送渠道,使学员真正达到结业即就业的目标。
为了达到高品质、高起点、高比例就业目的,本项目实战部分要求学生至少完成两个本大纲中所列项目,给学员提供一个真实的项目开发经验,巩固已学知识,做到温故而知新,并获得在企业工作的实际项目经验及其它IT人业人员所必备的素质。通过项目实战,还能让学员了解项目中软件测试基本技术,项目管理流程,项目技术文档编写技术,人员沟通技术,企业管理理论基础,企业文化基础。
在学习基本理论知识,进行项目实战演练的同时,定期进行学员就业心态,面试技巧相关培训以及学员口头表达能力和面试技巧训练,提升学员综合能力以达到企业的用人要求。
理论教学内容
课程分为三大块:
- 嵌入式Linux系统开发:侧重开发环境搭建、内核原理、交叉编译等
- 嵌入式Linux应用开发:侧重Linux应用编程、内核编译、系统调用。
- 嵌入式Linux驱动开发:侧重嵌入式Linux系统下的驱动开发、内核的深入分析。
第一阶段:嵌入式学习基础
目标:掌握学学习嵌入式所必须的基本功,如:能够简单的使用linux,能够写简单的shell脚本,能够编写C语言程序等。
Linux 基础
目标
能够独立安装Linux操作系统
能够熟练使用Linux系统的基本命令
认识Linux系统的常用服务
主要知识点
了解并认识Linux操作系统
安装Linux操作系统
Linux文件系统
Linux常用命令
Linux启动过程详解
熟悉Linux服务
实验内容
安装Linux操作系统
Linux基本命令实践
设置Linux环境变量
定制Linux的服务
安装Linux操作系统
下载最新Linux源码,并解开至/usr/src目录下
修改SSH、FTP服务的端口号
Shell 编程基础
目标
熟悉Linux系统下的编辑环境
熟悉Linux下的各种Shell
熟练进行shell编程
主要知识点
使用vi编辑文件
使用Emacs编辑文件
使用其他编辑器
Shell简介
认识后台程序
Bash编程
实验内容
熟悉vi基本操作
熟悉Emacs的基本操作
比较不同shell的区别
编写一个测试服务器是否连通的shell脚本程序
编写一个查看进程是否存在的shell脚本程序
编写一个带有循环语句的shell脚本程序
使用vi在不同文件中的复制粘贴操作
编写一个目录菜单
编写一个Makefile文件
Linux 下的 C 编程基础
目标
熟悉Linux系统下的开发环境
熟悉Gcc编译器
熟悉Makefile规则
主要知识点
linux C语言环境概述
Gcc使用方法
Gdb调试技术
Autoconf
Automake
Makefile
代码优化
实验内容
编写Hello,World程序
使用 make命令编译程序
编写带有一个循环的程序
调试一个有问题的程序
编写汉诺塔程序
第二阶段:嵌入式开发
目的:学习嵌入式开发所必须的种种基本技能。达到能够独立的完成嵌入式开发的基本要求。为参加项目实战作准备。
嵌入式系统开发基础
目标
熟悉嵌入式系统概念以及开发流程
建立嵌入式系统开发环境
主要知识点
嵌入式系统概述
交叉编译
配置TFTP服务
配置NFS服务
下载Bootloader和内核
嵌入式Linux应用软件开发流程
实验内容
制作cross_gcc工具链
编译并下载U-boot
编译并下载Linux内核
编译并下载Linux应用程序
下载配置TFTP服务
重新配置NFS服务的根目录
嵌入式系统移植
目标
了解移植的概念
能够移植Linux内核
主要知识点
Linux内核代码
平台相关代码分析
ARM平台介绍
平台移植的关键技术
移植Linux内核到 ARM平台
实验内容
移植Linux2.6内核到 ARM9开发板
复习Linux内核代码分布
嵌入式 Linux 下串口通信
目标
能够熟悉进行串口通信
熟悉文件I/O
主要知识点
串行I/O的基本概念
嵌入式Linux应用软件开发流程
Linux系统的文件和设备
与文件相关的系统调用
配置超级终端和MiniCOM
实验内容
编写串口通信程序
编写多串口通信程序
复习本章课上讲述的系统调用
嵌入式系统中多进程程序设计
目标
了解Linux系统中进程的概念
能够编写多进程程序
主要知识点
Linux系统进程概述
嵌入式系统的进程特点
进程操作
守护进程
相关的系统调用
实验内容
编写多进程程序
编写一个守护进程程序
sleep系统调用
配置crond服务
用PS命令查看当前系统进程
任务管理、同步与通信
目标
了解Linux系统任务管理机制
熟悉进程间通信的几种方式
熟悉嵌入式Linux中的任务间同步与通信
主要知识点
Linux任务概述
任务调度
管道
信号
共享内存
任务管理 API
实验内容
编写一个简单的管道程序实现文件传输
编写一个使用共享内存的程序
熟悉信号,并自定义一个信号
嵌入式系统中多线程程序设计
目标
了解线程的概念
能够编写简单的多线程程序
主要知识点
线程的基础知识
多线程编程方法
线程应用中的同步问题
实验内容
编写一个多线程程序
思考嵌入式系统中使用多进程和多线程
嵌入式 Linux 网络编程
目标
了解嵌入式Linux网络体系结构
能够进行嵌入式Linux环境下的socket 编程
主要知识点
网络基础知识
嵌入式Linux中TCP/IP网络结构
socket 编程
常用 API函数
分析Ping命令的实现
实验内容
使用socket 编写代理服务器
使用socket 编写路由器
编写一个运行在 ARM平台的网络播放器
编写一个web服务器
嵌入式Linux 网络编程(2)
目标
熟悉UDP协议、PPP协议
熟悉GPRS
主要知识点
基本UDP套接口编程
许可证管理
PPP协议
GPRS
实验内容
编写许可证服务器
指出TCP和UDP的优缺点
编写一个web服务器
GUI 程序开发
目标
熟悉嵌入式系统常用的GUI
能够进行QT编程
主要知识点
GUI基础
嵌入式系统GUI类型
编译QT
进行QT开发
实验内容
使用QT编写“Hello,World”程序
调试一个加入信号/槽的实例
通过重载QWidget 类方法处理事件
Linux 字符设备驱动程序
目标
了解设备驱动程序的概念
了解Linux字符设备驱动程序结构
能够编写字符设备驱动程序
主要知识点
设备驱动程序基础知识
Linux系统的模块
字符设备驱动分析
fs_operation结构
加载驱动程序
实验内容
编写Skull驱动
编写键盘驱动
编写I/O驱动
分析一个看门狗驱动程序
对比Linux2.6内核与2.4内核中字符设备驱动的不同
Linux 块设备驱动程序
目标
了解Linux块设备驱动程序结构
能够编写简单的块设备驱动程序
主要知识点
块设备驱动程序工作原理
典型的块设备驱动程序分析
块设备的读写请求队列
实验内容
比较字符设备与块设备的异同
编写MMC卡驱动程序
分析一个文件系统
对比Linux2.6内核与2.4内核中块设备驱动的不同
文件系统
目标
了解Linux系统的文件系统
了解嵌入式Linux的文件系统
了解MTD技术
能够编写简单的文件系统
主要知识点
虚拟文件系统
文件系统的建立
ramfs内存文件系统
proc文件系统
devfs 文件系统
MTD技术简介
MTD块设备初始化
MTD块设备的读写操作
实验内容
为 ARM9开发板添加 MTD支持
移植JFFS2文件系统
通过proc文件系统修改操作系统参数
分析romfs 文件系统源代码
创建一个cramfs 文件系统
第三阶段:项目实战
目的:通过几个实际的项目开发。来获得实际的项目开发经验。满足企业的要求。
公共教学内容
数据库课程
关系型数据库原理
SQL数据查询语言(DML DDL DCL)
索引
存储过程
触发器
游标
事务
函数
软件工程课程
面向对象(OO)的分析和设计(OOA&OOD)
统一建模语言(UML)
CMM基本概述、模型、实施。
软件工程概述
软件工程生命周期模型
就业训练课
就业心态训练
简历写作技巧
企业人才需求介绍
面试技巧训练(常见问题的应答)
模拟技术面试训练(项目阐述)
模拟综合面试训练
项目实战概述
项目实战课程主要侧重学员的自己动手能力。每个项目实战包括组建项目组,选举项目经理,开发经理,系统架构师,系统配置员,系统测试员的过程,有中心相关教师和用人企业项目经理组成项目评审委员会,严格按项目计划执行,每一个里程碑要严格按照软件工程规范输出相应文档并由项目评审小组给出成绩。
嵌入式数据采集系统
项目描述: 本项目的目标是实现一个嵌入式数据采集系统,该项目涉及到的相关技术有:NFS的搭建、JFFS2文件系统的建立及使用、嵌入式数据库Sqlite的移植及编程、MiniGUI编程、设备驱动程序的编写及添加,以及内核、文件系统的裁减及编译。
软件平台: RedHat 9.0 、uCLinux
硬件平台: 2410开发板
项目成员: 由中心老师及学员组成。
开发方式: 由项目模块负责人带领学员完成。
功能描述: 实现一个基于2410的8路数据采集系统。
基本要求:
- 可同时采集8路数据;
- 8路数据及时间在液晶屏上图形化实时显示;
- 8路数据每5秒存放一帧(保存到flash中);
- 具有查询功能;
- 8路数据通过网口传入上位机进行实时监控.
模拟宽带路由器
项目描述:本项目的目标是实现一个嵌入式款待路由器,本系统涉及两个部分,Web服务部分和路由控制部分,系统将建立一个内置Web服务器,用NAT方式实现路由功能。
软件平台: RedHat 9.0 、uCLinux
硬件平台: 2410开发板
项目成员: 由中心老师及学员组成。
开发方式: 由项目模块负责人带领学员完成。
功能描述: 实现一个基于Web管理的简单路由器。
基本要求:
- 网卡的半轮询工作模式
- 网络地址转换——NAT
- 模块的定义
- NAT模块
- 模块的实现
局域网电子点菜系统
项目描述:本项目的目标是实现一个基于UDP通讯的局域网点菜系统,系统具备与网内应用服务器提取菜单信息以及将客户点菜信息发往应用服务器的能力。
软件平台: RedHat 9.0 、uCLinux
硬件平台: 2410开发板
项目成员: 由中心老师及学员组成。
开发方式: 由项目模块负责人带领学员完成。
功能描述: 实现一个基于UDP通讯的点菜系统。
基本要求:
- UDP通讯协议
- 嵌入式数据库与持久存储
- 信息压缩与解压缩
- 图形界面QT