ARM Cortex-M3 架构寄存器以及汇编指令
1.1 寄存器组
R0-R12为通用寄存器(RO-R3传递形参,R4-R12保存局部变量),R13(SP)栈指针,R14(LR)寄存器用于保存子程序/中断返回地址,R15(PC)当前指令地址。其中SP栈指针在M3中有两个堆栈指针:主堆栈指针(MSP)和进程堆栈指针(PSP),R13同一时刻只能使用其中一个,默认情况为MSP(PSP os内核使用),CONTORLK控制寄存器可配置MSP与PSP。BASEPERI、PRIMASK、PAULTMASK为中断屏蔽寄存器。
1.2 基础汇编指令
(1)将LR和R3的值压入sp 指向栈中保存局部变量和返回地址
(2)把R0的值传到R2
(3)将R0的值写入sp指向的内存空间
(4).读R1的值赋给R0
(5)将R0和R3的值相加赋给R0
(6)出栈R3、PC = [lr]的值 将LR的赋给PC退出函数或者中断。