教学大纲
课程安排
课 程 简 介
第一周
嵌入式C语言编程基础
主要介绍在嵌入式开发编程中C语言的重要概念和编程技巧中的重点难点,以复习串讲和实例分析的形式,重点介绍包括函数与程序结构,指针、数组和链表,库函数的使用等知识。
第二周
Linux 操作和编程基础
主要介绍 Linux 的基本命令和基础编程知识,包括Linux的文件操作和目录操作命令,VI编辑器,GCC编译器,GDB调试器和 Make 项目管理工具等知识。
第三周
Linux 上C 强化编程训练
主要包括整数算法训练,递归和栈编程训练,位操作训练,指针训练,字符串训练和常用C库函数编程接口实践,强化学员对Linux下基本编程开发的理解和编码调试的能力。
第四-七周
Linux环境高级编程及项目开发编程实践
主要包括系统编程(信号/系统调用/管道/FIFO/消息队列/共享内存等),文件I/O编程(文件描述符/文件读写接口/原子操作/阻塞与非阻塞IO等),多任务和多线程编程(进程标识/用户标识/fork与vfork/多线程概念/线程同步等),网络编程(网络基本概念/套接口编程/网络字节次序/ Client/Server 结构/ UDP 编程);掌握Linux下Socket编程的开发流程,熟悉网络编程的调用接口函数和相关数据结构,使学员初步具备在Linux上进行系统编程开发的能力。同时综合之前所学内容和编程技术,以小组为单位进行一个团队合作项目的开发,考核内容包括文件I/O编程,多线程编程,网络编程和项目文档编写。
期 中 考 试
第八-九周
嵌入式处理器体系结构及编程实践
主要介绍 ARM、MIPS、PowerPC等体系结构及其基本编程知识,包括指令分类,寻址方式、指令集、存储系统、异常中断处理、汇编语言以及C/C++和汇编语言的混合编程等知识。同时结合ARM嵌入式开发板硬件设计原理和基本硬件设计流程,分析各种外设的工作原理和驱动机制,并自己动手实践完成一个ARM开发板上的编程大作业。
第十-十一周
嵌入式Linux开发基础及高级应用
主要介绍嵌入式 Linux 开发应用程序的基本流程和知识,包括嵌入式Linux基本概念和开发流程、Bootloader 工作原理、内核裁减配置和交叉编译、根文件系统制作、网络编程及图形界面和数据库开发等知识。同时独立完成一个基于嵌入式Linux GUI的应用编程大作业。
第十二-十三周
嵌入式 Linux驱动理论及驱动程序开发实践
主要介绍嵌入式 Linux 上驱动程序开发规范,包括设备驱动程序概念、字符设备驱动程序、块设备与网络设备、网卡驱动以及常用嵌入式设备驱动开发等知识。同时独立实现两种嵌入式设备驱动程序的编写,包括驱动模块的调试和加载以及完整的项目开发文档的编写。
第十四-十五周
嵌入式Linux项目团队开发实践锻炼
主要包括设计并实现一个真实和完整的嵌入式项目的开发流程,涉及到数据采集、网络通讯、图形用户界面显示以及嵌入式数据库存储系统等多种嵌入式Linux编程技术。要求学员建立起团队开发和协同工作的企业项目开发模式的概念和流程,强化学员对编写项目概要设计文档和详细设计文档的理解,为就业前的职业技能和素质训练做好充分准备。
毕 业 典 礼
培 训 目 标
学 习 内 容
掌 握 程 度
掌握三种编程语言
C 语言
精通
C++ 语言
了解
ARM 汇编语言
熟悉
掌握两种嵌入式Linux操作系统
Linux
精通
uCLinux
精通
掌握两种嵌入式实时操作系统
VxWorks
熟悉
uC/OS-II
熟悉
掌握三种处理器体系结构
ARM 体系结构
精通
MIPS 体系结构
熟悉
PowerPC
了解
掌握五种ARM核处理器
Samsung S3C2410/S3C44B0
精通
Intel XScale PXA255
精通
Philips LPC22xx
精通
EP7312
熟悉
MIPS Godson 龙芯
熟悉
掌握两种硬件设计工具
Candence PCB
熟悉
Protel
了解
掌握两种Linux下编辑软件
VI
精通
EMACS
了解
掌握两种串口通讯工具
超级终端 (Windows)
熟悉
MiniCOM (Linux)
熟悉
掌握三种 Flash 烧写工具
Flash Programmer (GUI)
熟悉
JFlash 烧写软件及原理
精通
SJF系列烧写软件及原理
精通
掌握两种调试工具
JTAG 在线调试器
熟悉
SkyEye 仿真调试工具
熟悉
掌握两种集成开发环境
ARM ADS 1.2
精通
K-Develop IDE
熟悉
掌握一种源代码版本管理工具
CVS
熟悉
掌握嵌入式 Linux整体开发流程
熟悉
GNU 交叉编译器使用
Cross-compiler-gcc/g++
精通
Linux Makefile 组织结构
精通
Bootloader 启动代码
u-Boot
精通
RedBoot
熟悉
内核编译
配置参数设置
精通
内核调试
熟悉
文件系统
JFFS2 文件系统
精通
NFS 文件系统
精通
ROMFS 文件系统
精通
EXT2 文件系统
熟悉
YAFF 文件系统
了解
设备驱动程序
液晶 LCD 设备驱动
精通
USB设备驱动
精通
网卡设备驱动
精通
嵌入式图形系统
MiniGUI
精通
QT/Embedded
熟悉
MicroWIN
了解
嵌入式数据库系统
SQLLite
精通
嵌入式应用程序开发
网络通讯应用开发
精通
数据库存储应用开发
熟悉
多媒体应用开发
熟悉