|
 |
| |
首页 > 课程体系 >嵌入式课程体系 |
|
 |
| |
|
卓跃教育嵌入式开发工程师培训V2.0课程体系
|
|
一:课程特点 |
对于嵌入式开发工程师来说,在技术上需要逾越三道关卡,分别是"硬件"开发、操作系统开发和应用软件开发,三者缺一不可(如果缺一环,在工作中的技术发展会受限)。逾越三个堡垒的最佳途径是通过平台级的应用软件开发,锻造良好的应用软件编程思维;在这个软件编程思维和一定的编程经验基础上,能够更好得看透操作系统,理解操作系统的各个子系统工作原理和构成要素;从而在具备了一定"硬件"开发基础后,能够在开发板或者公司设计的板子上从容得搭建起满足成本、性能或其他要求的嵌入式系统,并在这个嵌入式系统上完成设备应用的软件开发。
本课程就是按照如上的最佳途径来设计的:
(1) 基础阶段:与高校的课程进行衔接,并为学员打下扎实得语言基础;另外需要熟悉我们后期开发系统的环境即WINDOW和Linux操作系统
(2) 平台系统软件:以软件应用项目为主导,在项目中熟练掌握以GUI、数据库、网络通讯等上位机的主流开发技术,建立起良好的编程思维和项目模块化思想,熟悉了基于操作系统以上的开发技术,积累一定的项目开发经验和文档能力。
(3) 嵌入式设备:以ARM裸机开发为起点,让学员掌握基于芯片级的开发技术,理解计算机系统一步一步如何从底层被搭建起来。从以ARM汇编指令编写MINI2440片内初始化启动代码开始,“点亮”或驱动起MINI2440板上的主要外设,如:LCD、TOUCH、UART、等,在外设驱动的基础构建起自定义简易操作系统平台或应用承载平台的骨干框架(中断、定时器->任务调度;NandFlash->文件系统;LCD/TOUCH->软键盘和自定义GUI;UART->数据网络传输),在此应用承载平台或简易操作系统上,开发出一款典型应用。学员能够在学习硬件工作原理的基础上,深刻理解了操作系统的作用、其各模块分工以及如何与硬件配合完成操作系统的各项管理功能,并如何为应用提供支撑。由于目前开发模式的需要,嵌入式应用承载平台基本上是移植完成的,因此,在理解自定义平台上的理论知识上,让学员能够自行移植uboot/Linux2.6等等主流的嵌入式平台,并在此平台上开发出另外一款主流应用,让学员深刻理解了系统移植的概念、上位机与下位机如何协同工作、并能够进一步巩固主流嵌入式Linux的各类应用开发技术。在移植完主流嵌入式Linux系统平台基础上,学员具备继续移植目前最炙手可热的Android系统能力。 |
|
二:就业方向 |
1、 Linux C/C++开发工程师
2、 C/C++应用软件开发工程师
3、 手机应用开发工程师
4、 单片机应用开发工程师
5、 嵌入式应用软件开发工程师
6、 嵌入式系统驱动开发工程师 |
|
三:招生对象: |
(1):本科以上学历,理工类相关专业
(计算机、电子工程、软件工程、无线电、自动化、自动控制、通信工程、应用物理、应用数学、仪器仪表、检测/测控技术、机械电子、汽车电子等专业者优先)。
(2):年龄在22-35周岁以内 有志于从事嵌入式行业开发者
(3):上课周期: 6个月 共计课时 500个课时 |
四:课程说明 |
1、 从软件编程入手,培养软件编程思维,在编程过程中逐渐理解ARM芯片体系结构的硬件底层工作原理以及各类外设驱动开发过程。
2、 体现项目实践来带动理论学习的教学方法,打破学员“不会动手”或无项目经验的困惑
3、 体现终端+平台的软件体系结构,迎合企业未来的技术应用方向,适应后PC时代的开发模式
4、 注重计算机技术基础和原理的培养,为学员顺利跨过企业笔试关和后续技术路线上的发展打下深厚的基础。
5、 每个阶段课程严格按照嵌入式开发流程进行管控,从需求文档开始,到设计,灌输开发规范规范一直到开发以及最终的测试过程中教学课程贯穿在内。 |
|
|
五:课程大纲: |
嵌入式C/C++语言强化 |
时间安排:: |
3周 |
理论学习: |
|
VC环境使用、C语言语法基础(屏幕输入输出/分支/判断/循环控制等)、结构体、指针应用、链表以及文件IO操作、位运算、C++继承和封装、 重载 友元
|
|
实战项目: |
| 项目名称: |
餐馆点菜系统 |
项目类型: |
MIS |
| 开发环境: |
WINDOWS |
开发工具: |
VC |
|
【项目简介】:
项目主要是实现前台收银管理,主要包括如下的功能: 1)总台功能:开台、移台、撤台和并台;预定管理;现金结算收银、系统日结及报表 2)点菜功能:点菜、加/减菜、催菜、上菜确认; 3)厨房功能:炒菜策略、炒菜及要求上菜、催菜告警等。
应用的技术要点: 结构体/指针的应用链表的应用(产生/遍历/查找/增删改节点)/文件IO
【备选项目】:银行ATM交易系统 |
|
|
|
|
嵌入式Linux C/C++ 基础开发技术 |
时间安排: |
4周 |
理论学习: |
Linux系统概述以及常用命令、Linux用户权限管理、环境变量、常用工具使用、常用网络配置、主流网络服务配置、Linux通信与文件共享;系统需求文档编写、关键业务设计/数据库设计/PowerDesigner使用、Shell编程、GCC/GDB等工具使用、MakeFile编写、编程规范与调试技巧、Linux编程实用工具、基本SQL-92语句(增删改查)、SQLITE3数据库、NCurses编程、SQLITE3 API; |
|
实战项目: |
| 项目名称: |
电信渠道终端Epos[终端管理子系统】 |
项目类型: |
MIS |
| 开发环境: |
RedHat Linux9.0+Qt4.7+SQLite3 |
开发工具: |
CodeBlock+gcc+gdb+gmake |
|
【项目简介】:
该项目是电信运营为扩展电子渠道业务而延伸的项目;采用CS结构,以数据库技术为主,通过PC的方式实现电子营业厅的前台业务功能和部分的后台管理功能;
前台业务功能:充值缴费、号卡销售、话费查询、购买电子卡、日营业报表等等 后台管理功能:营业点管理、交易明细查询、月度结算报表等
【应用的技术要点】: vi/g++/gdb/makefile的使用/Shell脚本编程/Qt4界面编程/文件IO基础/SQL语句
【备选项目】:中国移动烟草信息机(后台管理功能) |
|
|
|
|
嵌入式Linux C/C++高级开发技术 |
时间安排: |
4周 |
理论学习: |
STL、进程、子进程与信号、管道、进程间通信(消息队列/共享内存/信号量等)、POSIX线程、守护进程、网络基础与TCPIP协议族、IO复用编程基础、基本套接字SOCKET编程、TCP端口以及端口状态分析(三次握手建链与断链)、IO复用模型、UDP编程、原始套接口。 |
|
实战项目: |
| 项目名称: |
电信渠道终端Epos[终端前置接入服务] |
项目类型: |
行业通讯服务 |
| 开发环境: |
RedHat Linux9.0+SQLite3 |
开发工具: |
gedit或vi/GCC |
|
【项目简介】:
智能终端是作为业务的营业点或业务的发起方,只提供客户办理业务时的数据采集功能;需要一个服务为分布广泛的终端的各类业务提供后台支撑和集中接入点。本项目就是为了达到和实现该集中接入点的功能。该服务器按照万级用户/终端作为接入的标准,采用Linux2.6内核以上版本提供的epoll技术,承载万级用户数的长连接接入,并能负载千级的业务并发。对服务器性能、服务程序架构以及部分算法提出很高的要求。该项目由终端前置接入服务、Epos设备、压力测试工具终端前置四个子系统构成。
【应用的技术要点】: 多线程/线程池/线程同步技术/线程间通信/Linux;EPoll技术与SOCKET TCP编程/高性能的服务程序框架/高效率的散列表
【备选项目】: 中国移动烟草信息机系统(终端前置接入服务器) |
|
|
|
ARM体系结构与编程 |
时间安排: |
4周 |
理论学习: |
Keil ARM编程环境、ARM指令系统、ARM体系结构(常用arm/thumb指令集及汇编、寻址方式、寄存器等)、硬件初始化、2440存储控制体系、ARM9的中断体系、定时器工作原理及设置、GPIO介绍以及控制、LCD原理及编程、NORFLASH或NANDFLASH原理及编程、触摸屏控制、UART控制器、YAFFS文件系统、DM9000网卡驱动以及简易协议栈。 |
|
实战项目: |
| 项目名称: |
卓跃简易操作系统EasyOS |
项目类型: |
自制 |
| 开发环境: |
Mini2440裸机开发 |
开发工具: |
keil MDK4 |
|
【项目简介】: 该项目是在MINI2440开发板硬件基础上,采用前后台模式(后台中断体系和软定时器,前台消息处理),开发了一款简易的操作系统EasyOS;实现开机启动画面、硬件检测、系统应用环境初始化;在系统启动后,它可以同时处理软键盘、串口命令和手写等交互,并规划自身的文件系统。操作系统中实现虚拟键盘和手写功能,实现操作系统与用户的交互界面UI;同时用户可以通过串口输入命令,实现与设备的交互;另外为了完成设备与平台或PC的数据交互,在EasyOS中,简易封装TCP/IP协议栈和文件系统(或移植yaffs),实现两边的通信和文件传送。
【应用的技术要点】:
ARM指令系统/mini2440体系结构/Mini2440存储控制/arm9中断体系/定时器/UART串口编程/NANDFLASH读写以及管理/LCD和触摸/网卡驱动/简易TCPIP协议栈 |
|
|
|
ARM-uC/OS-II嵌入式开发 |
时间安排: |
4周 |
理论学习: |
|
uCOS-II源码分析、uCOS-II移植、uCos-II任务管理、uCos-II内存管理以及任务通信技术、自定义的内存管理实现malloc等、文件系统实现原理、MiNiGUI工作原理、消息循环和事件处理、常用控件使用;SIM300模块的应用、语音通话功能、短信PDU格式、AT指令集 |
|
实战项目: |
| 项目名称: |
GSM无线商话(UPHONE) |
项目类型: |
移动设备 |
| 开发环境: |
Mini2440+uC/OS-II+SIM300 |
开发工具: |
keil MDK4 |
|
【项目简介】:
利用uCos-II实现一款无线商话(双模方案s3c2440+SIM300),利用SIM300能实现语音通话、SMS收发以及GPRS上网功能等,在2440平台实现电话本,软键盘或九宫格菜单,通话记录,短信箱等等常见的手机功能。系统平台是在MINI2440硬件平台上借助前一个项目的简易操作系统(Easy OS)自行开发的所有外设驱动,比如:nandflash,lcd,uart等,通用可移植的AT模块封装,并移植MiniGUI和yaffs,并实现部分MM单元(内存管理单元)、文件系统等等
【应用的技术要点】:
uCos-II多任务调度原理/uCos-II系统开发/uCos-II系统下内存管理,比如:malloc函数的实现/YAFFS文件系统移植及开发接口/TCP/IP协议栈移植和应用/MiniGUI的移植和应用/无线模块的语音通话、SMS应用和PDU格式、GPRS上网功能/AT指令集
【备选项目】:联通Mini营业厅手持设备 |
|
|
|
|
ARM-Linux嵌入式高级开发 |
时间安排: |
4周 |
理论学习: |
Android源码结构和分析、Android平台编译和移植、裁剪;Android Binder驱动工作原理、Android服务分析SeviceManager和调用过程、Android 体系结构分析、Android各层作用以及各层接口:应用框架层、系统服务层、硬件抽象层和驱动层以及JNI接口和HAL层接口。 |
|
实战项目: |
| 项目名称: |
GPS车载导航仪 |
项目类型: |
车持移动设备 |
| 开发环境: |
arm+android+gps |
开发工具: |
|
|
【项目简介】: 该项目以GPS车载导航应用为案例,主要是以移植Android平台为主,从移植和裁剪平
台开始,并编写Android下相关的驱动程序,构建GPS模块的驱动、本地服务为上层应用提供地理坐标
服务,并简要说明arcgis api for android使用,陈述GPS车载导航的功能以及其设计与实现。
【技术要点】:Android源码结构和分析、Android平台编译和移植、裁剪;Android Binder驱动工作原理、
GPS模块的使用、arcgis api for android. |
|
|
|
|
|
| |
|
|
|
|
 |
|