嵌入式C语言及Linux应用开发
1、嵌入式操作系统介绍与开发环境
- 操作系统:简介、发展历史与Linux;
- 嵌入式系统、嵌入式操作系统与ARM Linux;
- Linux/ARM Linux系统启动与启动脚本;
- 嵌入式C语言开发环境;
- 系统编程预备知识;
2、C语言编程
- C语言程序的内存布局;
- 基于栈的C语言程序;
- C语言应用关键点;
3、同步与并发编程
- 同步、信号量;
- 多线程概念与基础;
- 进程间通信;
- 管道、消息队列、共享内存与信号量;
- Daemon进程;
4、内存管理与进程地址空间管理
- Linux虚拟内存管理;
- 进程的线性地址空间(虚拟地址)、虚实地址映射概念;
- 用户空间与内核空间;
- I/O地址映射概念;
5、文件系统及标准C I/O库
- Linux文件系统;
- Linux虚拟文件系统;
- 嵌入式文件系统(ramfs、sysfs、proc、yaffs);
- 系统调用相关:文件系统 API;
- 标准C库I/O API;
6、TCP/IP网络编程
- TCP/IP协议模型;
- 嵌入式Linux TCP/IP网络模块;
- SOCKET编程基础;
- 基于TCP的网络服务编程;
- 基于UDP的网络服务编程;
7、嵌入式GUI及嵌入式数据库
- Qtopia/Qt应用开发基础;
- 嵌入式数据库sqlite应用开发;
- 信息终端实际项目的应用开发综合实例;
ARM架构及嵌入式系统开发
1、嵌入式硬件基础
- 三总线及信号基础;
- SDRAM控制器;
- FLASH控制器;
- 电源、时钟与复位电路;
- GPIO接口;
- 接口电平(转换)、总线缓冲器及其他;
- 嵌入式处理器系统总线扩展:以太网接口;
- 嵌入式处理器电路原理图分析;
2、ARM核心架构与嵌入式Linux应用
- ARM核心架构及ARM(9/11)SOC;
- ARM指令结构;
- 嵌入式硬件体系结构与扩展;
- 基于ARM9平台的嵌入式Linux应用演示;
3、嵌入式Linux应用开发环境
- 搭建交叉开发主机环境:基于VMVARE6.0-RHL5.0虚拟主机环境;
- ARM-Linux-GCC交叉编译器及二进制工具使用;
- 阅读与书写Makefile文件;
- ELF的执行格式;
- 深入理解Link工具工作机制;
- 使用gbd调试目标(ARM)应用程序;
4、ARM汇编与C语言混合开发
- GNU(ARM)汇编语法要点及程序组织结构;
- 面向嵌入式开发的C语言编程要点;
- 汇编与C程序混合编程以及apcs规范;
- 编写位置独立的程序、连接器的使用(固定地址分配使用)等重要技能;
5、控制器接口
- 理解SOC各类控制器接口的原理;
- 控制器接口编程与应用;
6、BAP、Bootloader与U-BOOT
- bsp、bootloader概念与角色;
- bootloader要解决的问题;
- u-boot工程(Makefile)与编译;
- u-boot架构与基本执行环境;
- u-boot命令集;
- u-boot源码分析(板级初始化,命令结构,Image格式,操作系统引导);
- u-boot网络操作;
- u-boot Storage subsystem(Nand Flash)与Image文件烧写;
- u-boot移植与修改;
7、ARM Linux Build与根文件系统制作
- Linux内核配置与编译;
- Linux根文件系统:rootfs,ramfs,nfs与yaffs
- 根文件系统的mount分析;
- Initial ARM Disk;
- Busybox制作;
嵌入式Linux内核编程与驱动开发
1、Linux驱动开发基础与内核编程
- 内核模块(配置、编译与加载);
- Linux驱动程序架构(Kernel 2.6);
- Linux驱动程序设计流程;
- Linux Device Model开发驱动程序;
- I/O存取概念;
- 阻塞与非阻塞、read/write与wait Queue;
- 内核驱动的中断架构与使用;
- 内核并发与同步;
- Kernel Timeer、Task Queue与Work Queue(Kernel 2.6);
- Memory Mapped I/O;
2、Linux字符设备驱动与Linux Input子系统
- Linux Input子系统结构;
- Input Event Driver与Interface;
- PDA键盘驱动设计;
- 实用的PDA键盘驱动程序与相关电路设计;
3、LCD显示与Framebuffer驱动开发
- LCD显示硬件接口、控制信号及时序分析;
- 常见LCD及其驱动电路设计;
- Framebuffer驱动显示原理;
- Framebuffer驱动结构分析;
- Framebuffer驱动程序编程;
4、Memory Techonology Device内核子系统
- Linux MTD子系统架构分析;
- Linux MTD子系统源码分析;
- MTD系统使用-lower driver:NAND Flash Driver分析;
- MTD系统使用-upper fs:yaffs2;
5、USB驱动程序开发
- USB架构:总线,总机控制器,传输类型与寻址;
- Linux USB子系统架构;
- 基于USB接口的通信;
- 接口初始化与参数配置;
- USB驱动程序开发要点;
- USB驱动设备实例讲解-USB-serial;
嵌入式Linux应用开发及工程实践
1、嵌入式GUI应用开发
- 嵌入式Linux GUI;
- Why Qtopia/Qt-e,QT-E应用基础;
- 实用的基于Qtopia/qt-e的应用系统;
- 完整的Qt-e实例讲解(基于网络环境的交互式应用,具有系统服务支持);
2、嵌入式网络应用开发
- OSI七层模型和TCP/IP四层模型;
- socket编程;
- socket高级编程;
3、嵌入式数据库开发
- 嵌入式数据库SQLite简介;
- SQLite移植;
- SQLite编程;
4、综合项目实践
嵌入式Linux系统架构及裁剪
1、ARM Linux BOOT
- 内核Image构成与分析:piggy,bootstrap loader;
- 内核启动(initialization)详细分析;
- 内核命令行参数处理;
- 内核子系统初始化;
- Init thread;
2、嵌入式Linux系统移植与裁剪
- Linux系统组成模块;
- 系统模块关系;
- 设备驱动模型;
- stepbystep剪裁方法与原则;