Realview MDK 中不用手动开中断的原因

startup.s启动代码文件:

;  Enter Supervisor Mode and set its Stack Pointer
                MSR     CPSR_c, #Mode_SVC:OR:I_Bit:OR:F_Bit
                MOV     SP, R0
                SUB     R0, R0, #SVC_Stack_Size

;  Enter User Mode and set its Stack Pointer
                MSR     CPSR_c, #Mode_USR

其中

1.

MSR     CPSR_c, #Mode_SVC:OR:I_Bit:OR:F_Bit

:OR: 是内置的操作符 详见帮助文档  Operator precedence

这一句将 CPSR的I F位置位 关中断

2.

MSR     CPSR_c, #Mode_USR

Mode_USR  =0x10

进入用户中断模式前I F位清位 开中断

这就是为什么在 Realview中不用手动开中断的原因了

上一篇:mybatis 使用场景


下一篇:JAVA之旅(十二)——Thread,run和start的特点,线程运行状态,获取线程对象和名称,多线程实例演示,使用Runnable接口