中断优先级分组设置
freertos 采用组4 全部0-15个抢占优先级,0个子优先级
低于configMAX_SYSCALL_INTERRUPT_PRIORITY(这个值是5)优先级的中断才允许调用FreeRTOS的API函数
中断优先级越小越优先,任务优先级越大越优先。
中断相关的寄存器
SHPR1
SHPR2
SHPR3
中断可以打断任务,任务不可以打断中断
PRIMASK :只有一位的寄存器,把他置1时关掉所有可屏蔽的异常,只有NMI和fault可以响应。
FAULTMASK:只有一位的寄存器,把他置1时只有NMI能响应其他异常和中断和fault全部关闭
BASEPRI : 9位寄存器(由表达优先级的位数决定)。被设置位某值时,优先级号大于等于此值的中断都被关闭(低优先级中断被关闭),若设置为0不关闭任何中断
中断优先级在FreeRTOS的管理范围内
建议优先级分组4
FreeRTOS用BASEPRI 来管理