分类: 嵌入式
2016-05-26 19:57:43
1.Cortex-M4复位
堆栈指针寄存器SP
堆栈指针SP是寄存器R13,CONTROL寄存器BIT1的值指示当前用的哪个堆栈指针:
0指示主堆栈指针MSP,复位时就是这个值;
1指示是过程堆栈指针PSP;
复位的时候,处理器从地址0X00000000处装载主堆栈指针MSP的值。
链接寄存器LR
链接寄存器LR是寄存器R14,它用来存储子程序,中断的返回地址等的返回地址,复位时此寄存器的值为0xffffffff
程序计数器PC
程序计数器PC是寄存器R15,他包含了当前程序的地址。在复位时,处理器从复位向量装载PC的值,复位向量值的BIT0被装载到EPSR的T,而且必须是1,中断向量的地址是0X00000004
程序状态寄存器PSR
包括
应用程序状态寄存器APSR
中断程序状态寄存器IPSR
异常程序状态寄存器EPSR
2.Cortex-M4中断处理
Cortex-M中断处理的过程和普通函数的处理没有什么区别,所以,
__IRQ,__FIQ,__nested等关键字是不需要的,也是不起作用的。