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
以上问题纠结了好几天了,这下算是比较明白了!个人理解,有不对的地方望牛人指点!
- ARM9存储控制(个人愚见,不对地方请高手指教)
- Tomcat学习总结(有不对的地方请指教,多谢)
- 初来乍到,有啥不对的地方,请大家多多指教
- 初级java学习小结----不对的地方还请指教
- 个人对VHDL和C++以及C#.NET的一些体会(完全个人感受,不对的地方请高手指正)
- 一个扫雷小游戏(高手请指教)
- 一个扫雷小游戏(高手请指教)
- 请高手指教。
- 请各位高手指教!
- 请高手指教!
- 请高手指教!谢谢!
- 请高手来指教
- 请高手指教
- 菜鸟问题!请高手指教
- Windows编程高手请指教!
- 关于list请高手指教
- 找错误!!请高手指教!
- 用Verilog编写的4位数值比较器,输出端波形不对,请高手指教一二,多谢!!!
- js数组元素的添加和删除
- GAE 博客——B3log Solo 0.2.5 Beta1 发布了!
- Google Static Maps API V2 开发人员指南
- JS与.net前后台互访
- Google‘益暖中华’ 运营策划实习生
- ARM9存储控制(个人愚见,不对地方请高手指教)
- linux下网路启动服务器安装和配置方法(pxe+tftp+dhcpd)
- WIN7 英文版右键不显示快捷方式的解决办法
- RSA
- cygwin简介
- 啊 哈哈哈
- 教你如何编写游戏外挂2
- 魔兽争霸兽族攻略
- 世界上最健康的作息时间表