Ich habe nicht den Eindruck, dass der Fragesteller solche Haare spalten
lassen wollte. ;-)
Marco Blum wrote:
> Wenn ich das Programm hochlade schreibe ich es ja in den Flash des uC's,
> ausgeführt werden doch Programme im Ram?
Es gibt einzelne Controller im unteren und mittleren Bereich, die
externes serielles EEPROM oder Flash-Speicher für den Programmcode
verwenden. Solche Controller sind jedoch die Ausnahme. In diesem Fall
ist die Vereinbarung, an welcher Stelle der Code im RAM landet, Teil der
jeweiligen Spezifikation dieses Controllerstyps.
Controller mit intergriertem Flash-Speicher arbeiten üblicherweise nicht
im RAM. Da wird der Code direkt aus dem Flash-Speicher ausgeführt. Es
kann jedoch vorkommen, dass Teile des Codes vom Programm selbst ins RAM
kopiert werden, um dort beschleunigt ausgeführt werden zu können, da
jenseits von 20-30MHz Zykluszeit RAM schneller ist als Flash-Speicher.
Nur bei grossen Controller-Systemen mit entsprechenden RAM-Kapazitäten
im Megabyte-Bereich, deren Speicher daher ganz oder überwiegend extern
liegt, kann es sein, dass Programme aus dem Flash-Speicher ins RAM
geladen werden, nicht zuletzt weil RAM schneller ist. Das sind dann
Controller-Systeme der µLinux/Linux-Kategorie.