3867| 2
|
OSTaskSuspend()挂起后,之后的代码为什么还能执行?不是立即挂起的吗? |
1金钱
最佳答案因为你的用法有问题,OSTaskSuspend修改就绪表,挂起任务并切换是通过调用OS_TASK_SW()触发OS_CPU_PendSVHandler中断来切换的,你在外面包裹了临界区代码,及时中断标志位置起了,中断也触发不了,只有退出之后才能成功切换,所以后面能够执行,加其它代码只要在OS_CRITICAL_EXIT之前都能执行。临界区一般是用于共享数据的,像这种os内函数基本自带保护,你这种情况就是滥用
| ||
| ||
| ||
|手机版|OpenEdv-开源电子网
( 粤ICP备12000418号-1 )
GMT+8, 2025-6-10 02:45
Powered by OpenEdv-开源电子网
© 2001-2030 OpenEdv-开源电子网