欢迎来到天天文库
浏览记录
ID:38698628
大小:288.50 KB
页数:13页
时间:2019-06-17
《实验五 μCOS-II移植实验 昆明理工大学》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、昆明理工大学信息工程与自动化学院学生实验报告(2011—2012学年第2学期)课程名称:嵌入式应用及基础开课实验室:4432014年5月27日年级、专业、班物联网111学号201110410130姓名杨国锋成绩实验项目名称实验五μC/OS-II移植实验指导教师欧阳鑫教师评语该同学是否了解实验原理:A.了解□B.基本了解□C.不了解□该同学的实验能力:A.强□B.中等□C.差□该同学的实验是否达到要求:A.达到□B.基本达到□C.未达到□实验报告是否规范:A.规范□B.基本规范□C.不规范□实验过程是否详细记录:A.详细□B.一般□C.没有□教师签
2、名:年月日一、实验目的l了解μC/OS-II移植条件和内核基本结构。l掌握将μC/OS-II内核移植到ARM7处理器上的方法和步骤。二、实验原理1.μC/OS-II文件体系μC/OS-II的文件体系结构见图4-1,其中应用软件层是基于μC/OS-II上的代码。μC/OS-II包括3个部分:1)核心代码部分:这部分代码与处理器无关,包括7个源代码文件和1个头文件。它们负责的功能是内核管理、事件管理、消息队列管理、存储管理、消息管理、信号量处理、任务调度和定时管理。2)设置代码部分:包括2个头文件,用来配置事件控制块的数目以及是否包含消息管理相关代码
3、等。3)处理器相关的移植代码部分:包括1个头文件、1个汇编文件和1个C代码文件。在μC/OS-II的移植过程中,用户所需关注的就是这部分文件。图4-1μC/OS-II文件体系结构2.μC/OS-II移植条件1)处理器的C编译器能产生可重入代码。可重入代码指的是可以被多个任务同时调用,而不会破坏数据的一段代码;或者说代码具有在执行过程中打断后再次被调用的能力。2)用C语言就可以打开和关闭中断。ARM处理器核包含一个CPSR寄存器。该寄存器包括一个全局中断禁止位,控制它打开和关闭中断。3)处理器支持中断并且能产生定时中断。ARM处理器都支持中断并能产
4、生定时中断。4)处理器支持容纳一定量数据的硬件堆栈。对于一些只有10根地址线的8位控制器,芯片最多可访问1KB存储单元。在这样的条件下移植是比较困难的。5)处理器有将堆栈指针和其他CPU寄存器读出和存储到堆栈或内存中的指令。ARM处理器中汇编指令STMFD可以将所有寄存器压栈,对应也有一个出栈的指令LDMFD。三、实验内容移植μC/OS-II内核到ARM处理器S3C44B0,在IDE中观察其运行状况。四、实验步骤1.基本的配置和定义所有需要完成的基本配置和定义全部集中在OS_CPU.H中。1)定义与编译器相关的数据类型μC/OS-II为保证可移植
5、性,程序中没有直接使用int、unsignedint等定义,而是自己定义了一套数据类型。2)定义使能和禁止中断宏3)定义栈的增长方向用户规划好栈的增长方向后,定义符号OS_STK_GROWTH的值。4)定义OS_TASK_SW宏此宏是μC/OS-II从低优先级任务切换到高优先级任务时的调用,可采用两种方式定义:若处理器支持软中断,可使用软中断将中断向量指向OSCtxSW函数;也可直接调用OSCtxSW函数。2.移植OS_CPU_A.ASM汇编代码文件OS_CPU_A.ASM汇编代码文件有4个汇编函数需要移植。1)OSStartHighRdy()该
6、函数由OSStart()调用。OSStart()负责使就绪状态的任务开始运行,其中OSStartHighRdy()负责获取新任务的堆栈指针,并从堆栈指针中恢复新任务的所有处理器。2)OSCtxSw()该函数由OS_TASK_SW宏调用。OS_TASK_SW宏由OSSched()调用。OSSched()负责任务之间的切换。OSCtxSw()在OSSched()中负责将当前任务对应的处理器寄存器保存到堆栈中,并将任务中需要恢复的处理器寄存器从堆栈中恢复出来。3)OSIntCtxSw()该函数由OSIntExit()调用。OSIntExit()由OST
7、ickISR()调用。OSIntCtxSw()负责在定时中断中任务之间的切换。4)OSTickISR()时钟节拍函数,由定时中断产生,主要负责在进入时保存处理器寄存器,完成任务切换,退出时恢复寄存器并返回。一、实验目的在内核移植了uCOS-II的处理器上创建任务。二、实验内容1)运行实验十,在超级终端上观察四个任务的切换。2)任务1~3,每个控制“红”、“绿”、“蓝”一种颜色的显示,适当增加OSTimeDly()的时间,且优先级高的任务延时时间加长,以便看清三种颜色。3)引入一个全局变量BOOLEANac_key,解决完整刷屏问题。4)任务4管理
8、键盘和超级终端,当键盘有输入时在超级终端上显示相应的字符。三、预备知识1)掌握在EWARM集成开发环境中编写和调试程序的基本过程。2)了
此文档下载收益归作者所有