嵌入式综合实验报告

上传人:ji****72 文档编号:37703348 上传时间:2018-04-21 格式:DOC 页数:17 大小:3.75MB
返回 下载 相关 举报
嵌入式综合实验报告_第1页
第1页 / 共17页
嵌入式综合实验报告_第2页
第2页 / 共17页
嵌入式综合实验报告_第3页
第3页 / 共17页
嵌入式综合实验报告_第4页
第4页 / 共17页
嵌入式综合实验报告_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《嵌入式综合实验报告》由会员分享,可在线阅读,更多相关《嵌入式综合实验报告(17页珍藏版)》请在金锄头文库上搜索。

1、ARM 嵌入式系统基础综 合 实 验 报 告姓名: 班级: 学号: 指导教师: 实验时间:2014 年 11 月 24 日0目录目录1、实验目的-32、实验设备-33、实验内容-34、实验预习要求-35、实验原理-46、实验步骤-97、实验参考程序-138、实验心得-16备注:备注:在流水灯显示的程序中,显示的字母为LIXUE,分别对应ASCII码:L-0x4C I-0x49 X-0x58 U-0x55 E-0x45全亮-0XFF全灭-0X00流水灯一个周期的显示流程:流水灯全亮一次;流水灯全灭一次,显示一个字母;流水灯全亮一次。根据字母显示的个数,计算出一个周期的需要的次数为 12。1一、实

2、验目的一、实验目的1、 掌握将C/OS-II 操作系统移植到ARM7 处理器的方法。2、了解C/OS-II 操作系统的基本原理和移植条件。3、 掌握LPC2200(for MagicARM2200)专用工程模板的使用;4、能够在MagicARM2200-S 上运行基于C/OS-II 操作系统的程序;5、 掌握基于C/OS-II 操作系统的用户程序的编写格式。二、实验设备二、实验设备硬件:PC机一台MagicARM2200-S 教学实验开发平台一套软件:Windows98/XP/2000 系统ADS 1.2 集成开发环境C/OS-II 操作系统(V2.52)三、三、 实验内容实验内容1、编写一个

3、简单的多任务应用程序,实现LED 流水灯控制。2、建立两个C/OS-II 的任务,一个任务用于检测KEY1 按键(P0.20 口的输入),这里就称之为按键检测任务,另一个任务用于控制蜂鸣器,这里就称之为蜂鸣器控制任务。蜂鸣器控制任务平时处于等待状态,当按键检测任务检测到有效按键输入时,立即唤醒蜂鸣器控制任务。四、实验预习要求四、实验预习要求1、了解C/OS-II 的组成和移植相关的文件内容。2、了解ARM7 体系结构及其汇编编程,了解LPC2000 系列ARM7 微控制器的硬件结构(如向量中断控制器和定时器等)和C/OS-II 移植的相关说明。3、仔细阅读参考文献1第5.7 节的LPC2000

4、 管脚连接模块,第5.9 节的GPIO。4、仔细阅读本书第1 章的内容,了解MagicARM2200-S 的硬件结构,注意蜂鸣器的控制电路及KEY1 按键电路的说明。25、仔细阅读产品配套光盘附带文档ADS 集成开发环境及仿真器应用或其它相关资料,6、了解ADS 1.2 集成开发环境、LPC2200(for MagicARM2200)专用工程模板、EasyJTAG 仿真器的应用7、阅读参考文献4的第16 章和第17 章的内容,了解C/OS-II 操作系统的配置,系统的初始化,任务的建立,系统的启动等等。五、实验原理五、实验原理LEDLED 流水灯控制实验原理:流水灯控制实验原理:(1)(1)

5、C/OS-IIC/OS-II 概述C/OS-II 是一个完整的、可移植、可固化、可剪裁的占先式实时多任务内核。C/OS-II是用ANSI C 语言编写,包含一小部分汇编代码,使之可以供不同架构的微处理器使用。C/OS-II 可以管理64 个任务,具有信号量、互斥信号量、事件标志组、消息邮箱、消息队列、任务管理、时间管理和内存块管理等系统功能。C/OS-II 包括以下3 个部分:C/OS-IIC/OS-II 核心代码:核心代码:包括10 个C 程序文件和1 个头文件,主 要实现了系统调度、任务管理、内存管理、信号量、消息邮箱和消息队列等系统功能。此部分的代码与处理器无关。C/OS-IIC/OS-

6、II 配置代码:配置代码:包括2 个头文件,用于裁剪和配置C/OS-II。此部分的代码与用户实际应用相关。C/OS-IIC/OS-II 移植代码:移植代码:包括1 个汇编文件、1 个C 程序文件和1 个头文件,这是移植C/OS-II 所需要的代码。此部分的代码与处理器相关。说明:移植代码的文件名不是固定的,但为了保持C/OS-II 系统的一致性,文件名一般也不要改变(即OS_CPU.H、OS_CPU_A.ASM 和OS_CPU_C.C)。3(2)(2) C/OS-IIC/OS-II 移植条件移植C/OS-II 之前需要注意,目标处理器必须满足以下几点要求:处理器的C 编译器能产生可重入型代码;

7、处理器支持中断,并且能产生定时中断(通常为10100HZ);用C 语言就可以开/关中断;处理器能够支持一定数量的数据存储硬件堆栈(可能是几千字节);处理器有将堆栈指针以及其它CPU 寄存器的内容读出,并保存到堆栈或内存中去的指令。LPC2000 系列ARM7 微控制器可以满足第2、4 和5 点要求,使用ADS 1.2 的C 编译器可以满足第1、3 点要求。4(3)(3) C/OS-IIC/OS-II 移植步骤1) OS_CPU.H 的移植在OS_CPU.H 文件中定义与处理器相关(实际上是与编译器相关)的数据类型,如BOOLEAN、INT8U、INT8S 等等。2) OS_CPU_C.C 的移

