地址重映射与ARM启动代码技术

来源 :网络与信息 | 被引量 : 0次 | 上传用户:windwebsystem
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  1 引言
  ARM是一个采用RISC体系结构的IP处理器内核。众多的半导体厂商采用ARM内核加上自己的技术生产出种类繁多的微处理器芯片,如Atmel公司的AT91M55800A等。它们的汇编指令集是相同的,这给开发人员带来了极大方便。但是,由于生产厂商的不同,各种处理器之间的差别也很大,主要表现在地址重映射机制上。这是理解ARM体系结构最重要的地方,也是一个难点。
  
  2 ARM地址重映射机制
  ARM处理器的地址重映射机制可分为三种情况:(1)处理器内部有专门的寄存器完成Remap,只需将Remap寄存器相应位置“1”,由硬件逻辑来完成地址的重新映射。(2)没有专门的Remap控制寄存器,需要重新改写用于控制Memory起始地址的Bank寄存器,来实现Remap。(3)没有Remap寄存器,而Bank寄存器的起始地址固定,这就需要MMU实现地址重映射。另外,有一些ARM处理器没有地址重映射机制。
  AT91M55800A采用一个专用寄存器EBI_RCR(重映射控制寄存器),启动代码需将FLASH中的中断向量拷贝到内部SRAM中,然后,执行重映射命令,把内部SRAM的地址重新映射到0x0的位置,而将FLASH的地址映射到其他位置,如0x01000000(由NCS0片选,配置EBI——CSR0寄存器)的位置。这样便可以在内部SRAM中0x0开始的位置修改中断向量。同时,为了保证程序执行流程的连续性,必须调整PC指针,即调整到程序真正被连接的地方(0x01000000)去。这时,程序仍在FLASH中运行。
  
  3 S3C2410X的NAND flash启动
  S3C2410X有两种启动方式:NOR flash启动和NAND flash启动。
  NAND flash启动:NAND flash容量大,价格低,广泛应用于嵌入式系统中。S3C2410X集成了NAND flash控制器,可方便编程。但是,NAND flash随机读取速度慢,需专用I/O接口,只能存储程序,无法运行程序。为了能够从NAND flash启动,上电复位时,S3C2410X通过硬件逻辑把NAND flash的前4K的内容复制到片内SRAM中,而片内SRAM被映射到地址0x0,这样就可以从地址0x0处取到有效指令。因此,采用NAND flash启动时,必须利用片内SRAM中的代码把NAND flash中的程序代码复制到SDRAM中去。
  上电复位时,引导代码由硬件逻辑复制到片内SRAM中,于是,ARM所要求的连续8个字的中断向量表就位于0x0地址开始的连续空间内。接着从第一条指令开始执行,除了一些必要的初始化以及设置中断向量表,它把NAND flash中第一块开始的程序代码复制到起始地址为0x3000,0000的SDRAM中。地址0x3000,0000既是RO_Base的地址,也是SDRAM在整个地址空间的起始地址。复制完成后,引导代码也该结束退出了,退出之前需调整PC指针,为了简单起见,把PC指针直接调整到地址0x3000,0000,即从应用程序的启动代码开始执行。需要注意的是,引导代码把中断向量表复制到SDRAM中_ISR_STARTADDRESS处即地址0x30ffffff,而应用程序的启动代码也把中断向量表复制到SDRAM中同一地址_ISR_STARTADDRESS处。这样,当异常发生时,PC指针首先跳到地址0x0开始8个字的异常向量表,这是在片内SRAM中,是在引导代码里。接着,跳到SDRAM中的中断向量表,这是在应用程序里,然后转到中断处理程序,PC指针的跳转跨越了两部分程序。
  实现复制和PC指针调整的代码如下 :
  IMPORTnand_read_ll
  ;引入外部C函数
  ldr r0, =SDRAM_Base_Address
  ;r0指向SDRAM的基地址,即地址0x3000,0000
  mov r1, =APP_Start_ Address
  ;r1指向NAND_Flash中应用程序的开始地址
  ;即第1块的开始地址
  mov r2, =APP_End_ Address
  ;r2指向NAND_Flash中应用程序的结束地址
  bl nand_read_ll
  ;调用复制函数开始复制
  ldr r12,=SDRAM_Base_Address
  mov pc, r12
  ;pc指向SDRAM的基地址
  ;引导代码到此结束,接着从应用程序启动代码的第一条语句开始执行。
  同样道理,NOR flash启动也可以采用这种方式,不同的是,引导代码在NOR flash中,它把NOR flash中的程序代码复制到SDRAM中,然后,也是跳到SDRAM中开始执行。
  
  4 总结
  采用NAND flash启动,可以节省NOR flash芯片,即降低成本、功耗,又减小电路板尺寸。本文实现的引导代码为采用NAND flash启动提供了一种简单可行的方法。
  
  参考文献
  [1]杜春雷.ARM体系结构与编程[M].北京:清华大学出版社,2003.
  [2]曹伟,等.地址重映射在S3C4510B系统中的实现[J].单片机与嵌入式系统应用.2004.3.
  [3]费浙平.基于ARM的嵌入式系统程序开发要点(二)[J].单片机与嵌入式系统应用.2003.9.
