2013-04-20 2 views
1

У меня вопрос о STM32F407 uC или более о корексе-M4 в целом.ARM cortex Архитектура Выполнение кода

Так как же код выполняется на руке? Каждая инструкция загружается из Flash и выполняется или хранится в ОЗУ. Или он буферизуется, а что касается самомодифицирующего кода, есть два отдельных пространства адресов для ОЗУ и КОДА (Flash)

надеюсь, кто-нибудь может дать мне объяснение, как это обрабатывается по умолчанию.

ответ

2

От some ST marketing page:

микроконтроллеры

... эти микроконтроллеры рычаги 90 нм технологии NVM ST и ST в ART Accelerator ™ для достижения самых высоких в отрасли результаты тестов для Cortex-M на базе с до 225 DMIPS/606 CoreMark, выполняемый из флэш-памяти с рабочей частотой 180 МГц.

Так он выполняет от вспышки (она должна быть частью адресного пространства) по умолчанию, но я уверен, что вы можете скопировать код в ram и бежать оттуда, а однако flash размера вашего MCU является гораздо больше по сравнению с его sram.

На вторую часть вашего вопроса можно ответить, говоря, что архитектура ARM использует такое же адресное пространство для инструкций и данных, но у них разные шины/кэши (из-за причин производительности) - что усложняет разработку самомодифицирующихся кодовых решений.

+1

Поскольку ядро, похоже, синхронизировано с частотой 180 МГц, похоже, что вспышка работает так же быстро, как встроенная SRAM на этих участках, поэтому от копирования кода в SRAM не требуется многого. Кроме того, его тоже не так много. – marko

+0

работает от вспышки, и вы управляете делителем, чтобы не разгонять вспышку (вспышка работает медленнее, чем процессор, поэтому процессор иногда должен ждать). Несмотря на то, что вы указали архитектуру гарварда, вы можете бежать от sram, со скоростью sram. –

Смежные вопросы