zoukankan      html  css  js  c++  java
  • Arm存储器

         Arm可以引出27根地址线,只能实现128MB的寻址,那么要如何实现1GB的寻址呢?答案就是使用nGCS片选线,nGCSx为低电平为选中相应的外接设备。一共八根片选线,也就是bank1bank2以此来实现1GB的寻址。

        244032位,理论上的寻址范围为4GB,除了这1GB,其他的没有使用。

    2440的寄存器范围都处于0x48000000-0x5fffffff之间。

    下图是分别从nor flash启动和nand flash启动时地址的映射。

     

    nor flash启动的时候,程序写入地址零处,从地址零处启动。

    nand flash启动的时候,硬件会将nand flash4K的数据拷贝到“stepping stone”处。然后从地址0处开始执行。Nand flash是不参与寻址的。

    sdram中执行程序:可以在使用头4K的数据把整体程序拷贝到sdram中,然后再跳转到sdram中。当然这需要在链接器脚本中设置运行地址为0x30000000,然后再使用绝对地址跳转,就可跳转到内存中了。

    但是,我们有时候会发现,链接器脚本中设置的地址是多大不是很重要,不论是0x00000000还是0x30000000都能正常执行。那是因为有些程序的执行过程和地址没多大关系,比如他们没有绝对地址跳转等等。正常来说,如果我们想让他们在“stepping stone”中执行,链接器脚本中的地址应设置为0x00000000,如果我们想让他们在内存中执行,应该把链接器脚本地址设置为0x30000000,然后利用“stepping stone”跳转。





  • 相关阅读:
    51nod 1117 聪明的木匠:哈夫曼树
    51nod 1010 只包含因子2 3 5的数
    51nod 2636 卡车加油
    51nod 2989 组合数
    51nod 2652 阶乘0的数量 V2
    51nod 1103 N的倍数
    51nod 2489 小b和灯泡
    51nod 1003 阶乘后面0的数量
    51nod 2122 分解质因数
    javascript中的setter和getter
  • 原文地址:https://www.cnblogs.com/dchipnau/p/5256017.html
Copyright © 2011-2022 走看看