返回> 网站首页 

STM32特殊功能寄存器PRIMASK、FAULTMASK、BASEPRI

yoours2021-06-19 10:13:23 阅读 6901

简介一边听听音乐,一边写写文章。

一、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的比较。


微信小程序扫码登陆

文章评论

6901人参与,0条评论