返回> 网站首页
STM32特殊功能寄存器PRIMASK、FAULTMASK、BASEPRI
yoours2021-06-19 10:13:23
简介一边听听音乐,一边写写文章。
一、PRIMASK和FAULTMASK寄存器通过MRS/MSR方式或CPS指令访问。
PRIMASK:
置1时,通过把当前优先级改为0(可编程优先级中的最高优先级),来除能NMI和硬fault之外的所有异常。通过PRIMASK来实现开中断、关中断功能。
FAULTMASK:
把当前优先级改为-1,除能NMI之外的所有异常。FAULTMASK会在异常退出时自动清零。
二、BASEPRI
如果只想屏蔽某一个或一些中断,而保留一些中断不被屏蔽,则需要BASEPRI来实现。
只掩蔽优先级低于某一阈值的中断:它们的优先级在数字上大于等于某个数,可以将此优先级数值存储在BASEPRI中。如果BASEPRI为0,则不掩蔽任何中断。
BASEPRI寄存器还有另外一个名字:BASEPRI_MAX。使用此名时,只允许设置数值上比原来更小的优先级阈值,也就是说,只能一次次扩大掩蔽范围,反之则不行。BASEPRI则无此限制。
只有抢占优先级位域才参与和BASEPRI的比较,子优先级和保留位不参与和BASEPRI的比较。
文章评论
7761人参与,0条评论