1

我有一个关于 STM32F407 uC 或更多关于 cortex-M4 的问题。

那么代码是如何在手臂上执行的呢?是从 Flash 加载并执行每条指令还是存储在 RAM 中。或者它是否缓冲以及关于自我修改代码的内容是否有 2 个单独的地址空间用于 RAM 和代码(闪存)

希望有人可以给我一个解释,默认情况下是如何处理的。

4

1 回答 1

2

来自一些 ST 营销页面

... 这些 MCU 利用 ST 的 90 nm NVM 技术和 ST 的 ART Accelerator™,以 180 MHz 的工作频率从闪存执行高达 225 DMIPS/606 CoreMark 的基于 Cortex-M 的微控制器达到业界最高的基准分数。

所以它默认从闪存执行(它应该是地址空间的一部分),但我相信你也可以将一些代码复制到ram那里并从那里运行,但是你的 mcu 的flash大小比它的sram.

您的问题的第二部分可以通过说 ARM 架构对指令和数据使用相同的地址空间但它们具有不同的总线/缓存(由于性能原因)来回答 - 这使得拥有自修改代码解决方案变得更加困难。

于 2013-04-20T23:20:17.290 回答