001_FreeRTOS中断配置

(一)优先级看:022_STM32中断优先级分组解析

(二)FreeRTOS的中断配置中没有处理亚优先级(响应优先级)的情况,所以只能配置成组4,16个都为抢占优先级

(三)此宏用来设置 MCU 使用几位优先级,STM32 使用的是 4 位,因此此宏为 4! 2^4=16,那么就有16个优先级

#define configPRIO_BITS               4   

(四)设置系统的优先级。最低优先级就是15,系统能管理的最高优先级是5,也就是说小于5的优先级FreeRTOS不能管理

#define configLIBRARY_LOWEST_INTERRUPT_PRIORITY 15 //中断最低优先级
#define configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY    5 //系统可管理的最高中断优先级

(五)关中断和开中断,vPortRaiseBASEPRI() 是 向 寄 存 器 BASEPRI 写 入 宏configMAX_SYSCALL_INTERRUPT_PRIORITY ,那 么 优 先 级 低 于configMAX_SYSCALL_INTERRUPT_PRIORITY 的中断就会被屏蔽!

#define portDISABLE_INTERRUPTS()  vPortRaiseBASEPRI()    /*关中断*/
#define portENABLE_INTERRUPTS()  vPortSetBASEPRI(0)     /*开中断*/

 

posted @ 2018-12-29 11:18  陆小果哥哥  阅读(1523)  评论(0编辑  收藏  举报