nandflash与Norflash的不同
今天写了个程序烧到mini2440板子里了,可怎么执行都不是想要的结果,程序也查了,没发现什么错误。
郁闷了很长时间,才想起来,把程序烧到了Norflash中了。
因为在mini2440在处理nandflash与Norflash是不同的。
1. 当设置为nandflash启动时,S3C2440芯片会将nandflash前4k完全拷贝到片内的SRAM中(片内SRAM叫steppingstone),然后从片内的0地址开始执行。
2. 当设置为Norflash启动时,S3C2440会从Norflash的0地址进行执行,读Norflash就像读内存一样,但写的时候一定的命令序列才能将数据写入到Norflash中,比如:
|
delay() { int i = 10000; while (i--); } |
在Norflash中就不会正常执行了,因为i--,每执行一次都要重新将值写到i中,但Norflash没有特殊处理就写不进去,在while判断i值时,i永远为10000,所以程序就死到while循环这儿了。