其他文献
在我们使用了QQ空间的背景自定义代码后,背景图片能出来了,但是碍眼的是在QQ空间的右上方有一个腾讯的广告图片不能清除,虽然广告是在QQ空间的最右边,不影响使用,但始终是有些让人不舒服,其实清除的办法也很简单,且听小生我慢慢道来。     第一步:首先打开你的IE浏览器,在浏览器的地址栏中输入“http://Q-Zone.qq.com/web”,打开QQ空间网站的页面。   第二步:输入你的QQ号码
期刊
可能出于系统安全性的考虑,Windows XP把不少的组件隐藏了起来,即使你不使用这些应用组件,你也无法将它们从系统中删除。笔者下述的方法,可以让大家删除Windows XP这些隐藏的组件。     第一步,显示系统文件夹和文件     由于Windows XP默认地把系统文件隐藏起来,从而在“Windows资源管理器”窗口中看不到它们,所以我们要让这些系统文件现出“原形”,操作步骤如下:打开资源
期刊
如今的QQ增加了很多功能,如“给好友播放影音文件”,可以在QQ上给好友在线播放影片,增添了聊天乐趣。它支持的媒体格式很多,如:.dat、.mpeg、.mpg、.avi、.asf、.wmv等等,但也有不足之处,不提供对RM格式的支持,使得很多优秀的RM影片不能和好友在QQ上一起分享了。其实这个问题很容易解决,步骤如下:     第一步    以Windows XP为例,首先从网上下载一个支持Real
期刊
现在拥有一台DVD刻录机已不再是高不可攀的梦想,那么在使用中我们应该注意些什么呢?有的朋友就会不以为然地说,有什么好注意的,不就是和CD刻录机一样嘛,我用过CD刻录机,所以使用DVD刻录机自然也没有问题。   事实上,DVD刻录机和CD刻录机从盘片到刻录机本身都有很大的不同,如果不注意一些问题,会造成使用不当,轻者刻录的盘片质量不佳,严重的甚至会烧毁刻录机。笔者在长期使用的过程中总结了这十二招,相
期刊
现在用QQ的人是越来越多,但在使用中当人们遇到一些棘手问题时,却不知该如何解决。例如:有的人QQ被盗,在重新拿回原号后,经常会发现自己的好友信息全没了。还有人是不小心误删了好友,想要重新找回却不知怎么去找。   其实,这些看似头疼的问题解决起来并不困难。OK,现在我就教你两招好友恢复的独门秘技。     秘技一:这招秘技其实非常简单,很多朋友看后也许会认为这不是秘技。嘿嘿,这招虽然简单,但目前知道
期刊
每次启动Windows XP时,通常都会显示一个包含Windows版本号的开机画面,并且要等一段时间才能进入桌面。想知道这段时间系统到底在做什么吗?其实很简单,要看清开机画面背后的秘密,只须修改BOOT.INI文件即可。     1.右击“我的电脑”图标,选择“属性”,打开“系统属性”对话框,进入“高级”选项卡,点击“启动和故障恢复”栏中的“设置”按钮,然后在弹出窗体中点击“编辑”按钮,系统将自动
期刊
计算机系统启动速度伴随着其“服役”时间的变长,会越来越慢。造成这种现象的原因有多种,相信不少媒体已经对主要原因提出了各种优化招法。殊不知,在用尽了媒体推荐的各种优化招法后,系统启动速度有时仍然没有一点改观,这并不能说优化招法一点用处没有,而只能说它们优化不到位而已。这不,计算机系统在启动过程中,会耗费不少的时间去检测一些并不存在的无用设备,而许多优化招法并不能阻止系统去检测无用设备,因此它们的优化
期刊
Windows Server 2003作为新一代的操作系统,无论是在稳定性,还是安全性等方面,都较以往的系统有了很大的增强。但是它主要应用于服务器端,所以自动关闭了许多我们在Windows 2000、XP上常见的功能,又增加了一些我们在Windows 2000、XP上不常见的功能,以此来提升系统效率和增加系统安全措施。但我们可以让它按照我们自己的意愿运行。下面是一些设置使用技巧,供大家参考。  安
期刊
很多朋友都已经安装了Windows Vista。但是大家在“体验”完这个未来的操作系统后肯定会比较犯愁:怎么卸载啊?当试图删除Windows等文件夹时,系统会这么提示“无法删除,访问被拒绝”的报警信息。这是为什么呢?由于为了减少误删除重要系统文件的情况发生,Windows Vista对其系统文件夹(Windows文件夹、程序文件夹等)与其子文件(夹)都详细设置了访问权限。(这也是NTFS一个重要的
期刊
在当代,熟练计算机操作是一名合格的办公人员必备的基本素质。可我们在日常操作中会时常出现一些预料不到的麻烦,如电脑在我们急需它的时候经常死机,甚至干脆就不启动罢工了等等。你是否也遇到过此类麻烦呢?下面我将教你轻松解决此类烦恼。  电脑系统在运行中难免出现各种各样软件硬件故障,比如系统运行像老牛拉破车,经常出现非法操作提示,甚至出现一些莫名其妙的问题等,我们通过各种方法查找故障的原因,运用种种方法来试
期刊