第一范文网 - 专业文章范例文档资料分享平台

ARM_Cortex-M3内核结构(17)

来源:用户分享 时间:2021-06-01 本文由随心录红尘 分享 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

表 2.9 向量偏移量寄存器(0xE000ED08)

向量表中至少需要有 4 个值:栈顶地址;复位程序的位置;NMI 异常的位置;硬故障的异常的位置。

当中断使能时,不管向量表的位置在哪,它指向所有使能屏蔽的异常。并且如果使用 SVC 指令,还 需要指定 SVCCall ISR 的位置。

2.5.4 异常的进入与退出

1.异常进入

入栈:当处理器发生异常时,首先自动把 8 个寄存器(xPSR、PC、LR、R12、R3、R2、R1、R0)压 入栈,处理器自动完成,在自动入栈的过程中,把寄存器写入栈的时间顺序,并不是写入空间相对应的, 但机器会保证正确的寄存器被保存到正确的位置,如图 2.10 所示,假设入栈,栈地址为 N。

地址

数据

时间

2.10 内部入栈示意图

取向量:发生异常,紧接着内核将根据向量表找出正确的异常向量,然后在服务程序的入口处预取 指,处理器将取指与取数据分别能过总线控制,使入栈与取指这两项工作能同时进行,以便快速进入中 断。

更新寄存器:入栈和取向量操作完成之后,在执行服务程序之前,还必须更新一系列寄存器。 SP:在入栈后会把堆栈指针(PSP或MSP)更新到新的位置。在执行服务例程时,将由MSP负责对堆 栈的访问。

PSR:更新IPSR位段(地处PSR的最低部分)的值为新响应的异常编号。 PC:在取向量完成后,PC将指向服务例程的入口地址, LR:在出入ISR的时候,LR的值将得到重新的诠释,这种特殊的值称为“EXC_RETURN”,在异常进 入时由系统计算并赋给LR,并在异常返回时使用它。 以上是在响应异常时通用寄存器及特殊功能寄

存器的变化。另外在NVIC中,也会更新若干个相关寄 存器。

搜索“diyifanwen.net”或“第一范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,第一范文网,提供最新教学研究ARM_Cortex-M3内核结构(17)全文阅读和word下载服务。

ARM_Cortex-M3内核结构(17).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/wenku/1191174.html(转载请注明文章来源)
热门推荐
Copyright © 2018-2022 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top