ARM9 嵌入式系统设计与开发应用 教学大纲 编写 : 熊茂华 本教材是为中国电子学会嵌入式设计工程师考试指定教材, 根据嵌入式设计工程师考试大纲 ( 中级 ) 要求, 制订了 ARM9 嵌入式系统设计与开发应用 课程的教学大纲 课程能力目标 : 通过本课程的教学, 掌握嵌入式应用系统的基本结构 嵌入式硬件接口和软件系统设计的方法 ; 利用嵌入式开发工具 ADS 1.2 开发基于 μc/os-ii 下的嵌入式应用系统 ; 利用嵌入式开发工具 GNU 开发基于 linux 下的嵌入式应用系统 ; 掌握嵌入式驱动程序设计和 Qt 图形程序开发的方法和技能 课程的重点是嵌入式系统设计基础 S3C2410/2440 体系结构及其外围芯片的设计与编程 嵌入式 linux 内核移植与应用开发, 驱动程序开发 嵌入式软件系统设计 ADS 开发工具和 GUN 开发工具的使用 μc/os-ii 下的嵌入式程序开发及移植 linux 下的程序开发及移植 Qt 图形程序开发等 主要内容分为 7 大部分 : 第一部分嵌入式系统基础 1. 考核要求熟练掌握数据类型 运算符与表达式的使用, 掌握结构程序设计的方法, 熟悉数组的使用, 掌握函数 指针与结构体的使用方法, 掌握预编译与链接的基本知识, 掌握 ARM 汇编及 C 混合编程, 熟悉文件 IO 的概念与应用, 了解代码的优化的基本概念 1.1 嵌入式系统简介 1. 嵌入式系统的基本概念 2. 嵌入式系统的组成 3. 嵌入式系统的应用领域 4. 嵌入式系统的发展趋势 1.2 嵌入式处理器 1. 嵌入式处理器的分类 2. 嵌入式处理器的分类和现状 3. 典型的 ARM 处理器 1.3 典型的嵌入式操作系统 1. 嵌入式操作系统的概念和分类 2. Linux 3. uc/os-Ⅱ
4. Windows CE 1.4 嵌入式系统开发过程 1. 嵌入式系统的总体结构 2. 嵌入式系统的开发特点 3. 嵌入式系统的开发流程 4. 调试嵌入式系统第二部分 ARM 微处理器体系结构与汇编语言应用 1. 考核要求熟悉 ARM 的编程模型与应用 ARM 体系结构的存储器格式 处理器模式 寄存器组织 程序状态寄存器 异常 (Exceptions) 处理及 ARM 微处理器的指令系统等知识 2.1 ARM 处理器简介 1. ARM 微处理器系列 2. ARM7 微处理器系列 3. ARM9 微处理器系列 4. ARM9E 微处理器系列 5. ARM10E 微处理器系列 6. SecurCore 微处理器系列 7. StrongARM 微处理器系列 8. Xscale 处理器 2.2 ARM920T 简介 1. ARM920T 内核编程模型 2. ARM 体系结构的存储器格式 3. 处理器模式 3. 寄存器组织 4. 程序状态寄存器 5. 异常 (Exceptions) 6.A RM 微处理器的指令集 2.3 三星 S3C2410X 处理器详解 1. 三星 S3C2410X 处理器结构简介 2. 特殊功能寄存器第三部分基于 S3C2410X/2440 处理器的嵌入式应用系统设计 1. 考核要求熟悉嵌入式应用系统的基本电路设计 ( 电源电路 复位电路 晶振电路 ) 存储器系统
设计 S3C2410X 的串行通信设计 键盘接口电路设计 D/A 接口电路设计, 以及这些接口电路的编程等 3.1 基本电路设计 1. 电源电路设计 2. 复位电路设计 3. 晶振电路设计 3.2 存储器系统设计 1. 8 位存储器接口设计 2. SDRAM 接口电路设计 3. Flash 接口电路设计 3.3 S3C2410X 的串行通信设计 1. 串行口原理及接口技术 2. S3C2410X 的 UART 模块 3. S3C2410X 的 UART 模块软件设计 3.4 S3C2410X 的键盘及 LED 驱动设计 1. LED 驱动原理及功能 2. 键盘驱动 3. 键盘及 LED 驱动软件设计 3.5 S3C2410X 的 D/A 功能应用开发 1. D/A 转换器类型 2. MAX504 与 S3C2410X 的接口 3. D/A 转换器驱动软件设计第四部分基于 ARM9 和 µc/os-ii 嵌入式系统设计 1. 考核要求熟悉 µc/os-ii 的内核调度 任务控制块 OS_TCB 就绪表(Ready List) 任务切换 UC/OS-II 的初始化 µc/os-ii 的 API 函数 C/OS-II 的应用程序开发 µc/os-ii 在 S3C2410X 上的移植和 µc/os-ii 的 API 应用 掌握 ARM ADS ( 或 IAR EWARM) 开发工具的高级应用, 掌握不带操作系统的启动代码工作原理与程序设计, 掌握 ARM 异常和中断处理原理与应用 4.1 µc/os-ii 的内核 1. µc/os-ii 内核调度特点 2. 任务控制块 OS_TCB 描述 3. 就绪表 (Ready List)
4. 任务状态 5. 任务切换 6. 任务调度分析 7. UC/OS-II 的初始化 4.2 µc/os-ii 的 API 函数 1. 任务类 2. 消息类 3. 同步类 4. 时间类 5. 内存操作类 4.3 µc/os-ii 的应用程序开发 4.4 µc/os-ii 在 S3C2410X 上的移植 1. 移植原理 2. 移植实现 3. µc/os-ii 的 API 应用 4. 任务相关函数的使用 5. 任务间同步和通信相关函数的使用 4.6 基于 µc/os-ii 操作系统的开发案例 1. 绘图 4.7 ARM ADS 集成开发环境 1. ADS1.2 的安装 2. ADS 集成开发环境的使用 3. 配置生成目标 4. 编译和连接工程 5. 用 AXD 进行代码调试第五部分嵌入式 linux 编程基础及开发环境的构建 1. 考核要求熟悉 Linux 操作系统基础的基本知识 嵌入式 Linux 开发环境构建 嵌入式 Linux 操作系统常用命令 Linux 命令及开发工具 GUN gcc 的使用 GDB 调试器简介 GNU make 命令和 makefile 文件 嵌入式 Linux 下 C 语言编程 嵌入式 Linux 引导程序 Linux 系统在 ARM 平台上的移植 Linux 系统及应用程序的烧写等知识 5.1 嵌入式 Linux 的开发环境 1. 嵌入式 Linux 开发环境建立
2. 嵌入式 Linux 开发的一般过程 5.2 Linux 命令及开发工具 GUN gcc 的使用 1. 嵌入式 Linux 操作系统常用命令 2. Linux 开发工具 GUN gcc 的使用 3. GDB 调试器 5.3 GNU make 命令和 makefile 文件 1. Makefile 文件的规则 2. Makefile 文件的命令 3. Makefile 文件的变量 4. Makefile 文件的条件判断 5. Makefile 文件中常用函数 6. Makefile 文件中隐含规则 7. 子目录 Makefile 5.4 嵌入式 Linux 下 C 语言编程 文件的操作 1. 文件的创建和读写 2. 文件的各个属性 3. 目录文件的操作 5.5 嵌入式 Linux 引导程序 1. Bootloader 引导程序 2. VIVI 简介 5.6 Linux 系统在 ARM 平台上的移植 1. Linux 内核结构 2. 内核移植 5.7 Linux 系统及应用程序的烧写 1. JTAG 烧写 vivi 2. 串口下载烧写 3. 上传应用程序第六部分嵌入式 Linux 设备驱动程序开发 1. 考核要求熟悉 Linux 操作系统基础的基本知识, 熟悉 Linux 驱动程序与模块的概念与应用, 掌握字符设备驱动程序与 Linux 块设备驱动程序开发的基本方法, 熟悉 Linux 下的 MTD 驱动 网络设备驱动 USB 驱动 LCD 与触摸屏设备驱动 IIC & SPI 设备驱动 MMC/SD 卡驱动开发 串口设备驱动 IIS 设备驱动 CAN 总线设备驱动 A/D 设备驱动的基本开发方法
6.1 嵌入式 Linux 的设备管理 1. 设备驱动和文件系统的关系 2. 设备类型 3. 设备号 4. 设备驱动中关键数据结构 5. 设备驱动开发中基本函数 6.2 设备驱动模块化编程 1. 设备驱动程序的开发流程 2. 内核空间和用户空间 3. 设备注册和初始化 4. 中断管理 6.3 GPIO 字符设备驱动程序设计 1. GPIO 接口设计 2. LED 驱动程序代码分析 3. LED 驱动程序加载及测试 6.4 A/D 转换器驱动程序设计 1. S3C2410X 中断控制器 2. S3C2410X 中断接口函数及宏定义 3. S3C2410X A/D 转换器 4. A/D 转换驱动程序设计 5. A/D 转换驱动程序的测试下 6.5 IC 卡驱动程序设计 1. AT24CXX 系列存储卡读卡器 2. IC 卡驱动程序设计 3. IC 卡测试程序设计 6.6 内核驱动程序设计 触摸屏驱动程序 1. 触摸屏原理以及驱动芯片 ADS7843 2. 触摸屏驱动程序分析 6.7 音频驱动程序设计 1. 音频文件格式 2. 基于 IIS 接口的音频系统 3. 音频驱动程序设计 6.8 嵌入式网络设备驱动程序 1. Linux 网络设备驱动程序的体系结构
2. Linux 网络设备驱动程序的数据结构 3. 网络驱动程序的基本方法 6.9 基于以太网控制器 AX88796 的网络驱动程序设计 1. 基于以太网控制器 AX88796 的接口设计 2. Linux 网络设备驱动程序实例第七部分嵌入式 Qt/Embedded 嵌入式图形开发 1. 考核要求熟悉 Linux 下嵌入式 gui 的基本知识, 掌握嵌入式图形系统的构建与开发方法, 掌握 C++ 程序设计的基本知识与用法, 掌握 Qt 的编程基础知识与使用方法, 熟悉嵌入式数据库系统的构建与开发应用, 熟悉嵌入式 GUI 设计应用 7.1 Qt/Embedded 嵌入式图形开发基础 1. Qt/Embedded 概述 2. 创建 Qt/Embedded 开发环境 3. Qt 设计器 4. Qt Designer 实例及 Qt/E 的交叉编译 7.2 Qtopia 虚拟平台及在 S3C2410s 开发板上移植 1. 构建本机 Qtopia 虚拟平台 2. Qtopia2.1.1 在 2410-S 上的移植