RTX-51实时系统(1)

来源:本站
导读:目前正在解读《RTX-51实时系统(1)》的相关信息,《RTX-51实时系统(1)》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《RTX-51实时系统(1)》的详细说明。

1.定时器滴答中断

RTX-51Tiny实时系统用标准8051的定时器0(模式1)生产一个周期性的中断。该中断就是RTX-51

Tiny的定时滴答(TimerTick)。库函数中的超时和事件间隔就是基于该定时滴答来测量的。

默认情况下,RTX-5110000个机器周期产生一个滴答中断,因此,对于运行在12MHz的标准8051来说,滴答的周期是10ms,频率是100Hz12MHz/12/1000)。该值可以在CONF_TNY.A51配置文件中修改。

2.任务

RTX51-Tiny实时系统本质上就是一个任务切换器,建立一个RTX-51Tiny程序,就是建立一个

或多个任务函数的应用程序。

任务创建可以使用关键字_task_”来创建任务。每个任务都有正确的状态,如运行、就绪、等待、删除、超时等状态,要注意的是某个时刻只有一个任务处于运行态。

RTX-51Tiny支持最多16个任务,而每一个任务的格式一定要是如下格式:

voidfunction(void)_task_TASKID

{

while(1)

{

//其他代码

}

}

每一个任务必须加上“_task_”关键字,TASKID的有效取值范围是0~15。所有的任务必须是循环重复的,任务不能够返回。

3.消息机制

RTX-51Tiny实时系统由于是RTX-51Full的一个子集,不具有邮箱系统、信号量等操作,只具

备消息机制方式,主要给任务发消息。通过内核提供的服务,任务或中断服务子程序可以将一条消息放入消息队列。同样,一个或多个任务可以通过内核服务从消息队列中得到消息。

4.os_wait函数

os_wait函数可以使一个任务等待一个或多个事件。通过对os_wait函数输入不同的参数,可以让os_wait函数等待指定的时间超时、等待消息、等待制定的时间,参数分别为K_TMOK_SIGK_IVLos_wait可以返回时,返回值表明了发生什么事件,RDY_EVENT表示任务的就绪标志被置位,SIG_EVENT表示收到一个信号,TMO_EVENT表示超时完成或时间间隔到达。

5.编写规则

l确保加载了RTX51TNY.H头文件。

l不要建立main函数,RTX-51Tiny有自己的main函数。

l程序里必须至少包含一个任务函数。

l中断必须有效(EA=1),在临界区如果要禁止中断时一定要小心。

l程序必须至少调用一个RTX-51Tiny库函数(如os_wait),否则不能够连接到RTX51-Tiny库函数。

lTask0是程序中首先要执行的函数,必须在任务0中调用os_create_task函数以运行其余任务。

l任务函数必须是从不退出或返回的。任务必须用一个while(1)或类似的结构进行循环。用os_delete_task函数可以停止某一个运行的任务。

必须在Keil中指定RTX51-Tiny,或者在连接器中指定。

提醒:《RTX-51实时系统(1)》最后刷新时间 2024-03-14 01:12:30,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《RTX-51实时系统(1)》该内容的真实性请自行鉴别。