Speicheraufbau des Mikrocontrollers

Damit man überhaupt verstehen kann, wieso man was wo adressiert, benötigt man einen kleinen Überblick über den Speicheraufbau unseres Mikrocontroller:

 

Interner Ram-Speicher

Der interne Ram-Speicher ist 256 Bytes „groß“ und in 3 Bereiche aufgeteilt.

Im Bereich („Data“) 0x00 bis 0x1F befindet sich das Register. Dieser Bereich sollte nur von erfahrenen Programmierern direkt angesprochen werden. Im Normalfall verwendet man die „Register-Variablen“ (R0 – R7).

Der Bereich („Data“) 0x20 bis 0x7F ist ein Schreib-Lese-Speicher (RAM) der vom Programm beliebig beschrieben werden darf.

Der letzte Bereich („iData“) 0x80 bis 0xFF ist für das Special Function Register (SFR). Dort sind zum einen die einzelnen Ports adressiert und zum anderen dient dieser Bereich dem Stackpointer.

 

Externer Speicher

Der externe Speicher („Code“) ist maximal 64 KiB „groß“ (0x0000 bis 0xFFFF) und dient als Programmspeicher. In diesen Speicher wird das Programm am Ende „geflashed“.