北航ARM实验报告实验uCOSII实验.pdf

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

UC-OS移植实验

一、实验目(de)

在内核移植了uCOS-II(de)处理器上创建任务.

二、实验内容

1.运行实验十,在超级终端上观察四个任务(de)切换.

2.任务1~3,每个控制“红”、“绿”、“蓝”一种颜色(de)显示,适当增加

OSTimeDly()(de)时间,且优先级高(de)任务延时时间加长,以便看清三种

颜色.

3.引入一个全局变量BOOLEANac_key,解决完整刷屏问题.

4.definerUTRSTAT0((volatileunsigned)0)

defineRdURH0()((volatileunsignedchar)0)

当键盘有输入时在超级终端上显示相应(de)字符.

三、实验设备

硬件:ARM嵌入式开发平台、用于ARM920T(de)JTAG仿真器、PC机

Pentium100以上.

软件:PC机操作系统Win2000或WinP、ARM集成开发环境、仿真器驱动

程序、超级终端通讯程序.

四、实验原理

所谓移植,指(de)是一个操作系统可以在某个微处理器或者微控制器

上运行.虽然uCOS-II(de)大部分源代码是用C语言写成(de),仍需要用C

语言和汇编语言完成一些与处理器相关(de)代码.比如:uCOS-II在读写处

理器、寄存器时只能通过汇编语言来实现.因为uCOS-II在设计(de)时候

,所以,uCOS-II(de)移植还是比较容易(de).

要使uCOS一工工可以正常工作,处理器必须满足以下要求:

1)处理器(de)C编译器能产生可重入代码.

2)在程序中可以打开或者关闭中断.

3)处理器支持中断,并A能产生定时中断(通常在10Hz}1000Hz之间).

4)处理器支持能够容纳一定量数据(de)硬件堆栈.

5)处理器有将堆栈指针和其它CPU寄存器存储和读出到堆栈(或者内

存)(de)指令.

uCOS-II进行任务调度(de)时候,会把当前任务(de)CPU寄存器存放到

此任务(de)堆栈中,然后,再从另一个任务(de)堆栈中恢复原来(de)工作

寄存器,继续运行另一个任务.所以,寄存器(de)入栈和出栈是uCOS一工工

多任务调度(de)基础.

五、实验步骤

1以实验十为模板,将实验六inc目录下(de)和src目录下(de)拷到模

板下(de)相应目录,将加入工程中.

2包含以下头文件include“inc/”.

3改文件中包含头文件(de)路径.

4声明引用(de)变量eternU32LCDBufferII2[LCDHEIGHT][LCDWIDTH];

六、源程序

include<>

OSStart();//starttheOS//

//neverreached//

return0;

}

///////////////////////////////////////////////////////////////

///////////////////////////////////////////////////

voidTask1(voidId)

{

for(;;)

{if(ac_key==1)

{ac_key=0;

for(j=0;j<640;j++)

LCDBufferII2[k][j]=0000000ff;

LCD_Refresh();

OSTimeDly(10000);

ac_key=1;

}

文档评论(0)

199****2782 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档