一个单片机系统(51或者arm原来都是一样的) 有多个存储器,一般包括nor flash(可以片内执行),这个存储的一般是启动程序,或者叫做startup程序,对应于PC机的BIOS,单片机上电后,第一条指令就是从 nor flash 执行的,如果单片机本身的应用程序比较小,可以直接把应用程序写入norflash,如果单片机程序比较大,超过了norflash的大小,就出现了楼主的问题,这种情况下就是把应用程序写入nandflash(不能片内执行),此时,startup程序就起到一个boot and load的作用的作用,具体说来除了在第一种情况下的配置PLL,配置cache,配置sram或者sdram,配置外围器件之外,还有一个功能就是把nandflash中的数据拷贝到内存去运行,这个就是按照nandflash的寻址方式选址,然后读取数据,放入SDRAM或者sram即可,然后跳转到sram执行。当然,为了提高运行速度,应用程序比较小的情况下,也可以采用后一种情况的做法,此时只是把norflash中的程序拷贝到内存中运行而已。