关于ARM处理器Remap的理解 (抄的)

2016-01-29 18:34 9 1 收藏

关于ARM处理器Remap的理解 (抄的),关于ARM处理器Remap的理解 (抄的)

【 tulaoshi.com - Linux 】

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 我个人认为,如果中断向量放在rom中的0x0位置,就用不着remap,但是无法再更改中断向量,如果放在ram或其他的存储器中,那么就应该用的remap,因为在系统复位后,对系统环境的初始化是从中断向量中的中断reset开始的,而系统运行必须是从rom的0x0开始的,因此应该利用remap把放中断向量的初始地址映射到rom的0x0处,以使程序进行正确的初始化.这样既可以初始化,有可以使程序运行的快一些,因为毕竟rom的速度是比较慢的. 以上是个人理解,如有错误请大家指正!!!

来源:http://www.tulaoshi.com/n/20160129/1506366.html

延伸阅读
标签: 电脑入门
组装电脑的朋友一般都必须对电脑硬件有一定的认识,必须要了解其均衡性,元件之间搭配的均衡性以及硬件的性能,处理器是电脑爱好者都非常关心的,那么什么样的处理器才是不错的处理器(CPU)呢?一般我们主要看的处理器的参数就可以知道大概在当前处理器属于哪个档次了,今天就来与大家详细介绍处理器CPU的参数。 1.主频 主频也叫时钟频率,单位...
标签: 生活常识
食物垃圾处理器:(Food waste processor)是安装于家庭厨房洗菜盆的排水口处的厨房电器。因为其可方便地将菜头菜尾、剩菜剩饭等食物性厨余垃圾粉碎后排入下水道,能即时、方便、快捷清洁厨房,避免了食物垃圾因储存而滋生病菌、蚊虫和异味,解决下水道容易堵塞等问题而广受欢迎。 上图为食品废物处理器的安装效果图。 ...
摘要:本文介绍了在客户机上处理 Microsoft SQL Server 查询的方式,各种客户机与 SQL Server 的交互方式,以及 SQL Server 在处理客户机程序的请求时需要完成的工作。 简介 Microsoft(R) SQL Server(TM) 内部机制和结构是一个非常大的主题,因此本文仅限于程序开发人员感兴趣的问题,集中研究其他源中没有彻底讨论的问题。在讨论 SQL ...
标签: SQLServer
  问 :怎样使用Transact-SQL以编程的方式确定我的SQL Server计算机有多少个处理器? 答 :以下语句将返回您需要的信息: EXEC master..xp_msver N'ProcessorCount', N'ProcessorType' 但是,我热衷于教给人们捕鱼的方法,而不是给他们一盘现成的冻鱼条,所以我不满足于简单的答案。最近一个同事问我这个问题,我一时想不起来适当...
引言 bootloader是用来完成系统启动和系统软件加载工作的程序。它是底层硬件和上层应用软件之间的一个中间件软件,完成处理器和周边电路正常运行所要的初始化工作;可以屏蔽底层硬件的差异,使上层应用软件的编写和移植更加方便;不仅具有类似PC机上常用的BIOS(Basic Input Output System,基本输入、输出系统监控程序)功能,而且还可具有...

经验教程

668

收藏

85
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部