初级会员

- 积分
- 76
- 金钱
- 76
- 注册时间
- 2012-10-9
- 在线时间
- 12 小时
|
1金钱
freeRTOS中的临界操作,采用的是向basepri寄存器中配置屏蔽的任务优先级实现的,宏定义为configMAX_SYSCALL_INTERRUPT_PRIORITY,进入临界区后,优先级高于configMAX_SYSCALL_INTERRUPT_PRIORITY的中断仍然会响应,等于小于该优先级的中断会被暂时屏蔽。
在很多教程中说,建议把一些紧急的事情(事关生命、安全等)的中断配置的优先级可高于configMAX_SYSCALL_INTERRUPT_PRIORITY。那么现在问题来了,如果真的有这么个用法,在这个非常高的优先级中需要给某个任务发送消息(或者信号、邮箱),这是不符合freeRTOS的用法的,因为freeRTOS的应用手册中有明确说明,对于可以在中断中调用的api函数,必须保证优先级不高于configMAX_SYSCALL_INTERRUPT_PRIORITY,违反操作会导致系统调度出现问题。
实际项目中,如果有这样的应用,应该采用什么样的方法呢?
|
|