第二阶段 嵌入式C语言编程
课程目标 嵌入式C语言在嵌入式系统开发中起着至关重要的作用,一个精通C语言程序设计的程序员,可以很容易地进入Linux、WinCE、Vxworks等嵌入式操作系统下的软件开发工作。本阶段学习目标是掌握C语言基本知识、C编程语法基础和Linux操作系统的使用,并熟练掌握嵌入式Linux的开发环境,为将来的编程工作打扎实的基础。
(80课时) ◆ 复习C语言基础知识,强化指针和数组概念,学习数据结构和一些基本算法;
◆ 重点讲解数据结构的基础内容,熟练地应用链表、队列、栈等编程;
◆ 通过大量编程实例重点讲解C语言的高级编程知识,包括函数与程序结构、指针、数组、常用算法、库函数的使用等知识;
◆ 全面了解C语言标准库提供的功能; 深入介绍C程序在编译时与运行时的基本原理,及其程序的内存分布;
◆ 从宏观和微观的角度讨论高质量C语言编程及团队项目合作的编程规范;
◆ 详细介绍嵌入式C的特性及应用;
◆ 职业素养:推销自己
......进入嵌入式C语言编程学习讨论交流区......
第三阶段 linux系统程序设计
课程目标 嵌入式Linux应用开发和系统开发是嵌入式Linux中最重要的一部分,也是企业人才需求最广的一部分。本期学习的主要目标是精通嵌入式Linux下的程序设计,通过掌握操作系统的进程/线程原理,熟练地进行linux进程/线程地应用程序编程;同时在建立进程/线程间的并发和竞争的思想上,熟练地实现进程/线程间的通信编程。熟悉嵌入式Linux开发流程;熟练地进行linux网络编程;着重强化学员对Linux应用开发的理解和编码调试的能力。
(120课时) ◆ Linux操作系统基础和特点,操作系统中进程与调度及并发
◆ 进行系统编程、文件I/O、多进程和多线程、网络编程、静态/动态库创建和调用反复性地练习。
◆ 熟悉linux 多进程/多线程间的并发、竞争及通信机制,进行大量实战程序的编程。
◆ 深度地熟悉Linux系统接口及调用,熟练地进行GDB高级调试。
◆ 深度地熟悉linux网络分层模型,并且在此基础上能熟练地进行socket编程。实现基本的TCP/IP的编程。
◆ 进程间通讯
◆ 信号
◆ Linux网络程序设计
......进入linux系统程序设计学习讨论交流区......
实训项目 网络通信终端项目训练
项目实训 通过深入了解Linux系统调用功能,开发Linux环境下多任务编程,掌握网络socket接口调用的方法,开发终端程序,并熟练使用开发工具进行调试。
第四阶段 ARM原理与应用
课程目标 本课程在涵盖了ARM公司授权培训课程全部内容基础上,通过详尽地介绍ARM的基本概念及体系结构,ARM的编程模型,ARM汇编指令集,嵌入式系统及接口设计和ADS集成开发环境熟练使用,使学生能熟练地进行ARM汇编语言编程和调试。
(32课时) ◆ 嵌入式系统基础:嵌入式系统 定义、发展,嵌入式实时操作系统
◆ ARM的基本概念及体系结构
◆ ARM的编程模型
◆ ADS集成开发环境
◆ ARM汇编指令集
◆ 嵌入式系统及接口设计
◆ ARM协处理器
......进入ARM原理与应用学习讨论交流区......
第五阶段 Bootloader及系统内核开发
课程目标 第一,使学员快速掌握嵌入式系统开发的流程,系统移植的方法,Bootloader的原理。深入地了解u-boot启动流程和原理,熟练地进行u-boot不同平台的移植。
第二,在掌握Linux内核的基本功能和源代码结构基础上,让学生深入地了解Linux内核编译的原理;根据不同项目的需要,熟练地进行内核裁剪,编译和下载到目标板。
第三,深入学习linux系统支持的各种文件系统的原理和特点,熟练地进行各种文件系统的创建。通过本章地学习,让学员能够从事嵌入式系统相关的项目集成开发。
(60课时) ◆ 熟练编译,使用u-boot,理解bootloader的原理和功能,以及掌握u-boot的启动过程
◆ 熟练uboot过程开发细节,编写uboot代码
◆ 掌握Linux内核的基本功能和源代码结构,熟悉Linux内核的编译和配置;
◆ 熟悉内核电源控制和中断处理机制
◆ Kernel的定制和编译,内核移植,内核调试;
......进入Bootloader及系统内核开发讨论......
第六阶段 Linux驱动开发测试
课程目标 驱动程序开发是嵌入式Linux项目中工作量最大的一部分内容,开发出高质量的驱动程序是项目成功的关键。随着产品上市周期的缩短,市场对于驱动程序开发人员的要求也在日益增加。
本课程旨在培养具备开发Linux下驱动程序的人才,采用理论教学与实验相结合的方式,系统地介绍Linux下设备驱动程序开发过程。
通过本课程的学习,学员可以掌握Linux下字符设备、块设备、网络设备、framebuffer设备,同时掌握嵌入式Linux的系统开发和分析方法。
(60课时) ◆ 了解根文件系统的内容,创建根文件系统镜像;掌握用户空间与内核空间的数据传输,内核中同步、互斥、阻塞、睡眠机制;
◆ 深入理解并掌握Linux内核中断子系统的实现原理,掌握linux中断处理程序编写方法;掌握内核延时机制及内存管理机制。
◆ 能够理解Linux的三类设备的驱动程序的基本结构,能够开发简单的字符驱动设备;
◆ 了解Linux块设备,特别是MTD驱动程序的工作原理,以及网络设备的工作流程。
◆ 网络设备驱动程序开发及实例;
◆ 音频和显示设备驱动程序开发;
◆ 了解LCD、Touch、SD驱动编写过程。
◆ 熟悉对驱动程序的基础测试功能和高级驱动的编程流程。
......进入Linux驱动开发及测试讨论区......
第七阶段 嵌入式C++编程
课程目标 C++是Linux应用开发主要语言之一,重点让学员掌握面向对象编程的基本思想,以及C++语言的基础内容,为后面的课程做好铺垫。
(80课时) ◆ Linux c++编程环境
◆ C++语法基础
◆ 数组、指针及引用
◆ 函数、递归及程序结构
◆ 复杂数据类型
◆ 面向对象编程:继承及多重继承、运算符重载、模板类及标准模板库
◆ 异常处理
◆ 数据结构及简单算法
◆ QT初步
◆ 实训项目:网络图像终端
......进入嵌入式C++编程学习讨论交流区......
第八阶段 移动通信技术和3G基础
课程目标 通过对移动通信技术的理论学习,掌握移动通信的原理,同时结合3G各种制式的特点,深入地掌握3G开发的流程。
(40课时) ◆ 移动通信基础
◆ 无线通信网络的概念
◆ GSM-UMTS-LTE的演进过程和网络体系结构
◆ 核心网(CN)
◆ GSM电路域CSV 业务流程
◆ GPRS/EDGE分组域(PS)数据业务基本流程
◆ IMS网络体系结构
◆ 多媒体会话在3G体系中建立的过程
......进入移动通信技术和3G基础学习讨论交流区......
第九阶段 实训项目
课程目标 本阶段着重综合地进行学习工程项目开发流程,其中包括项目需求、项目设计、程序编码、程序调试与测试、版本发布。让学生提前体验并参与整个项目开发流程。通过以团队方式分解项目,协作开发、各学员扮演不同角色并以不同的角色进行。
(120课时) ◆ 学习工程项目开发流程:项目需求、项目设计、程序编码、程序调试与测试、版本发布
◆ 以团队方式分解项目,协作开发、各学员扮演不同角色;
◆ 项目开发:3G协议栈应用 SIPCALL;IMSserver搭建;
第十阶段 毕业测评及就业指导
毕业测评及就业指导 ◆ 由技术专家对学员进行项目开发答辩;
◆ 简历优化提炼;
◆ 模拟面试训练、职业前引导