datasheet中当REMAP=0,BMS=0时由外部总线扩展的存储器启动可以是norflash。当REMAP=0,BMS=1时从内部ROM启动,这里启动过程内部ROM->spi扩展的dataflash1-〉spi扩展的dataflash2-〉nandflash-〉SAM-BA...这是由芯片内部的boot决定的查询程序的顺序,例如我们只接一个nandflash,当我们编写的程序小于等于4k时可以不用bootstrap,因为不管怎么样芯片内部的boot功能为按顺序检测到存储器前4k并加载到内部4kSRAM中大小不能超出4k,所以我们的代码量小于等于4k时无需bootstrap,直接把它烧到NANDflash的0地址。当代码大于4k时,需要bootstarp,注bootstarp不能大于4k,把它烧到nandflash的0地址,他的功能是把你要的真正的程序加载到你外接的SDRAM中,因内部SRAM 4k,所以烧目标程序从0x4000开始烧,得到的整个过程是片内boot检测到nandflah前4k(包含了bootsharp)加载到SRAM中运行,bootstarp运行把nandflash中4k后的真正程序加载到SDRAM中运行,如装linux这个可以是u-boot。总结此ARM9芯片一般有内部boot,bootstarp和u-boot之类加载操作系统的boot三种boot。bootstarp最重要的功能是初始化SDRAM并加载大点的boot或其他程序。