LR 连接寄存器:Link Register
LR寄存器的作用主要由两个:
一是用来保存子程序的返回地址;
当通过BL或BLX指令调用子程序时,硬件自动将子程序返回地址保存在R14寄存器中。子程序返回时,把R14的值
复制到程序计数器PC,即可实现子程序返回。
二是当异常发生时,R14中保存的值等于异常发生时程序计数器PC的值减4(因为cortex-m3采用3级指令流水线)。
因此在异常模式下,可以根据R14的值返回到异常发生前的相应位置,继续执行。
文章图片
【r14/lr寄存器的值】
文章图片