D第12章RTX51实时操作系统题稿.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
12.7 RTX51的应用举例 本节给出了一个采用RTX51实现的简单的交通灯控制模拟程序。其目的在于展示RTX51编程的思路与优势,同时为便于学习,又力求程序简单。因此这里通过串口输出模拟了一个人行道上的红绿灯控制过程:车通行,绿灯亮;绿灯保持一段时间后,闪烁几秒转亮黄灯几秒;黄灯没后,红灯亮起,人通行。然后又亮绿灯,周而复始。为方便学习调试,这里采用串口输出不同的文本串来指示绿灯亮、绿灯闪烁(文本串闪烁)、黄灯亮、红灯亮4种状态。为便于观察结果,示例程序运行所获的状态持续时间为:绿亮10s,绿闪3s,黄亮3s,红亮10s。 void lights(void) _task_ LIGHTS { while(1) /*任务必须是死循环*/ { os_wait1(K_SIG); /*等待信号量(由clock任务发出)*/ switch(showLightState) /*判断showLightState状态*/ { case GREEN: /*显示绿灯*/ printf(NOW is green: %8d\r,time); /*串口输出状态和时间*/ break; case GREENBLINK:/*绿灯闪烁*/ if(timeBlink%2) /*如果timeBlink为偶数显示空,否则显示绿灯*/ printf(NOW is green: %8d\r,time); else printf( \r); break; case YELLOW: /*黄灯*/ printf(NOW is yellow: %7d\r,time); /*串口输出状态和时间*/ break; case RED: /*红灯*/ printf(NOW is red: %10d\r,time); /*串口输出状态和时间*/ break; } } } time=13; /*更新时间数*/ printf(\n); /*换行输出*/ } break; } } } 12.7 12.8 小结 本章介绍了RTX51Tiny版的使用。RTX51是一款适合做8051嵌入式系统平台的实时操作系统。RTX51专门针对51设计,小巧紧凑,代码开放。很多应用证明这是一个成功的8位单片机的RTOS。但是在应用过程中应该注意它的使用场合。比如说,开发一个某家电的红外遥控器,可以用8051实现,但没必要加入个RTOS,为其编写个专用的监控程序就可以了。此外,由于RTX51是一个多任务的操作系统,所有在它的框架下所使用的函数一般都要求有可重入性。 12.8 第11章 RTX51实时操作系统 单片机原理、接口及应用 内 容 提 要 ★ 前言 ★ RTX51 系统特点 ★ RTX51 的程序结构 ★ RTX51的功能函数 ★ RTX51的任务调度 ★ RTX51的系统配置 ★ RTX51的应用举例 ★ 小结 12.1 前言 RTX51是一款小巧的针对基于8051系列嵌入式系统的多任务实时操作系统。它的使用可以简化比较复杂、有严格时间限制的软件的设计过程。RTX51主要有两个不同的可用版本: ①RTX5lFull版。这里称之为RTX51的标准版,既可以以循环(Round 一Robin )方式执行任务,也可以按4 级任务优先级的方式切换不同优先级的任务。标准版以并行方式工作,支持中断管理,信号和消息可以通过邮箱系统在不同任务之间传递。 ②RTX5lTiny版。这里称之为RTX5l的精简版,是其标准版的一个子集。它可以很容易地运行在8051 的单芯片系统而不需要任何外部数据存储器。通用性强,系统需求低,但功能上受到限制。它只支持循环方式和信号方式的任务切换,而不支持优先级方式的任务切换。 由于KEIL C中自带了RTX5l的精简版RTX5lTiny,事实上精简版也能够满足绝大部分场合的应用要求,所以以下只讲解RTX5lTiny的内容,出现RTX51的地方默认为其精简版RTX51Tiny。 12.1 12.2 RTX51系统特点 RTX51 可以在所有的8051 系列芯片上运行。用户只需要用标准的C语言编写RTX51 程序,然后用C51编译器编译即可生成代码。其中,仅有少数内容和标准C 语言有差异,这些内容是为了实现任务标识和优先级而设置的。RTX51 程序设计需要包含实时运行头文件和必要的库文件,并且要用BL51 连接/定位器来实现连接。在Keil中,你只需要在目标选项的Target标签中的Operating中选择RTX-51 Tiny,在你的头文件中加上#incl

文档评论(0)

希望之星 + 关注
实名认证
内容提供者

我是一名原创力文库的爱好者!从事自由职业!

1亿VIP精品文档

相关文档