三、移植OS_CPU_A.ASM
1、移植OS_CPU_SR_Save() OS_CPU_SR_Restore()
OS_CPU_SR_Save()保存当前的开关中断状态到R0,使用R0是因为编译器一般用R0传递参数。然后关中断。
Bx LR
从被OS_CPU_SR_Save()函数中断的程序处继续执行。进入临界段。
OS_CPU_SR_Restore()恢复R0中保存的开关状态,
Bx LR
从被OS_CPU_SR_Restore()函数中断的程序处继续执行。退出临界段。
这里使用的是PRIMASK,PRIMASK用于除能在 NMI和硬 fault之外的所有异常。
FAULTMASK能关闭所有异常和硬fault。
这里使用PRIMASK而不是FAULTMASK,是因为出现硬fault,必须要去处理,硬fault不能被关掉。