下面讲的是大部分ARM9的启动方式,对于个别厂商的别出心裁,此处不予理会。<br /><br />1.ARM9可以从两个地方开始运行<br /> 高端:0xFFFF0000<br /> 低端:0x00000000<br /> 至于到底是从哪一个开始运行的,一般在芯片上有专门的管脚来供玩家配置。<br /><br />2.Nor Boot方式<br /> 一般情况下,如果使用NOR Flash,会将ARM配置为低端模式,会将NOR Flash挂在0x00000000的位置,而bootloader也会烧到0x00000000起始的区域。理所当然的,bootloader的中断向量表也就位于0x00000000-0x0000001C区域了。<br /><br />3.NAND Boot方式<br /> 如果需要从NAND Flash启动,则芯片一般都有一个动能:在启动后立刻自动将NAND Flash的第一个block中的数据搬移到芯片内部的SRAM(位于0xFFFF0000地址)运行。而且从NAND Flash启动的芯片是从高端0xFFFF0000开始运行的。<br /> 可以想象:NAND Flash的第一个block中的数据当然就是bootloader.这个bootloader将在初始化的动作完成后把存储在NAND Flash的其他位置的主程序数据搬移到内存中(通常是SDRAM,通常位于0地址),然后再运行刚刚到SDRAM中的程序。<br /><br />需要明确的几点:<br />1. NAND Flash的第一个block一定不是坏块,这是出厂时就已经检测的,他的作用类似于硬盘的0磁道,一旦真的坏了就表示彻底报废。<br />2. 支持NAND Boot方式的ARM9都有片内RAM,厂商把它叫做SRAM或internal RAM或者IMEM.
|