12.3 RTX-51的任务调度

RTX-51实时多任务操作系统和标准的单进程C51程序的主要区别在于任务调度的方式。单进程C51程序主要通过函数调用或中断来实现任务调度。RTX-51多任务程序可以采用4种任务调度方式:循环任务调度、事件任务调度、信号任务调度和抢先任务切换。另外,RTX-51还有一些特有的概念和特性。

12.3.1 循环任务调度

在RTX-51实时多任务操作系统中,使用一个定时子程序,由单片机的硬件定时器来完成。这个定时子程序产生周期性的中断,用来驱动RTX-51内核实现时间片的划分。RTX-51循环任务调度便按照预先划分的时间片来循环轮流执行多个任务的。

在RTX-51循环任务调度程序中,不要求有main主函数,RTX-51内核自动从第0号任务开始执行。对于某些多任务程序,如果包含main主函数,则需要使用os_create_task(RTX-51 Tiny系统)和os_start_system(RTX-51 FULL系统)函数来手工启动RTX-51实时多任务操作系统。