Remap Memory技术

深入浅出ARM7存储器映射在工控的应用 通过深入浅出arm7的架构特性,解析其存储器映射机制在工业控制领域的实际应用,帮助开发者理解内存布局与外设访问的底层逻辑,提升系统稳定性与实时响应能力。 阅读详情
 

Remap
    Remap与计算机的异常处理机制是紧密相关的。

     完整的计算机系统必须具备异常处理能力。当异常产生时,CPU在硬件驱动机制下跳转到预先设定的存储器单元中,取出相应的异常处理程序的入口地址, 并根 据该入口地址进入异常处理程序。这个保存有异常处理程序入口地址的存储器单元就是通常所说的“异常入口”,单片机系统中也叫“中断入口”。实际的计算机系 统有多种类型的异常,CPU设计人员为了简化芯片设计,一般将所有的异常入口集中起来置于非易失性存储器中,并在系统上电时映射到一个固定的连续地址空间 上。位于这个地址空间上的异常入口集合就是“异常向量表”。

    系统上电后的异常向量表是从低速非易失性存储器映射得到的。随着处理 器速度的不断提高,很自然地,人们希望计算机系统在异常处理时也充分发挥出CPU的处理能力,而非易失性存储器的读取速度使得CPU只能以多个空闲等待同 期来获取异常向量,这样就限制了CPU计算能力的充分发挥。尤其是非易失性存储器位宽小于CPU位宽时,这种负面的影响更加明显。于是,Remap技术被 引入,以提高系统对异常的实时响应能力。

    从Remap这个英文单词的构成不难看出,它是对此前已确立的存储器映射的再次修改。从 本质上讲,Map和Remap是一样的,都是将地址编码资源分配给存储器块,只不过二者产生的时间不同:前者在系统上电的时刻发生,是任何计算机系统都必 需的;而后者在系统上电后稳定运行的时刻发生,对计算机系统设计人员来说是可选的。典型的8位单片机系统中,就没有使用Remap技术。

     完整的Remap过程实际上通常始于系统的Bootload过程。具体执行动作为:Bootload将非易失性存储器中的异常向量复制到高速易失性存储器 块的一端,然后执行Remap命令,将位于高速易失性存储器中的异常向量块映射到异常向量表地址空间上。此后,系统若产生异常,CPU将从已映射到异常微 量表地址空间的高速非易失性存储器中读取异常向量。具体到典型的ARM7嵌入式系统中,就是由Bootload程序将片内或片外的Flash/ROM中的 异常向量复制到片内的SRAM中指定的存在器单元中,然后再执行Remap命令。由于片内的SRAM数据位宽通常与CPU数据位宽相等,因而CPU可以无 等待地全速跳入异常处理程序,获得最佳的实时异常响应
本文来自:我爱研发网(52RD.com) - R&D大本营
详细出处:http://www.52rd.com/Blog/Detail_RD.Blog_cxl84_10702.html

 

 

EET网友对remap概念的解释:-------------------------------------------0.什么是Remap 我的理解是:在ROM从0x0用几句指令引导系统之后,把RAM映射到0x0就是Remap。1.Remap的作用 当ARM处理器上电或者Reset之后,处理器从0x0取指。因此,必须保证系统上电时,0x0处有指令可以执行。所以,上电的时候,0x0地址处必定是ROM或者Flash(NOR)。 但是,为了加快启动的速度,也方便可以更改异常向量表,加快中断响应速度,往往把异常向量表映射到更快、更宽(32bit/16bit)的RAM中。但是异常向量表的开始地址是由ARM架构决定的,必须位于0x0处,因此,必须把RAM映射到0x0。2.Remap的配置 Remap的实现和ARM处理器的实现相关。 1)如果处理器有专门的寄存器可以完成Remap。那么Remap是通过Remap寄存器的相应bit置1完成的。如Atmel AT91xx 2)如果处理器没有专门的寄存器,但是memory的bank控制寄存器可以用来配置bank的起始地址,那么只要把RAM的起始地址编程为0x0,也可以完成remap。如samsung s3c4510 3)如果上面两种机制都没有,那么Remap就不要做了。因为处理器实现决定了SDRAM对应的bank地址是不能改变的。如Samsung S3c2410.3.Remap配置前后要做的工作 Remap前后,不同之处就是RAM的位置变了。为了达到Remap的目的,就是加快启动的速度和异常处理速度,一定要初始化异常堆栈和建立异常向量表的。4.如果象2410那样不能Remap的话怎么办? 2410不是不能Remap吗?为了加快启动速度,可以这样做 1)使用它的NAND boot模式。为什么NAND boot会比较快,那是因为2410里面有块小石头——“SteppingStone”,一块4KB SRAM,它是映射在0x0的。启动程序会自动被copy到这个石头里面。自然异常向量的入口放到这个地方,一样可以达到比NOR boot快的启动、异常响应速度。 2)如果你对NOR Boot情有独衷,那么你只好把你的异常向量的入口copy到SDRAM里面,实现所谓的High Vector

本文来自:我爱研发网(52RD.com) - R&D大本营
详细出处:http://www.52rd.com/Blog/Detail_RD.Blog_cxl84_10702.html#Flag_Comment

 

