当程序被下载到flash中,程序运行时,是先把代码复制到ram中然后从ram中取指令开始运行,还是直接从flash中取指令运行?
jhbang 发表于 2011-12-8 17:00 
对51这类单片机来说,程序是接在flash上运行的。RAM只用来存数据,不存程序,程序也不会装到ram。
你可以看看当前的单片机的ram大小,flash大小,想装到ram里也装不下。
对于ARM这类高端的CPU就不一样,因为有了大而快的SDRAM或DDR内存。
1. 如果采用的是NOR FLASH这种线性Flash,程序是可以在flash上跑,也可以先拷贝到RAM里头跑。但考虑到运行速度,一般还是会先拷贝到SDRAM。
2. 如果是采用Nand Flash, 因为是非线性的,程序没法在上面运行,那就只能拷贝到ram再运行了。
具体程序在那跑,怎么跑?其实都是在设计CPU时考虑的。根据设计的要求,使用的场合等等做不同的考虑,不同的实现。对使用者而言,多看datasheet是关键。
|