然而,CPU从ROM读取指令的说法适用于传统PC的处理器。单片机(MCU)在执行程序时,从Flash中直接运行代码,而无需将指令加载到RAM中。关键原理在于XIP(eXecute In Place),即芯片内执行。这允许CPU直接从存储器读取程序代码执行,无需内存加载。程序代码可直接在Flash内运行,无需占用内存,降低内存需求。
单片机的程序是烧录在FLASH存储器中的,执行程序时,是直接从FLASH中读出指令送CPU执行的,并不是在RAM上运行的,只是在运行的过程中,需要在RAM中读/写数据。
综上所述,虽然STM32单片机本身不支持直接在外置SPI Flash上运行程序,但通过适当的编程和硬件设计手段,仍然可以实现类似的功能。开发者需要根据具体需求和应用场景,综合考虑存储和执行效率之间的权衡。
类型:STM32单片机中通常配备的是NOR Flash,它允许程序直接运行,无需先读入RAM。 地址:以STM32F429ZIT6为例,Flash的起始地址为0x8000000,与程序启动和中断向量表的位置紧密相关。 特性:编译后的程序代码通常存储在Flash中,CPU在执行程序时,会逐条从Flash中读取指令。RAM: 功能:RAM用于在程序运行...
而单片机的程序则是固化在flash中,cpu运行时直接从flash中读取程序,从RAM中读取数据 造成这种差别的具体原因分析 x86构架的cpu是基于冯.诺依曼体系的 ,即数据和程序存储在一起,而且pc机的RAM资源相当丰富,从几十M到几百M甚至是几个G,客观上能够承受大量的程序数据。单片机的构架大多是哈弗体系的 ,...