8、植在OS_CPU_C.C 文件中,需要编写以下10 个简单的C 函数: OSTaskStkInit(); OSTaskCreateHook(); OSTaskDelHook(); OSTaskSwHook(); OSTaskIdleHook(); OSTaskStatHook(); OSTaskTickHook(); OSInitHookBegin(); OSInitHookEnd(); OSTCBInitHook()。其中,9 个系统Hook 函数可以为空函数,也可以根据用户自己的需要编写相应的操作代码。任务栈结构初始化函数OSTaskStkInit,必须根据移植时统一定义5的任务堆栈结构进

9、行初始化。3) OS_CPU_A.S 的移植由于ADS1.2 编译器默认汇编文件后缀名为“S”,所以移植代码OS_CPU_A.ASM 改名为OS_CPU_A.S。在OS_CPU_A.S 文件中,需要编写以下4 个简单的汇编语言函数: OSStartHighRdy(); OSCtxSw(); OSIntCtxSw(); OSTickISR()。其中,函数OSCtxSw 不是必须的,但必须要定义好函数OS_TASK_SW(在OS_CPU.H中声明),以实现任务级任务切换。启动C/OS-II 是通过调用OSStart()实现,OSStart()最终调用函数OSStartHighRdy()运行多任务启

10、动前优先级最高的任务。OSStartHighRdy()函数的代码参考程序清单3.5。函数OSTickISR 为系统时钟节拍中断函数,这需要使用到处理器的定时器和定时中断。为了达到集中地初始化硬件(定时器、中断和I/O 等)的目的,此函数可以在用户工程的启动代码文件中实现,参考程序清单3.6。说明:系统时钟节拍中断函数的名称并不是固定的,也并不一定要在OS_CPU_A.S 文件中实现。6蜂鸣器实验原理:蜂鸣器实验原理:在MagicARM2200-S 上运行基于C/OS-II 操作系统的程序的具体操作步骤如下。说明: (PC) - 属于在PC 机上操作,即软件的操作(硬件) - 属于MagicAR

11、M2200-S 硬件操作(PC+硬件) - 属于在PC 机上进行软件操作,硬件上要连接或跳线操作(1)(1) 安装ADSADS 1.21.2运行在ADS 目录下Setup.exe,开始安装ADS1.2。(若已安装过,此步省略)按照安装软件的提示安装,与其它软件安装操作方法基本一致。(2)(2) 了解ADSADS 1.21.2使用ADS1.2 建立工程,编译链接设置,调试操作等,更详细的使用方法参考ADS1.2的在线帮助文档或相关资料。(若已熟悉ADS 1.2,此步省略)(3)(3) 连接EasyJTAGEasyJTAG 仿真器和MagicARM2200-SMagicARM2200-S将Easy

12、JTAG 仿真器的25 针接口通过并口延长线与PC 机的并口连接,先给MagicARM2200-SMagicARM2200-S 实验箱供电,再将EasyJTAG 仿真器的20 针接口通过20 PIN 连接电缆接到MagicARM2200-S 的J3 上。(若已连接好,此步省略)(4)(4) EasyJTAGEasyJTAG 仿真器的安装与应用若已安装过,此步省略。(5)(5) 添加工程模板若已添加过,此步省略。7(6)6) 建立项目目录并添加C/OSC/OS 2.522.52 源代码和移植代码建立一个项目目录,比如uCOS-II。将C/OS 2.52 源代码Source(目录)复制到项目目录,

13、将移植代码ARM(目录) 复制到项目目录。将移植的PC 服务代码Arm_Pc 复制到项目目录,使用移植的PC 服务代码,就可以通过串口向PC 发送显示数据(由EasyARM 软件的DOS 字符窗口显示)。C/OS 2.52 源代码可以从参考文献4的附带光盘上获得。移植代码ARM 和移植的PC 服务代码Arm_Pc 可以从MagicARM2200-S 的产品配套光盘上获得。(7)(7) 用工程模板建立工程使用LPC2200(for MagicARM2200)专用工程模板建立工程(比如“ARM Executable Imagefor UCOSII(MagicARM2200)”工程模板),工程存放路

14、径为项目目录下,建立源文件并加入工程,然后编写程序代码。更改Os_cfg.h 文件,配置C/OS-II 操作系统。编译链接工程,若有错误,则修改程序,然后再次编译。(8)(8) 仿真调试工程正确设置MagicARM2200-S 的跳线;启动AXD 进行仿真调试。六、实验步骤六、实验步骤LEDLED 流水灯控制实验步骤:流水灯控制实验步骤:(1) 连接EasyJTAG 仿真器和MagicARM2200-S,然后安装EasyJTAG 仿真器的驱动程序(若已经安装过,此步省略)。(2) 为ADS1.2 增加LPC2200(for MagicARM2200)专用工程模板(若已增加过,此步省略)。(3)

15、 建立一个项目目录uCOS-II,添加C/OS 2.52 源代码和移植代码。将移植的PC 服务代码Arm_Pc 复制到项目目录uCOS-II 下。(4) 将C/OS 2.52 源代码Source(目录)复制到项目目录8(5) 启动ADS 1.2,使用ARM Executable Image for UCOSII(for MagicARM2200)工程模板建立一个工程LedDisp,工程存储在uCOS-II 目录下。(6) 打开工程窗口user 组中的main.c 文件,编写实验程序并保存。(7) 根据程序设计来更改Os_cfg.h 文件,配置C/OS-II 操作系统。(对于本实验,C/OS-II的配置使用模板默认设置即可)(8) 选用DebugInExram 生成目标,然后编译链接工程(9) 将MagicARM220

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号