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中不用手动开中断的原因了
本文解析了startup.s启动代码文件的关键指令,介绍了如何通过设置CPSR寄存器进入管理员模式并关闭中断,以及如何进入用户模式并打开中断。这些操作对于理解处理器启动过程至关重要。
1万+

被折叠的 条评论
为什么被折叠?



