remap(地址重映射)机制

本文深入探讨了ARM体系结构中的地址重映射(remap)机制。解释了在系统复位后,ARM如何从地址0开始执行指令,以及为什么初始阶段0x0地址必须映射到ROM。此外,详细阐述了remap机制如何解决中断向量表无法动态改变的问题,通过在程序运行时将0x0地址映射到RAM,从而实现高速响应异常事件并允许中断向量表的动态修改。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

                       remap(地址重映射)机制


(1)在系统复位之后,ARM将从地址0处开始执行指令,因此地址0x0处必须是ROM之类的在掉电之后数据不会天失的存储介质,而且存放的必须是E确的可执行的指令。

(2)在ARM的体系结构中,异常和中断的入口地址(即中断向最表),位于存储介质的0x0-0x20的区域,每当有异常或者中断发生的时候,ARM将会跳转到该区域内的某个地址,去执行异常处理程序。

(3)这样,按照前面的讲述,异常处理的中断向量表将存放在ROM内。这会带来两个问题,一是中断向量表在程序运行时无法动态地改变,降低了系统的灵活性:二是ROM相对RAM来说,在速度和数据宽度等性能上目前还存在不小的差距。因此,ARM提供了Remap (地址重映射)机制来解决这一矛盾。

(4)remap机制是这样的:在复位初期,0x0地址映射到ROM所在的存储空园。保障系统的正常运行,在系统启动完毕并且在执行
某些初始化操作之后,RAM执行一条remap命令,将0x0地址映射到RAM所在的存储区,并将中断向量表复制到此时的0x0-0x20地址范围内,即0x0地址在程序加载时位与ROM内,而在程序运行时处于RAM内。这样既能保证程序的正确加载,又能够以更高的速度响应异常事件,并且允许中断向量表的动态改变。


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

魏波.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值