新手学习arm硬件,请教一个问题。
三星2440上面可以nand nor flash启动。
nand 启动的时候就是自动复制nand 前4K的到内部4K的SRAM上,并且SRAM的地址为0x00开始,nor flash启动的时候,就是片选nor flash到0x00,直接从0x00开始运行即可。现在有个问题,我nand 启动的时候,能不能访问nor flash,这个nor flash此时的地址是什么。
------解决方案--------------------
看你把它放在那片上面
------解决方案--------------------
我也没完全弄懂这两个问题,谁知道指点下。
------解决方案--------------------
NOR flash 挂在bank 0上的,在数据手册有说明。
我觉得是可以访问的。
------解决方案--------------------
既然有nor,何必要nand启动??这不是自己给自己找麻烦吗。
我认为是不行的,如果接nor,就要接到0x0地址,那就不能从nand启动。
------解决方案--------------------
学习。。。。
------解决方案--------------------
汗,你要在加载4K代码的时候操作NOR,那明显不行了。我以为是后期呢。
------解决方案--------------------
------解决方案--------------------
#define ROM_BASE 0x4000000 //地址重定向到0x04000000
#define CMD_ADDR0 *((volatile U16 *)(0x555*2+ROM_BASE))
#define _WR(addr,data) *((volatile U16 *)((addr<<1)+ROM_BASE))=(U16)data
#define _RD(addr) ( *((volatile U16 *)((addr<<1)+ROM_BASE)) )#define CMD_ADDR1 *((volatile U16 *)(0x2aa*2+ROM_BASE))
从代码看出,芯片从NandFlash启动时,nGS0的其实地址实际上映射到了0x0400_0000
所以在NandFlash启动的过程中,访问NorFlash要从0x0400_0000地址开始访问。