|
首先,不管你已什么样的方配置2440,在重启cpu之后,都会自动从0地址开始运行。
你看datasheet中的memory controller那章,内存地址的布局有两种方式,
首先你可以看电路图上,s3c2440有两根引脚,一个叫OM0, 一个叫OM1,
这两个引脚就是来确定用哪种内存地址布局;
第一种,在OM0 = 0 , OM1 = 0的时候,用右边那样的方式,也就是:
第一个bank的128M只有4K的空间可用,不可以外接其它任何存储,因为第一个bank就只能给
sram用,这个时候如果启动的话,sram中是没有程序的,在启动之前,2440自动
把nand flash中的前4K拷到sram中,无须人工干涉,自动完成的。
第二种情况,当OM0 = 1, OM1 = 0, 或者 OM0 = 0, OM1 = 1的时候,
这个时候SRAM实际上跟启动没有关系了。因为SRAM的地址变到了0x40000000,
CPU启动还是从0地址开始执行,但是这个时候0地址所在的第一个BANK就可以
接ROM了呀。 nor flash是rom的一种,当然还有E2PROM等,nand flash不是
ROM,nand flash跟硬盘一样,是通过nand flash controller来访问的。在这种情况下,
启动跟nand flash也没有关系。 所以你得把第一个BANK接成nor flash, 也就是
0地址处就是nor flash, 这个时候的启动就不会有第一种情况里的自动拷的过程。就是
直接运行nor flash中的程序,所以你得先将程序(bootloader)烧到nor flash中。
不知你明白了没有。 |
|