2013-04-20 68 views
1

我有一個問題STM32F407的uC或更多在約了Cortex-M4一般。的ARM Cortex架構代碼執行

那麼代碼如何在手臂上執行?每一條指令是從Flash加載並執行還是存儲在RAM中。抑或是緩衝的,什麼是對自我修改代碼在那裏爲RAM和CODE(閃存)2個獨立的空間ADRESS

希望有人可以給我一個解釋這是如何處理的默認。

回答

2

some ST marketing page

...這些MCU利用意法半導體的90納米NVM技術和ST的ART加速器™達到了業界最高的基準測試得分的Cortex-M基於微控制器,具有高達225 MHz DMIPS/606 CoreMark以180 MHz工作頻率從閃存執行。

因此,從閃存執行(應該是地址空間的一部分),在默認情況下,但我敢肯定,你可以將某些代碼複製到ram和運行從那裏也不過您MCU的flash大小是多少與其sram相比更多。

你的問題的第二部分可以通過說ARM架構使用相同的地址空間來獲得指令和數據來解答,但是他們有不同的總線/高速緩存(由於性能原因) - 讓自己修改代碼解決方案變得更加困難。

+1

爲核心顯示頻率爲180MHz到計時,而​​它看起來雖然閃光燈是儘可能快地對這些部分的嵌入式SRAM,所以從代碼複製到SRAM上漲不是很大。此外,也不是很多。 – marko 2013-04-21 17:50:14

+0

從閃存中運行,而你控制一個除數,以保持對閃存的超頻(閃光燈運行速度比處理器速度較慢,因此,有時處理器必須等待)。儘管陳述了哈佛架構,但您可以以sram速度運行。 – 2013-04-22 13:58:23