嵌入式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键盘驱动程序与相关电路设计;
[FS:PAGE]
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开发项目;
嵌入式Linux系统架构及裁剪
1、ARM Linux BOOT
内核Image构成与分析:piggy,bootstrap loader;
内核启动(initialization)详细分析;
内核命令行参数处理;
内核子系统初始化;
Init thread;
2、嵌入式Linux系统移植与裁剪
Linux系统组成模块;
系统模块关系;
设备驱动模型;
stepbystep剪裁方法与原则;