这个nandflash就相当于bootrom了,这里面的代码不是runtime的代码,而是进行最基本的初始化的代码,你可以在这4k里面进行sdram或者其他类型memory的初始化,进行系统引导等等工作。
boot代码必须是在非易失性的memory中,而之所以要使用nandflash而不是norflash或者eprom是出于成本的考虑,nand要便宜得多,再加上ic内部一个读nand到sram的逻辑也比nor要便宜。
当没有运行c代码的时候,汇编代码的技巧是可以不要求指定sp的,所以在初始化sdram之前不用考虑栈空间问题。
在arm中,程序空间和数据空间必然是要重叠的,从cpu的角度来看,它们共享同一地址空间。arm9里面所说的哈佛结构也只是指令cache和数据cache是两条分开的总线,而从外部的ahb总线看来,取指和数据操作必然是串行的,不存在不重叠一说。
|