Forum: Mikrocontroller und Digitale Elektronik ARM - Code aus externem Speicher ausführen


von Moritz (Gast)


Lesenswert?

Moin,

mir ist grade die Frage aufgekommen, ob es möglich ist, mit einem 
ARM-Controller (STM32) von einem externem Speicher Programm-Code 
auszuführen?

Ein Memory Controller (FSMC /FMC) ist ja vorhanden. Oder ist der für das 
Lesen und Speichern von Daten benutzbar? Denn Stack und Heap kann man ja 
wohl darauf auslagern / erweitern. Und da der Controller ja auch Code 
aus dem SRAM ausführen kann sollte das ja vllt. funktionieren. Aber wie 
sieht das mit externem Flash aus? NAND-Flash würde wahrscheinlich nicht 
funktionieren weil der ja nur Seitenweise gelesen werden kann. Wie sieht 
das mit NOR-Flash aus? Der kann ja auch Byteweise gelesen werden.

Hat jemand eine Idee dazu? Würde mich mal interessieren.

Moritz

von Sascha (Gast)


Lesenswert?

Hallo,
also booten solltest du schon noch über den internen Flash. Damit du das 
externe Memory Interface konfigurieren kannst. Aus normalem externen Nor 
Flash geht auch die Programmausführung. Aber nur sehr langsam, weil du 
viele Wait-States brauchst. Der interne Flash ist mit 128 Bit meines 
Wissens angebunden und hat noch einen sehr gut arbeitenden Cache.
Es ist vermutlich besser den Programmcode ins interne Memory zu kopieren 
und dort zu starten. Aber auch das interne SRAM ist langsamer als der 
interne Flash. Weil eben nun mal alles dann auf das SRAM zugreift.
(STM32F4xx)

Gruß Sascha

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.