1.类似51,AVR这类的单片机,程序只能在ROM或FLASH里运行。STC的芯片一般是标准51或增强51,用的是FLASH,程序只能在FLASH中运行。 2.ARM的程序即可以在FLASH里运行也可以在RAM里运行,不过能运行程序的FLASH...
1.类似51,AVR这类的单片机,程序只能在ROM或FLASH里运行。STC的芯片一般是标准51或增强51,用的是FLASH,程序只能在FLASH中运行。
2.ARM的程序即可以在FLASH里运行也可以在RAM里运行,不过能运行程序的FLASH只能使NorFlash,因为NANDFLASH的接口决定了其无法挂载在地址空间内。
在mini2440开发板中,烧写到NAND Flash的0x0000000。那么上电后就会
//执行你的代码。
NANDflash是不能直接执行的,会自动拷贝到sram,而从sram启动的时候,sram被映射为0地址,所以连接的时候,也就是RO把,必须设置为0
3.也就是说只要能挂载到ARM的程序地址空间的设备都可以直接放运行程序。否则其他存储设备只能存储程序或数据。如一般带LINUX或Wince的ARM板,一般会把主系统程序放在NorFlash或NANDFLASH中,上电后用Loader程序吧主系统程序加载到RAM或SDRAM的可执行地址去,然后跳到主程序去执行。
4.计算机一般情况下系统存在硬盘里,系统启动时BIOS程序(在ROM里)先运行,然后从硬盘的系统分区里找到加载程序,加载到内存中(SDRAM),然后再由这段加载程序从磁盘中把系统加载进来。系统其实还可以存在光盘(所以可以从光盘启动)或网络计算机中(网吧里一般是这样)。大致就这个过程吧。具体的去网上查一下。
而单片机的程序则是固化在flash 中,cpu运行的时候直接从flash 中读取程序,从RAM中读取数据. 造成这种差别的原因: x86架构的cpu是基于冯.诺伊曼体系的,即数据和程序储存在一起,而且pc机的RAM资源相当丰富,从几十M到...
下文来说明单片机与x86cpu的具体途径:
pc机在运行程序的时候先把程序从硬盘中,调入RAM中运行,cpu从RAM中读取程序和数据.
而单片机的程序则是固化在flash 中,cpu运行的时候直接从flash 中读取程序,从R