rt_hw_interrupt_disable 函数中中断状态怎么保证一致性?

发布于 2020-01-19 15:18:53
    本帖最后由 aozima 于 2020-1-19 21:08 编辑


rt_hw_interrupt_disable    PROC      ROC 伪指令定义函数    
EXPORT rt_hw_interrupt_disable ;EXPORT 输出定义的函数,类似于 C 语言 extern
MRS r0, PRIMASK ; 读取 PRIMASK 寄存器的值到 r0 寄存器
CPSID I ; 关闭全局中断
BX LR ; 函数返回
ENDP



如题,在上图中,若在MRS r0, PRIMASK与CPSID I之间任务被切换到其它线程调用rt_hw_interrupt_disable时,不是会导致r0的值与预期不一致吗?
即执行了两次rt_hw_interrupt_disable ,但是返回值却是一致的?

查看更多

关注者
0
被浏览
222
1 个回答
shjic
shjic 2020-01-19
在m中,PRIMASK只有为0时才能切换任务,所以不存在不一致的问题

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友