新手入门
- 积分
- 16
- 金钱
- 16
- 注册时间
- 2023-6-3
- 在线时间
- 4 小时
|
1金钱
今天在学习freeRTOS的时候,突然想到一个问题,如果优先级相同的时候,时间片的调度会协调各任务。
但是如果优先级不同的情况下,如果中间优先级的任务不使用vTaskDelay去挂起任务呢?
那么低优先级的任务是不是会被该任务去无限阻塞,导致无法运行?
然后就设置了如图的任务;
(1)LED1任务死循环中如果为空时,无论LED0,USART1的优先级为高还是为低,两个任务运行正常;
(2)LED1任务中打开gLED_Toggle(),但是不打开vTaskDelay时,设置USART1的优先级为4,设置LED0的优先级分别为2与5时,LED0闪烁表现异常,
LED偶尔以设定的1s的频率运行,偶尔会在一瞬间跳变两次(应该)电平,从而保持了之前的状态,
如:当前为低,准备跳转高,结果跳转高后又接着跳转低电平,从而维持了之前低电平的状态;
现在手上又没有仿真器以及示波器,所以没办法去仿真与观察具体的电平转换情况,所以问问大家
|
|