原创 8051 RTOS(RTX51 Tiny)学习篇(一)

2013-11-14 15:59 3771 19 20 分类: 消费电子

记得使用51还是大学时候的事了,当时只知道能在51上移植uc-os,主要原因也是不知道51上能使用什么RTOS,后来看到有人开始在51上移植uc-os,自己也就搞了本书开始研究uc-os,不过可惜,移植了将近一星期,也没移植成功,后来就放弃了!
最近由于项目需要,要使用51内核的MCU,不过这次需要给51加入RTOS,以增加系统稳定性。通过我们公司的老工程师才知道原来KEIL上早就已经集成了专用于51内核的RTOS,也就是这次的主题RTX51 Tiny。
首先说说关于RTX51 Tiny。RTX51分为Tiny版和Full版,两者都是不开源的。Tiny是免费版,Full是收费的。在功能上Full的功能比Tiny要强大很多。而KEIL中提供的就是Tiny版。不过对于51来说,Tiny版就应该够用了。其实之前在51上移植uc-os应该来说是一个不好的选择,51内核的资源有限,对于大型的RTOS可能运行起来还存在问题,不过自己也没试过。RTX51 Tiny是非常简化的RTOS,它没有什么信号量,也没有什么消息信箱等等,只具有几个简单的系统调度功能函数。它对任务的调度方式,也可由用户在其配置文件中进行设置,它的调度方式分为:1,时间片轮叫调度,即将每个任务分给CPU,CPU在这一规定时间片内对任务进行操作,以任务的ID号对任务进行轮叫运行。2.合作式调度,这种方式就是用户通过自定义的方式将时间片轮叫调度关闭了,RTOS调度任务的方式,只能通过用户进行手工的调度。RTX51最大支持16个任务,任务之间没有优先级。由于没有优先级,在轮叫调度方式下,如果当前任务发送了一个信号给它非相邻的任务,当这一任务执行完成后,它仍然会执行它的下一个相邻任务,而不会去执行发给其信号的任务,具体执行的情况,可以看我的例子。RTX51是使用Timer0作为RTOS的时间调度,所以用户在应用程序中就不要使用Timer0了,不然程序肯定无法运行。对于时间片的时间设定,RTX51使用了INT_CLOCK,TIMESHARING这两个宏,在使用过程中,我发现对于TIMESHARING好像不能设置的太大,不然对于任务的调度就混乱了,不过在KEIL相关的文档中也没有找到关于这个宏所能定义的最大值。还有由于RTX51-Tiny使用的是Timer0,在使用Timer0之前一定要设置好Timer0的时钟源和工作模式,默认情况下Timer0使用的是16-bit模式,所以如果用户在程序中还使用其它的定时器会涉及修改TMOD寄存器时不要采用直接赋值的方式,而应该采用Read-Modify-Write的方式,这样就不会改变默认TMOD位!!还有每个任务必须是while(1)结构,否则此任务就只会执行一次,并造成整个任务调度出错!!RTX51中时钟节拍不要设置的太小,因为时间中断会占用几百个指令周期。RTX51中只具有如下的系统服务:
isr_send_signal
isr_set_ready
os_clear_signal
os_create_task
os_delete_task
os_reset_interval
os_running_task_id
os_send_signal
os_set_ready
os_switch_task
os_wait
os_wait1
os_wait2
对于RTX51的相关资料文档,在KEIL中已经阐述的非常详细了,以后在使用过程中,在出现什么问题,再和大家分享,下面是我用KEIL和Protues仿真的一个实例。
 

文章评论1条评论)

登录后参与讨论

用户1510498 2013-6-16 10:45

提供详细的例子,很不错。
相关推荐阅读
huhaomcu_856934054 2014-08-19 20:54
uCOS-Ⅱ
启动uCOS-Ⅱ的学习与移植!...
huhaomcu_856934054 2014-07-20 10:08
多通道电路原理图
简单说说关于Protel中提供的多通道原理绘制与PCB布局布线. Protel(不知99SE是否可以)有提供多通道电路原理图的设计,这项功能在有些方面还是很有用处的,比如说:当部分原理图在一张图...
huhaomcu_856934054 2014-04-07 09:10
IAR制作工程模板
我个人学习新的MCU过程一般会是如下过程,建立一个个的DEMO工程,每个DEMO工程学习一个外设,所以每个DEMO程序都很简单,但是在建立一个个DEMO程序的过程中,会发现开始的步骤基本上就是相同...
huhaomcu_856934054 2014-03-14 18:06
新公司与老公司的比较
在新公司上了几天班真心有点想念以前的老公司了! 下面来比较比较新公司与老公司吧: 1.业务量。新公司的项目更多,人员更多,涉及的面也较广,整体的技术水平要大大强于以前的老公司。以前老公司里...
huhaomcu_856934054 2014-02-24 15:01
辞职了!
辞职了,但愿柳暗花明又一村!!...
huhaomcu_856934054 2014-02-21 09:22
回来啦!
之前因为身体原因一直在家休息,直到今天才来武汉上班。但愿今年个人的工作能有所上升!...
我要评论
1
19
关闭 站长推荐上一条 /2 下一条