Titelbild Mikrocontroller

3.1. Flash Program Memory

Alle XMEGA Bausteine enthalten Programmspeicher, der „im System“, also wenn der Mikrocontroller bereits eingebaut ist, programmiert werden kann. Der Programmspeicher wird üblicherweise über die PDI-Schnittstelle gelesen und beschrieben. Er kann aber auch durch das Programm, das in dem Baustein selbst abläuft, geändert werden.

Alle AVR-Befehle sind 16 oder 32 Bit breit, daher ist auch jede Speicherstelle im Flash 16 Bit breit. Der Programmspeicher ist in zwei Abschnitte unterteilt, den application Abschnitt (384k) und den boot loader Abschnitt (8k). Die Größe beider Abschnitte ist fest vorgegeben, ist aber in den verschiedenen Bausteinen der Xmega-Reihe unterschiedlich groß. Beide Abschnitte haben separate Lock Bits und können daher unterschiedliche Schutzlevel haben. Der SPM-Befehl (store program memory), mit dem aus dem Programm heraus in den Flash geschrieben wird, arbeitet nur, wenn er im boot loader Abschnitt ausgeführt wird.
Flash des Xmega384

Flash des Xmega384


Application Sector (384k, 0x00000 bis 0x2EFFF)

Der 384k große application Abschnitt beinhaltet einen speziellen Bereich, den sogenannten application table Abschnitt (8k, 0x2F000 bis 0x2FFFF). Er ist so groß wie der boot loader Abschnitt. In ihm können nichtveränderbare Daten sicher gespeichert werden. Wenn der application table Bereich nicht für Daten verwendet wird, kann hier auch Programmcode stehen. Application Sector und application table Sector können unterschiedliche Schutzlevel haben, da sie eigene Lock Bits haben.

Boot loader Sector (8k, 0x30000 bis 0x30FFF)

Boot loader Software muss im boot loader Abschnitt stehen, da nur hier der SPM Befehl ausgeführt wird. Der SPM-Befehl kann allerdings auf den ganzen Flash, also den application Abschnitt und den boot loader Abschnitt selbst zugreifen. Der boot loader Abschnitt kann auch für das allgemeine Programm (application) verwendet werden.

« zurück:
3. Speicher
» weiter:
3.1.1 Production Signature
Impressum