第9期ThreadX视频教程:自制个微秒分辨率任务调度实现方案(2023-10-11)

发布时间 2023-10-14 15:21:31作者: 硬汉嵌入式

视频教程汇总帖:https://www.armbbs.cn/forum.php?mod=viewthread&tid=110519


 

说明:

1、一般应用,我们都会将任务RTOS系统时钟节拍(心跳)设置为1ms,但如果直接把RTOS的系统时钟节拍设置为1us,系统负担非常大,而且很多RTOS也做不到100MHz主频下,1us切换一次任务,导致RTOS没有时间处理应用任务
2、这个机制主要是用来替换大家的程序里面不支持任务切换的DelayUS微秒延迟的API,让其也支持释放CPU权限来支持任务调度, 延迟时间到后,还可以根据自己的优先级情况返回执行。当前将RTOS本身的延迟API,比如tx_thread_sleep替换为新作的API实现也是没问题的
3、RTOS的通信组件,信号量,消息队列,事件标志等不需要微秒分辨率的延迟,因为紧急的中断调用这些通信API,会让就绪的最高优先级的等待通信任务立即得到执行。
4、这种方式还有有个优势,可以更好的降低CPU利用率。

视频教程:

https://www.bilibili.com/video/BV1Yh4y1z7k3/


实现方法:

需要的,做替换,不需要的不用替换。

 

任务信息统计:


配套例子

程序中将任务的延迟和DS18B20的微秒延迟都改成新作的API osDeleyUS实现

链接:https://pan.baidu.com/s/1QxnwR5hbAugZ83zldSqyUg  提取码:7q3i