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