ARM9存储控制(个人愚见,不对地方请高手指教)

来源:互联网 发布:wacom mac 软件 编辑:程序博客网 时间:2024/05/17 02:31

(1)Nand Boot:

                 用户可以将引导代码(我们通常说的bootloder)和操作系统镜像文件放在外部的Nand Flash中,并且从Nash Flash启动。当处理器在这种模式下上电复位时,内置的Nand Flash控制器将访问控制接口,并将引导代码(bootloder)自动加载到内部的SRAM中(此时SRAM定位于其实地址空间0x00000000,容量为4kb,处理器自带的),然后,SRAM中的引导程序(bootloder)将操作系统镜像文件加载到SDRAM中,操作系统就能够在SDRAM中运行了。这也是bootloder的作用,如果仅仅是小容量的裸机程序的话完全没有必要编写bootloder,直接放在NASH FLASH中就可以运行了(实验验证通过),但是由于SRAM容量比较小并且昂贵,所以必须用bootloder把容量大的操作系统加载到相对容量较大的SDRAM中运行。如果是从nor flash或者SDRAM中运行,

(2)两种启动方式

      记住一点,所以的处理器复位都是从0x00000000处开始执行

      a:在Nand Flash 启动模式下,处理器内部的4kb boot SRAM(处理器内部拥有并不是我们的外部存储空间)被映射到nGCS0(bank0)片选空间中。此时SRAM的地址为0x00000000(暂时可以这么认为),至于Nash Flash 的地址我们不用管它,反正从Nand Flash 启动我们总会把里面前4kb的代码复制到0x00000000中执行。这个理解也合乎代码从0X00000000处执行。

      b:在Nor Flash启动模式下(非Nand Flash启动模式下),与nGCS0(bank0)相连的外部存储器Nor Flash被映射到Bank0片选空间上,也就说此时Nor Flash起始地址为0x00000000这样程序依然从0x00000000处执行。

(3) SRAM、SDRAM、Nand Fash和 Nor Flash

        SRAM:处理器内部ram,只有4kb的容量,一般作为缓存或者中转站。

        SDRAM:cpu外部芯片,作为RAM

        Nand Flash和nor Flash:其实就是Rom,至于他两的区别好多书上都有介绍,这不多说了。

(4)地址分配

       以S3C2440为例,0x00000000~0x40000000:作为SRAM、SDRAM、Nor Flash、Nand Flash和其他外部设备地址,至于如何让分配这时bootloder的事了!0x48000000~0x60000000:特殊功能寄存器。0x60000000~0xFFFFFFFF:NOT USED

  

 

以上问题纠结了好几天了,这下算是比较明白了!个人理解,有不对的地方望牛人指点!

 

原创粉丝点击