Forum: Mikrocontroller und Digitale Elektronik Wie und wann wird Programmcode in RAM von µC geladen? (µC allgemein, STM32F107 nur als Bsp.)


von Konrad (Gast)


Lesenswert?

Von der Programmierung mit C/C++ am PC weiß ich, dass ein Programm beim 
Start der Ausführung in den Arbeitsspeicher geladen wird. Was bei diesem 
Vorgang im einzelnen passiert weiß ich nicht; nur, dass er vom 
Betriebssystem realisiert wird.

Wie verhält sich das bei einem Mikrocontroller, z.B. einem STM32F107 
(Mikrocontroller mit ARM Cortex M3 Prozessorkern)? Das Programm 
überträgt man als Hexfile vom PC über eine Programmierschnittstelle in 
den Flashspeicher des µC. Irgendwie muss nun das Programm, bevor es 
ausgeführt werden kann, in den SRAM des µC geladen werden, richtig? Wann 
bzw. wodurch passiert das und wie sieht dieser Vorgang im einzelnen aus 
(beteiligte Register, Busse etc.)?

von (prx) A. K. (prx)


Lesenswert?

Konrad schrieb:

> den Flashspeicher des µC. Irgendwie muss nun das Programm, bevor es
> ausgeführt werden kann, in den SRAM des µC geladen werden, richtig?

Nein, nicht bei denen. Da ist das ROM (NOR-Flash) direkt adressierbar 
und der Code wird direkt daraus ausgeführt.

von Jürgen (Gast)


Lesenswert?

Konrad schrieb:
> Irgendwie muss nun das Programm, bevor es
>
> ausgeführt werden kann, in den SRAM des µC geladen werden, richtig? Wann
>
> bzw. wodurch passiert das und wie sieht dieser Vorgang im einzelnen aus
>
> (beteiligte Register, Busse etc.)?

Nein, es wird beim ARM Cortex M3 direkt aus dem Flash ausgeführt. (siehe 
Prozessorarchitektur)

von Konrad (Gast)


Lesenswert?

Achso...
Danke für den Hinweis, A.K. und Jürgen.

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.