嵌入式系统及应用
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
嵌入式系统及应用
嵌入式系统及应用
实验指导书
前言
嵌入式软件开发实验内容是结合《嵌入式软件开发及应用》这门课程的核心内容所精心设计的。实验采用的是优龙公司YL—LPC2148 开发板,其核心芯片是
飞利浦LPC2148 芯片。实验内容涵盖了从基本工程的建立方法到嵌入式操作系统
的移植,从基本IAR 环境的设置到芯片主要功能模块的驱动和测试等主要知识点
和工作流程。实验设置的目的是从实际出发,让同学们将课堂上的内容学以致用;
将枯燥的书面信息跃然板上,更可以调动同学们的动手兴趣,提高学习热情。另
外,所有实验都有其实际应用价值,能为同学们今后走向工作岗位快速进入良好
的工作状态打下良好的实践基础。
嵌入式软件开发实验共分五次课,每次三学时,下面是实验安排:
实验一:IAR 环境的使用及LPC2148 存储器映射
实验二:GPIO 与频率控制
实验三:中断控制及UART 通信
实验四:LCD 控制与综合
实验五:μC/OS 移植
为了提高学生实验课的学习效率,在每次实验的指导中给出了实验的基本原理并对其关键点进行了详细的阐述,还包括相关寄存器的物理地址等信息。每次
实验课中都设置了成若干小的实验项目,并针对各个实验项目都设有思考问题,
用来帮助同学们加深认识,同时培养独立思考的能力。该门实验课软件和硬件并
重,需要有较多的知识储备,需要具有“汇编语言”、“C 语言”、“计算机组成原
理”、“操作系统”等多门课程的基础。另外,由于LPC2148 中采用
ARM7TDMI
核,所以希望同学们多阅览关于 ARM7 架构和指令集的参考资料并做好课前预习工作。
实验一IAR 环境的使用及LPC2148 存储器映射
项目1:使用IAR 集成开发环境并创建启动项目
实验原理:
IAR 公司推出的 IAR Embedded Workbench 软件包是一种专门针对嵌入式系统应用开发
的集成开发环境,其中集成了几乎所有的必须工具。利用IAR 开发环境进行嵌入式开发首先
要建立一个启动项目工程,该工程中包含了初始化 ARM 的必要汇编程序(见文件
lpc2xxx_cstartup.s79),在这个启动项目工程基础上可通过添加文件、编写main 函数来完
成其他实验内容。调试过程中可采用RAM 和FLASH 两种方式。前者在内部RAM 中调试掉电不
保存;后者在内部FLASH 中调试代码,通过仿真器将代码下载到片上。
实验内容:创建一个启动项目
(1)创建新工程
*Project->Create New Project 创建新工程,在Tool chain 中选择ARM *右键点击工程名称选择Add->Add Group,在弹出的对话框中命名Config *在工程目录下创建Config 文件夹,将lpc2xxx_cstartup.s79、
LPC2148_flash.xcl、
LPC2148_RAM.mac 和LPC2148_RAM.xcl 各文件拷贝其中
*右键点击 Config 选择 Add->Add Files,将 Config 文件夹中的
lpc2xxx_cstartup.s7
文件加入
*Project->Options:General Options->Target 选项卡中将Device 设成NXP LPC2148
*在工程目录下新建main.c 文件并添加进工程
(2)识别调试模式
选择调试模式:
(3)调试模式设置:在Configurations 中可添加、更改调试模式。
(4)RAM 模式设置:
如果用并口下载模式,在Driver 中选择RDI,并在Category 中RDI 选项卡中输入所用
RDI 驱动路径(H-JTAG 安装目录下H-JTAG.dll 文件)。
(5)FLASH 模式设置:
Flash loader 中选择 IAR 安装目录下
\arm\config\flashloader\Philips\FlashPhilipsLPC512K.d79。
(6)输出文件设置:
实验要点:
阅读LPC2148_FLASH.mac 及LPC2148_RAM.mac 文件内容,理解两者区别。
思考:
RAM 及FLASH 两种调试模式的区别及设置方式异同点。
项目2:RAM 模式和Boot 模式的映射
实验原理:
ARM7TDMI 内核基于冯?诺依曼结构,数据和指令混合编址;系统包含几个不同的存
储器组,如图1.1 所示,图中反映了复位后从用户角度所看到的整个地址空间映射。
从图中可知LPC2148 具有32KB 的静态RAM,可存储程序代码或数据。SRAM 支持按8 位、
16 位和32 位方式访问。另外还有主要由 USB 使用的8KB SRAM 存储器也可用作数据存储、
代码存储和代码执行的通用RAM 存储器。
存储器映射的基本概念是:每个存储器组在存储器映射中都有一个“物理上的”位置。
它是一个地址范围,该范围内可写入程序代码,每一个存储器空间的容量都永久固定在一个
位置,这样就不需要将代码设计成在不同地址范围内运行。由于ARM7 处理器上的中断向量
表位于地址 0x0000 0000-0x0000 003F(片上 FLASH)上,所以没次发生异常时,CPU 都从
0x00000000-0x0000003F 地址上读取异常向量。但是为了提高存取速度(RAM 快于FLASH),
往往将FLASH 中的64 字节的异常向量表复制到0x4000 0000-0x4000
003F(片内RAM)中,
再把0x4000 0000-0x4000 003F 范围内的存储单元地址重新映射到0x0000 0000-0x0000 003F
上。这样当 CPU 读取 0x0000 0000-0x0000 003F 上的内容时,实际上是针对地址
0x40000000-0x4000003F 的操作,从而加快了存取速度。