在linux上模拟ucos-ii实时操作系统的实现

在linux上模拟ucos-ii实时操作系统的实现

ID:30819648

大小:62.00 KB

页数:4页

时间:2019-01-03

在linux上模拟ucos-ii实时操作系统的实现_第1页
在linux上模拟ucos-ii实时操作系统的实现_第2页
在linux上模拟ucos-ii实时操作系统的实现_第3页
在linux上模拟ucos-ii实时操作系统的实现_第4页
资源描述:

《在linux上模拟ucos-ii实时操作系统的实现》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、在Linux上模拟uCOS-II实时操作系统的实现摘耍:uCOS-II是一个短小而功能强人的实时嵌入式操作系统。在JeanJ.Labrosse先生所著.由邵贝贝教授翻译的Micro/uCOS-IITHEREAL-TIMEKERNEL(SecondEdition)一书中对这一操作系统作出了精彩的讲解,该书是一部关于uCOS-II操作系统的经典教材,同时在书中提供了关于uCOS-II在windows环境下的移植的4个范例。本文对其第一个范例作一个在redhatlinux9.0上的移植版木。移植的工作主要集屮在三

2、个方面,下文将分为三章,结介代码详细介绍。文章的最后将介绍我的试验平台并演示我的试验结果。1引言uCOS-II是一-个短小而功能强大的实时嵌入式操作系统。在JeanJ.Labrosse先生所著.由邵贝贝教授翻译的Micro/uCOS-IITHEREAL-TIMEKERNELCSecondEdition)—书中对这-操作系统作出了粘彩的讲解,该书是一部关于uCOS-II操作系统的经典教材,同时在书屮提供了关于uCOS-II在windows坏境下的移植的4个范例。木文对其第一个范例作一个在redhatlinux

3、9.0上的移植版札移植的工作主要集屮在三个方而,下文将分为三章,结合代码详细介绍。文章的最后将介绍我的试验平台并演示我的试验结果。2字符串的显示字符串显示两数PC-DispStr在文件pc.c中,这个文件木身不是uCOS-II的一部分。它的主要工作是建立一•系列的功能函数來发挥PC机的强大功能,并被测试代码所调用。2.1设置前景色和后景色我们使用类似于prinf("33130m")的语何來设置颜色.转义序列就是一个让shell执行一个特殊步骤的控制指令。转义序列通常都是以ESC开头(这也是它的命名原因)。在

4、shell里表示为亠[。这种表示法需要一点时间去适应,也可以用33完成相同的工忤(ESC的ASCII码用十进制表示就是27,二用八进制衣示的33)。33声明了转义序列的开始,然后是[开始定义颜色。下而我们要选择前景色(这里是32,代表绿色)。背景色的40表示黑色。耍是不想让提示符后而的文字也变成绿色,我们用33[Om关闭转义序列,33[Om是shell的默认颜色。前景色和背景色都有8种可川的选择。可选颜色:红色、绿色、黄色、蓝色、洋红、青色和白色。他们对应的颜色代码是:30(黑色)、31(红色)、32(绿色

5、)、33(黄色)、34(蓝色)、35(洋红)、36(青色)、37(白色)。用同样色方法设置背景色,不过要把第一个数字”3”替换成”4”,例如40、41、42、43、44、45、46、47<,虽然在这里可以按照上面介绍的对应关系定义修改在pc.h中定义的前景色和后景色的宏,使对应关系更加明确。(注意:他的后而一位表示前景色,前面一位表示后景色),但是我们在这里的设汁思路是尽量不对原书屮的代码作改动,所以在函数的实现中直接使用switch语句,对相应的前景色和后景色。(linux的shell只支持以」:儿种颜色

6、)switch(color&OxFO)/*查看前景色*/{caseDISP_FGND_BLACK:printf(”33[30nT);break;}switch(color&OxOF)/*査看后景色*/{caseDISP_BGND_BLACK:prinf(*33[40m");break;}2.2跟踪光标的位置我使用printf(“33[%u;%uH“,y+l,x+l)來跟踪光标的位置。33是声明了转义序列的开始,上文已经介绍,不再累叙,[y;xH是设置光标位置的格式。x和y分别表示横轴和纵轴。3键盘输入键盘输

7、入函数PC_GetKey在windows环境卞,由丁•冇库函数kbhit返回最近所敲的按键.就很容易实现。而在linux环境卜•我们需婆构造自己的kbhit,在参考文献2中John.Wiley.Sons先主提供了一种现成的实现方法(这个方法会阻塞心d函数•在木文中并不适用),这里我们使用了另外的一种实现方法,下面介绍给出其实现代码.intkbhit(void){structtimevaltv;fd_setreadFd;structtermiosncwKbdModc;if(!inited){newKbdMod

8、e.cJflag&二〜(ICANONIECHO);newKbdMode.c_cc[VTIME]=0;newKbdMode.c_cc[VMIN]=l;tesetattr(0,TCSANOW,&ncwKbdModc);atexit(rekbd);inited=l;}tv.tv_sec=();tv.tv_usec=O;FD_ZERO(&readFd);FD_SET(STDIN_FILENO,&readFd);selec

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。