主题 : 我对Nor和Nand的理解 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 1330
精华: 0
发帖: 39
金钱: 390 两
威望: 139 点
贡献值: 0 点
综合积分: 78 分
注册时间: 2008-08-18
最后登录: 2011-02-07
楼主  发表于: 2008-08-28 12:20

 我对Nor和Nand的理解

这是我参考手册和书之后的体会,可能理解有错,欢迎大家拍砖!

Nor和Nand方式启动切换的方式是用跳线开关实现,这里跳线的实质就是用开关来片选你nGCS0这一段存储器,也就是地址为0x0000 0000到0下0800 0000这一段。

在开机复位之后CPU会首先读这一段。这里我把他理解成磁盘的MBR。把这一段读出来放到内存SDRAM(编址0x3000 0000到0x4000_0fff),然后开始执行。

当Nor方式启动时,nGCS0片选的是NorFlash存储器作为这一段地址的存储器,当Nand方式启动时,片选的是内存SDRAM中的引导块(Boot Internal,4K)作为这一段地址的存储器。关于这个Boot Internal后文会再说。

由此我们可以看出:
无论哪一种引导方式,NandFlash都会被映射到0x0800_0000开始的地址段。
只有当Nor方式时,NorFlash才会被片选,安排到0x0000 0000到0x0800 0000这一段;从Nand引导时没有被编址,无法使用;
所以无论怎么启动,都可以操作NandFlash;
同时,如果从Nand方式启动,我们可以看出NorFlash没有被片选进来,因此无法操作其数据。

再来看看SDRAM的Boot Internal区块,按照地址的编排:
在Nor引导时,这一块分配在SDRAM的最后,也就是0x4000 0000到0x4000 0fff,相当于普通的存储器。
在Nand引导时,这块被映射到0x0000 0000到0x0000 0fff,作为CPU开机复位首先要读取的部分(传说中的4K?)

因此,我猜测Boot Internal中的代码要么是告诉CPU如何找到NandFlash的bootloader的地址并载入,要么干脆就是NandFlash的bootloader的实际存储区域。

以上分析完全可能全错!希望大家指点~
级别: 新手上路
UID: 256
精华: 0
发帖: 42
金钱: 350 两
威望: 55 点
贡献值: 0 点
综合积分: 84 分
注册时间: 2008-03-08
最后登录: 2014-10-05
1楼  发表于: 2008-08-28 20:45
你可以看看S3C2440的DATASHEET,细心分析下,就知道对多少了。