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.)?
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.
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)
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.