关于arm处理器remap的理解和实现[转] 0.什么是Remap我的理解是:在ROM从0x0用几句指令引导系统之后,把RAM映射到0x0就是Remap。1.Remap的作用当ARM处理器上电或者Reset之后,处理器从0x0取指。因此,必须保证系统上电时,0x0处有指令可以执行。所以,上电的时候,0x0地址处必定是ROM或者Flash(NOR)。但是,为了加快启动的速度,也方便可以更改异常向量表,加快中断响应速度,往往把异常向量表映射到更快 阅读详情

相关推荐

Alphafold2/multimer本地安装避坑指南:从Conda环境配置到GPU加速实战

本文详细介绍了Alphafold2/multimer本地安装的全流程,从Conda环境配置到GPU加速实战,特别针对常见的报错处理提供了解决方案。通过硬件环境检查、依赖安装技巧、OpenMM补丁应用等步骤,帮助研究人员高效部署蛋白质结构预测工具,提升计算效率。

weixin_29309213的博客 89

Remap-Memory-Region:在运行时如何更改内存区域的初始权限的基本示例

重映射内存区域 其他用法示例 简介-众所周知! 就像在《权力的游戏所说的那样, 。 众所周知,您不能将“ 设置为大于初始级别。 我这么说,但我找不到来源。 我确定Microsoft会在某个地方写下它,所以去找到它并拉出请求。 但是,到目前为止,它只是已知的,除非您去尝试一下。 在某些情况下,此限制会带来一些问题。 例如,如果某个区域仅具有作为初始级别,但是您想要写入或修改其内存,该怎么办? 在大多数情况下,您不能这样做。 您也可以将其视为机会。 如果您有一个想要防止内存编辑的应用程序怎么办? 无论如何,以阿姆(Eminem)的风格, ,这只是另一篇文章。 扮演假装:沙尘暴抑郁症。 让我们假设我所做的所有这些写作完全出于道德目的,并且我确实有一些我想保护其免受内存修改的应用程序。 引入“沙尘暴抑郁症”:沙尘暴抑郁症是一家生产三重A游戏的公司,但是到目前为止,还没有阻止这个精英h4

(五)激光线扫描-位移台标定

线激光属于主动测量方式,但是由于线激光的特性,我们只能通过提取激光中心线获取这一条线上的高度信息,那么要进行三维重建的话,就需要通过平移或者是旋转的方式,来让线激光扫描被测物体的完整轮廓,也就是整个表面。激光线的密度越高还原出来的物体越细腻,但由于数据量大,也会导致速度变慢。下面以位移台为例讲解,如何标定位移台。

FlyWine的博客 2839

ARM存储器映射和重新映射

                                     ARM存储器映射和重新映射关键字:memory map,remap,ARM,存储器映射,重新映射一、名词解释:存储器映射的英文为Memory map。中文的翻译比较令人费解,map的意思就是地图,地图就是我们地球表面各种各样的山脉,河流,建筑的分布缩影。我不知道为什么不把Memory map翻译为“存储器分布图”,也

panqihe的专栏 4251

【MCU】关于存储器映射、存储器重映射、内存映射、地址映射、地址转换等计算机专业名词详解【转载】

介绍了存储器映射、存储器重映射、内存映射、地址映射、地址转换等计算机专业名词的基本概念

m0_38045338的博客 2139

[ARM7--LPC2478]Memory Map

简述ARM7的Memory空间为4G(32 bit寻址空间决定)。不过对于嵌入式的这种MCU而言,其实很多空间都是保留的,只使用了其中的一小部分。Memory Map先看总体的图: AHBAHB部分的memory map如下: AHB部分在LPC2478的系统框架部分有介绍过其模块,这里就是对应那些模块的控制时所设计的一些memory分配。VIC, LCD, USB, EMC, GDMA,

suxiang198的博客 3571

认识物理内存4G地址空间的局限--转载

认识物理内存4G地址空间的局限--转载  识别到4G内存满足的条件:1.需要Cpu EM64T及64bit OS的支持。2.主板芯片组的支持。在945芯片组之前(包括945)的都是32bit的芯片组,已经没有空间来映射地址,扩展内存寻址,所以就算满足cpu,os两个条件也无法使用全部4G内存。比如370,M

Linux Operating System 的专栏 3135

我的内存谁也没动:4GB内存终极解迷

<br />前言<br /><br />       500元、300元、150元......随着DDR2价格的逐渐崩盘,目前连2GB DDR2-800内存的价格也已经跌至百元,越来越多的朋友为爱机装上了4GB内存。随着4GB电脑的逐渐增加,一个长期存在的问题又再次被人们所关注:为何我只能看到3.25GB物理内存?<br /><br />  无论是WinXP-32bit还是Vista-32bit,所有的用户都可以发现自己的任务管理器中最多只显示3.25GB物理内存,更甚者还会有2.8GB甚至更低的数值出现。

Matrix_Designer的专栏 4179

ARM 的Boot与Remap详解

