FreeRTOS-中断相关坑
1. FreeRTOS中断的配置
LIBRARY_LOWEST_INTERRUPT_PRIORITY:配置FreeRTOS最低优先级,SysTick和PendSV默认在此优先级
LIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY:高于该配置的优先级中断中都不能调用freertos的任何API,但是同时他也不会受freertos的内核影响而可以得到最实时的响应。如这里配置为5,uart1配置为4优先级,则uart1不受系统接管并且不能调用FreeRTOS的API。
2. 注意
如果LIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY配置为5。并且NVIC中配置的优先级收系统接管并且符合接管条件(优先级大小为FreeRTOS可以接管的大小),那么在freertos运行之前(osKernelStart之前)配合相关中断的开关是不起作用的。
需要注意
- 中断资源需不需要系统管理
- 被系统管理的中断资源的控制应在系统运行起来之后
- 不受系统管理的中断资源不能调用系统的API