Puntero de pila R13 (SP)
Puntero de pila MSP
Puntero de pila PSP
Registro de enlace R14 (LR)
1". Llamada de función
Cuando se utiliza bl o blx para saltar a una subrutina, r14 guarda la dirección del remitente, que se puede restaurar al final del procedimiento de llamada.
Cuando se utiliza BL o BLX, la instrucción de salto coloca automáticamente la dirección de retorno en r14; la subrutina regresa copiando r14 a la PC, generalmente con una de las siguientes instrucciones: MOV PC, LR
BX
LR
通常子程序这样写,保证了子程序中还可以调用子程序。
stmfd sp!, {lr}
……
ldmfd sp!, {pc}
2". Interrupción
Cuando ocurre una excepción, el R14 físico específico del modo de excepción se establece en la dirección a la que regresará el modo de excepción.
1. Llega la interrupción
El valor en el registro se guardará a su vez, lo que el hardware completa automáticamente
2. Llame al controlador de interrupciones
3. Interrumpir el regreso
Verifique el valor de LR, si LR=0xffff fff1
? ? ? ?
Verifique el valor de LR. Si LR = 0xffff fff9,
significa que antes de ingresar a la interrupción, se usa la pila MSP, porque el valor del registro se guardará en secuencia antes de ingresar a la interrupción. Todos R0, R1, R2, R3 , R12, LR se puede encontrar a través del puntero MSP. Dirección de retorno, PSR
verifica el valor de LR. Si LR = 0xffff fffD,
significa que antes de ingresar la interrupción, se usa la pila de PSP, porque el valor del registro será guardado en secuencia antes de ingresar la interrupción. Todo se puede encontrar a través del puntero de PSP R0, R1, R2, R3, R12, LR, dirección de retorno, PSR.