| 课 时 |
大 纲 |
第一天 上午 9:00-12:00 |
第一天的课程主要帮助学员了解ARM体系结构及工作原理,掌握ARM指令集,学会操作ARM处理器基本方法。
1 ARM体系结构
1.1 ARM简介
1.2 ARM体系结构
1.3 流水线
1.4 处理器工作模式
1.5 ARM处理器核 2 ARM指令集 2.1 V4T指令
2.2 V5TE指令
2.3 V6指令
2.4 Thumb指令 |
第一天 下午 13:00-18:00 |
【实验】 1、使用RealView MDK环境构建基本工程
2、基本ARM指令练习
3、数据搬运练习
|
第二天 上午 9:00-12:00 |
为提高系统的综合性能,“ARM和Thumb交互”是工程师在实际编程常用的一种方式。通过本天课程的学习,学员可以了解Thumb指令的特点,掌握ARM和Thumb指令交互方法。“异常”作为处理器的一种特殊工作方式在系统工作中扮演着重要的角色,本期课程也将帮助学员掌握ARM平台异常产生的过程和处理方法。
3. ARM与Thumb交互
3.1 交互工作基础
3.2 子程序交互和veneers
3.3 ARM V5TE架构扩展 4.RealView MDK开发工具介绍 5.异常处理 5.1 中断处理
5.2 Abort处理
5.3 SWI 处理
5.4 复位和未定义指令处理
|
第二天 下午 13:00-18:00 |
【实验】
1、ARM/Thumb交互
2、Thumb下的块拷贝实验
3、异常处理实验
|
第三天 上午 9:00-12:00 |
虽然汇编指令可以完成我们所需要的所有功能,但相对C语言来说,汇编语言存在编写复杂、可读性差等缺点,所以在实际的项目开发中,工程师通常会使用C或C++等高级语言来编写主程序部分。通过第三天课程的学习,学员可以掌握汇编、c、c++混合编程的方法,完成对目标平台的软件编程,更好的熟悉嵌入式软件的开发流程。
6. C/C++ 编译器提示和技巧
6.1 arm编译优化础
6.2 汇编、c、c++混合编程
6.3 arm编译器规则
6.4 局部和全局变量
7. 嵌入式软件编程
7.1 调整c库使其适合目标平台
7.2 调整内存映射使其适合目标平台
7.3 复位和初始化
7.4 编译和调试目标镜像
|
第三天 下午 13:00-18:00 |
【实验】
1、C语言程序实验
2、汇编和C混合编程实验
3、调整C库和内存映射,编写能够在目标硬件运行的LED测试程序
|
第四天 上午 9:00-12:00 |
在学习完了理论知识后,该进入实践环节了。嵌入式编程最终目标还是对接口设备的操作。通过第四天课程的学习,学员可以掌握基于ARM的嵌入式硬件平台接口设计以及各种常用接口的开发。
8. 基于ARM的嵌入式硬件平台接口设计
8.1 基于ARM的SOC组成
8.2 构建ARM嵌入式系统
9. 嵌入式硬件平台(基于s3c2410/s3c2440)接口操作
9.1 GPIO接口
9.2 ADC接口
9.3 UART接口
9.4 I2C接口
9.5 定时器
9.6 中断接口
9.7 DMA接口
|
第四天 下午 13:00-18:00 |
【实验】
1、GPIO实验
2、ADC实验
3、UART实验
4、定时器实验
5、中断实验
6、DMA实验
|
第五天 上午 9:00-12:00 |
单个接口的操作最终还是要为一个综合的软件项目服务,bootloader在嵌入式操作系统中占用重要地位,其编写、移植是一项常见而复杂的工作。通过第五天课程的学习,学员即能够通过这个综合的软件项目将前面的主要内容融会贯通,还可以掌握bootloader原理及开发过程,掌握和bootloader相关的接口开发,了解嵌入式操作系统的结构及启动流程等。
10. 从零编写bootloader
10.1 嵌入式linux系统的构成
10.2 引导程序的任务
10.3 引导程序的结构及启动流程
10.4 实现串口下载功能
10.5 实现usb下载功能
10.6 实现 nandflash读写功能
10.7 引导linux内核
|
第五天 下午 13:00-18:00 |
【实验】
1、bootloader编写实验(基于realview MDK环境)
2、linux系统编译实验
3、制作文件系统实验
4、bootloader通过USB下载内核、文件系统实验
|