Arm中的中断开关方法
对于中断开关的实现,可以使用PRIMASK(只响应NMI和Hardfault)、FAULTMASK(只响应NMI)、BASEPRI(定义被屏蔽优先级的阈值,比BASEPRI优先级高的中断才可响应)
让ThreadX使用BASEPRI(ThreadX 6.2.1,低版本可能不支持)
ThreadX提供的模板默认使用PRIMASK来开关中断,可以使用tx_user.h
中添加宏
#define TX_PORT_USE_BASEPRI \\ 使用BASEPRI
#define TX_PORT_BASEPRI 0x10 \\ 屏蔽优先级的阈值
对于STM32H7只使用了这个8位中的高四位,TX_PORT_BASEPRI设置为0x10则代表仅关闭抢占优先级1到15,抢占优先级0不关闭(值越小优先级越高,因此小于1的优先级才响应)