S3C2440的启动时读取的第一条指令是在0x00上,分为成nandflash和norflash上启动。启动方式由硬件控制。norflash属片内,可直接在norflash上运行程序,可做bootnandflash属片外,不可直接在nandflash上运行程序,不可做bootnandflash启动:cpu会自动从NANDflash中读取前4KB的数据放置在片内SRAM里,同时把这段片内SRAM映射到nGCS0片选的空间(即0x00000000)。cpu是从0x00000000开始执行,也就是NANDflash里的前4KB内容,这个过程不需要程序干涉。因为不可直接在nandflash上运行程序,故不能直接把NAND映射到0x00000000,只好使用片内SRAM做一个载体。通过这个载体把nandflash中大量代码复制到RAM(一般是SDRAM)中去执行。4K代码要完成S3C2440的核心配置以及启动代码(U-boot)的剩余部分拷贝到SDRAM中。ARM一般从ROM或Flash启动完成初始化,然后将应用程序拷贝到RAM,然后跳到RAM执行。norflash启动:支持XIP即代码直接在NORFlash上执行,无需复制到内存中。这是由于NORFlash的接口与RAM完全相同,可随机访问任意地址数据。norflash映射到0x00000000(就是nGCS0,这里就不需要片内SRAM来辅助了,所以片内SRAM的起始地址还是0x40000000).然后cpu从0x00000000开始执行(也就是在Norfalsh中执行)。