ARM Cortex-M3权威指南学习笔记 第三章

来源:本站
导读:目前正在解读《ARM Cortex-M3权威指南学习笔记 第三章》的相关信息,《ARM Cortex-M3权威指南学习笔记 第三章》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《ARM Cortex-M3权威指南学习笔记 第三章》的详细说明。
简介:3.5 向量表 3.6 堆栈的基本操作 3.7 Cortex-M3 堆栈的实现 3.8 复位序列

3.5 向量表

向量表其实是一个WORD(32位整数)数组,每个下标对应一种异常,该下标元素的值则是该异常handler的入口地址。

ARM Cortex-M3权威指南学习笔记 第三章

举个例子,如果发生了异常11(SVC),则NVIC会计算出偏移移量是11x4=0x2C,然后 从那里取出服务例程的入口地址并跳入

3.6 堆栈的基本操作

3.7 Cortex-M3 堆栈的实现

Cortex‐M3使用的是“向下生长的满栈”模型。

虽然POP后被压入的数值还保存在栈中,但它已经无效了,因为为下次的PUSH将覆盖它的值!

3.8 复位序列

在离开复位状态后,CM3做的第一件事就是读取下列两个32位整数的值: 从地址0x0000,0000处取出MSP的初始值。

从地址0x0000,0004处取出PC的初始值——这个值是复位向量,LSB必须是1。然后从这个值所对应的地址处取指。

ARM Cortex-M3权威指南学习笔记 第三章

请注意,这与传统的ARM架构不同——其实也和绝大多数的其它单片机不同。传统的 ARM架构总是从0地址开始执行第一条指令。它们的0地址处总是一条跳转指令。在CM3 中,0地址处提供MSP的初始值,然后就是向量表(向量表在以后还可以被移至其它位置)。 向量表中的数值是32位的地址,而不是跳转指令。向量表的第一个条目指向复位后应执行 的第一条指令。

因为CM3使用的是向下生长的满栈,所以MSP的初始值必须是堆栈内存的末地址加1。

提醒:《ARM Cortex-M3权威指南学习笔记 第三章》最后刷新时间 2024-03-14 00:55:00,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《ARM Cortex-M3权威指南学习笔记 第三章》该内容的真实性请自行鉴别。