初学UCOSIII,认为认为任务调度或者任务切换只有2中方式——任务级和中断级。中断级自然不必细说,中断结束后会进行任务调度,任务级根据资料显示使用的是OSTimeDlyHMSM()函数和OSTimeDly()函数,因为内部有OSSched()进行任务调度。
但在实际使用的过程中,发现delay_ms()的延时函数也会发生任务调度,究其原因是因为在UCOSIII中delay_ms()内部也有认读调度函数OSSched()。这是否就是嵌入式系统的一个优点,不发生没有意义的延时,只要延时就发生任务调度?
当然我发现在delay_us()函数中是没有任务调度的,而且还给调度器上锁了,那是否就意味着只要us级别的延时不存在任务切换?
版权声明:本文为niushijia007原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。