您现在的位置: 范文先生网 >> 理工论文 >> 电子通信论文 >> 正文

LPC2104的Boot与Remap详解(一)---(原创)

时间:2007-1-20栏目:电子通信论文

开场白

    最近在学习ARM的过程中,遇到了一些以前在8位机、16位机应用中所没有见过的专业术语。其中,比较困扰和麻烦的两个名词术语就是“Boot”与“Remap”。同时,在网上也经常见到有网友就这两个技术名词提出疑问。好在当今网络是如此发达,使得我们可以很快就得到许多老师和老鸟的解答。经过这一段时间的阅读与实践,算是将这个概念基本给理出了个头绪,借此机会,以自己的理解总结一下,贴到BBS上来,与广大网友们分享,如有不当之处,板砖且慢,因为我贴此文的目的是抛“砖”引“玉”,不是引“砖”!Bow!

两个专业名词—非易失性存储器和易失性存储器
非易失性存储器:指掉电后在相当长时间内依然能有效保存数据的存储器。如EEPROM, EPROM,FLASH等。
易失性存储器: 指掉电后迅速丧失存储能力的存储器。如SRAM,SDRAM等。

参考读物:3G时代存储器众生相(电子设计技术2005年第2期)

OK,一切就绪,Let's GO!


引言
    随着半导体工艺技术与处理器设计技术的不断提高,嵌入式处理器的速度愈来愈快;而非易失性存储器的读取速度却远远跟不上CPU的发展。传统的单片机运行模式——机器代码存储在非易失性存储器(如ROM,FLASH),在运行时由CPU直接从其中取出指令执行——逐渐显得力不从心。如果继续沿用传统的程序运行模式,那么在绝大多数时间内高速CPU将处于空闲等待状态,这既浪费了CPU的计算能力,也无法实现高密度数据流的实时处理与传输。而在短期之内,半导体工业界尚无法实现低成本的非易失性高速存储器技术。为了解决上述处理器和非易失性存储器之间速度不匹配的矛盾,工程师们在嵌入式系统领域内引用了Boot技术和Remap技术。而要正确理解Boot技术和Remap技术,必须先建立Memory Map(存储器映射)的概念。


技术概念描述

Memory Map
    计算机最重要的功能单元之一是Memory。Memory是众多存储单元的集合,为了使CPU准确地找到存储有某个信息的存储单元,必须为这些单元分配一个相互区别的“身份证号”,这个“身份证号”就是地址编码。在嵌入式处理器内,集成了多种类型的Memory,通常,我们称同一类型的Memory为一个Memory Block。一般情况下,处理器设计者会为每一个Memory Block分配一个数值连续、数目与其存储单元数相等、以16进制表示的自然数集合作为该Memory Block的地址编码。这种自然数集合与Memory Block的对应关系,就是Memory Map(存储器映射),有时也叫Address Map(地址映射)。实际上,Address Map在字面意义上更加贴切。

    需要强调的是,Memory Map是一个逻辑概念,是计算机系统在(上电)复位后才建立起来的。Memory Map相当于这样一个数学函数:函数的输入量是地址编码,输出量被寻址单元中的数据。当计算机系统掉电后或复位时,这个数学函数不复存在,只剩下计算机系统中实现这个数学函数的物理基础——电路连接。也可以这样认为:Memory Map是计算机系统(上电)复位时的预备动作,是一个将CPU所拥有的地址编码资源向系统内各个物理存储器块分配的自动过程。

Boot/Bootload
    Boot在计算机专业英文中的意思是“引导”,它是计算机系统(上电)复位后CPU的第一个机器动作。那么,Boot引导的是什么呢?简要地说,Boot就是引导CPU如何装入机器指令。最简单的Boot动作就是8位单片机系统复位后从复位向量中取出跳转指令,转移到用户程序代码段执行的这个过程。

    通常,在计算机系统中,(上电)复位后除了执行Boot动作,还跟随着一个Load过程。一般情况下,该Load从低速非易失性存储器中“搬运”一些数据到高速易失性存储器中。Boot和Load连续执行,一气呵成,我们称之为Bootload。最典型的例子之一就是DSP实时信号处理系统,系统上电后,将存储在EEPROM中的实时信号处理程序复制到系统的RAM中,然后CPU直接从RAM中读取机器指令运行。

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

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

    系统上电后的异常向量表是从低速非易失性存储器映射得到的。随着处理器速度的不断提高,很自然地,人们希望计算机系统在异常处理时也充分发挥出CPU的处理能力,而非易失性存储器的读取速度使得CPU只能以多个空闲等待同期来获取异常向量,这样就限制了CPU计算

[1] [2] [3] 下一页

下页更精彩:1 2 3 4 下一页