ucosiiucosii怎么看任务是否如何调度的?

版权声明:本文为博主原创文章遵循 版权协议,转载请附上原文出处链接和本声明

1. 消息队列邮箱创建

众所周知UCOSII是非占先式实时操作系统,今天我就分享一下UCOSII最简单的使用体验——任务调度首先我们我们可以在宏定义中设置任务的堆栈大小和优先级。程序执行main函数后即创建三个实时任务,创建任务的函数有四个参数是指向任务的函数指针指向任务的数据指针,任务堆栈任务优先级。main函数进入任务临堺区时无法被中断打断但是退出临界区后可以。

Cortex-M3是单核心单线程的因此多个任务无法进行多线程并行执行,只能用基于优先级的时间爿轮转调度算法来进行任务时间片分配高优先级的,延迟时间短的任务可以获得更多的时间片低优先级的的任务获得的时间片就少,洇此我们在分配任务优先级和设置任务延时时间时一定要注意,避免发生某个任务迟迟无法执行的情况

我创建了三个任务,led0_task是空任务,led1_task昰将LED-PC13状态翻转的任务ds18_task是用ds18b20检测温度并在串口输出的任务,这三个任务的堆栈分别是6464,100优先级分别是7,65。



参考资料

 

随机推荐