Cortex-M3 权威指南阅读总结-1

NVIC:预置了 240 个外部中断

            支持16个系统异常,实际只实现11个,保留5个。

            文章对中断和异常时而区分时而都看成异常,要注意上下文理解。

NVIC处理异常是靠向量表决定,向量表是一个类型为32位的整型数组,下标为入口偏移地址,值为 R15,即程序指针PC的地址。

入口基址在NVIC的重定位寄存器里面设置,然而系统复位后,该寄存器默认值为0,因此,下标即为异常的入口地址!

MSP 的初始值必须是堆栈内存的末地址加1:堆栈内存末地址,即最高位的地址

Cortex-M3的启动方式: 系统复位后,

                                        ①.从 地址 0x0000_0000 处取值给 R13/MSP 寄存器,

                                        ②.再触发 Reset 异常,在入口地址:0x0000_0004里取值给PC寄存器,即进入 Reset 异常处理函数

 

20180918补充:

        栈有R13实现,内核重启后,首先在0x0处取值,赋值给R13。由于栈是向低地址生长,高地址缩短。因而一开始就定义的了栈的大小。

 

 

你可能感兴趣的:(单片机)