两个专业名词—非易失性存储器和易失性存储器非易失性存储器:指掉电后在相当长时间内依然能有效保存数据的存储器。如EEPROM, EPROM,FLASH等。易失性存储器: 指掉电后迅速丧失存储能力的存储器。如SRAM,SDRAM等。参考读物:3G时代存储器众生相(电子设计技术2005年第2期)引言随着半导体工艺技术与处理器设计技术的不断提高,嵌入式处理器的速度愈来愈快;而非易失性存储器的读取速度却远远

liuxp_008的专栏 3787

Memory Map

Memory Map --- 存储器映射        引言 随着半导体工艺技术与处理器设计技术的不断提高,嵌入式处理器的速度愈来愈快;而非易失性存储器的读取速度却远远跟不上CPU的发展。传统的单片机运行模式——机器代码存储在非易失性存储器(如ROM,FLASH),在运行时由CPU直接从其中取出指令执行——逐渐显得力不从心。如果继续沿用传统的程序运行模式,那么在绝大多

tom__mao__的博客 6115

Docker 27金融容器安全代码“黄金15行”:覆盖cgroups v2限制、no-new-privileges、userns-remap全场景,今夜必须上线

Docker 27金融容器安全代码提供开箱即用的生产级防护方案,覆盖cgroups v2资源限制、no-new-privileges提权防护与userns-remap用户命名空间隔离全场景。专为高合规要求的金融环境设计,15行精简代码实现零信任容器基线,今夜即可部署上线,值得收藏。

InstrFun的博客 437

速写几点linux方面的感悟

晚饭后看了remap_file_pages,这个函数主要就是将一个文件的任何位置映射进任何一个vma(稍微有点限制)的任何地方,man手册上说的很清楚: The remap_file_pages() system call is used to create a non-linear mapping, that is, a mapping in which the page...

weixin_33921089的博客 80

HC12/HCS12嵌入式调试:分页内存与硬件断点配置实战指南

嵌入式系统开发中,内存管理与调试技术是保障程序稳定运行的核心基础。分页内存(Banked Memory)通过页寄存器扩展微控制器的寻址空间,解决了有限地址线访问大容量存储的难题,其原理在于将逻辑地址窗口映射到不同的物理内存页。硬件断点则依赖芯片内部专用模块,在不修改指令的前提下监控总线活动,实现对只读存储器代码和关键数据访问的精准调试。这两项技术的工程价值在于显著提升复杂嵌入式应用的调试效率与可靠性。在经典的Motorola HC12/HCS12系列MCU开发中,正确配置分页内存窗口和硬件断点模块成为调试

weixin_30628077的博客 404

Peripheral Port Memory Remap Register

原文转自:http://blog.csdn.net/tianxiawuzhei/article/details/7654101 原文作者:tianxiawuzhei 版权声明:原创文章,请注明出处。 目录(?)[+] 1、今天在看三星的uboot-1.1.6(s3c6410)的源码,start.s文件时,看到一段代码,如下所示:         /

l502091250的专栏 863

remap()函数

键盘ASCII码,查询网页 http://zhidao.baidu.com/link?url=KNf7KZYWf4jCalCKhxDVifYFCWkg4tlN0rsFQ-ZnHRinzgAhdl9fgCNirjuKu_lW4Wy3rnHdjOsQbFHlA8uBLK //目的,写一个键盘控制的remap函数,数字1是上下颠倒,数字2是左右颠倒,q退出; int main() {

weixin_35738542的博客 461

AT91微控制器REMAP功能在Keil µVision中的仿真与调试

内存重映射(REMAP)是嵌入式系统中的关键技术,通过动态调整内存地址映射关系解决启动阶段的地址冲突问题。其核心原理是通过配置特定控制寄存器(如AT91SAM7S系列的MATRIX_MRCR)实现物理地址到逻辑地址的转换。该技术在固件升级、多引导加载等场景中具有重要价值。Keil µVision作为主流嵌入式开发工具,其仿真器对REMAP功能的支持经历了从缺失到完善的演进过程。开发者需注意调试器设置、启动代码修改等关键配置,并通过内存窗口观察、断点测试等方法验证REMAP效果。AT91系列微控制器结合Kei

weixin_33701564的博客 435

remap_pfn_range()详解

remap_pfn_range()函数的原型: int remap_pfn_range(struct vm_area_struct *vma, unsigned long virt_addr, unsigned long pfn, unsigned long size, pgprot_t prot);  该函数的功能是创建页表。其中参数vma是内核根据用户的请求自己填写的,而参数addr表

yarsen的专栏 5131

集成电路芯片测试技术教学课件19CTA8280测试机.pdf

集成电路芯片测试技术教学课件19CTA8280测试机.pdf集成电路芯片测试技术教学课件19CTA8280测试机.pdf集成电路芯片测试技术教学课件19CTA8280测试机.pdf集成电路芯片测试技术教学课件19CTA8280测试机.pdf集成电路芯片测试技术教学课件19CTA8280测试机.pdf集成电路芯片测试技术教学课件19CTA8280测试机.pdf

上一篇: 哈佛大学凌晨4点半的景象
下一篇: FAT文件系统理解(持续更新)
shmily1040
博客等级 码龄18年 1粉丝 6原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值