dutch english
  Hauptseite Projekte Elektronik Möbelbau Rezepte Corgies Über mich
  Elektronik 80c552 µC-Board Mainboard Vorverstärker Endstufe Platinen herstellen Werkzeuge
80c552 µC-Board
Speicheraufbau
Schaltplan
Software
GAL
Platine

Speicheraufbau

Das Board kann in drei verschiedene Modi betrieben werden:

Runmodus : Normaler Betriebsmodus
Debugmodus : Betrieb mit Softwaredebugger
Programmiermodus : In-circuit-Programmierung des Flashs

Durch diese drei Modi kann auf dem Board die Software komfortabel entwickelt werden, der Flashspeicher kann programmiert werden über die serielle Schnittstelle und das Board kann auch ohne PC eingesetzt werden. Da der eingesetzte Prozessor direkt nur 64kB ROM adressieren kann, würde die Hälfte des Flashs (29F010) nicht benutzt werden. Für den Debugmodus wird ein Monitorprogramm benötigt, das auch im Flash abgelegt werden muss und somit den verfügbaren Speicher verringern würde. Durch die Benutzung eines zusätzlichen Portpins wird die Adresleitung A16 emuliert und kann (fast) der gesamte Flash verwendet werden.

Standardmodus

Memory map: standard modus Dieser Modus wird verwendet, wenn die Programmentwicklung abgeschlossen ist. Nach dem Start wird das Programm im Flash an Adresse 0x00000 gestartet und ausgeführt. Adresleitung A16 liegt auf Null, da auch die Steuerleitung D/R (Debug/Run)auf Null liegt. Es steht 64k Programmspeicher zur Verfügung, also von 0x00000 bis 0x0FFFF im Flash. Im Bereich 0x8000 bis 0xFFFF kann 32k RAM verwendet werden. Zusätzlich gibt's im I/O-Bereich neun Chip-Select-Leitungen zur allgemeinen Verwendung. /CE0 bis /CE7 liegen im Datenbereich 0x0000 bis 0x0007, /CE_IO1 kann für zusätzliche memory-mapped-I/O verwendet werden und ist im Bereich von 0x0800 bis 0x7FFF(dies ist in der Elektor fälschlicherweise ab 0x0008 angegeben).

Debugmodus

Memory map: Debugmodus In diesem Modus kann das Board mit dem source-level-Debugger SLD51 aus der Entwicklungsumgebung μC/51 von Wickenhäuser verwendet werden. Hiermit kann das Programm über die serielle Schnittstelle in das RAM geladen werden und schrittweise ausgeführt und getestet werden. Das Betriebssystem,das dies ermöglicht, heißt OS552 und liegt im Flash im Bereich zwischen 0x10000 und 0x17FFF. Dieser Bereich wird für den Controller in dem Bereich zwischen 0x0000 und 0x7FFFF gespiegelt. Die oberen 32k des Flashs können nicht verwendet werden, da hier der RAM-Bereich liegt. Die memory-mapped-I/O liegen an der gleichen Stelle wie im Runmodus, damit auch dieser mit getestet werden kann.

Programmiermodus

Memory map: Programmiermodus Der letzte Modus ist der Programmiermodus, mit dem der Flashspeicher neu programmiert werden kann. Da es nicht möglich ist, ein Programm aus dem Flash auszuführen und diesen gleichzeitig zu löschen und zu programmieren, muss das Program im RAM ausgeführt werden. Dazu wird im Debugmodus der Bootloader aus dem Flash in das RAM kopiert und dann in den Programmiermodus geschaltet. Damit wird das RAM zum Programmspeicher und das Flash zum Datenspeicher. Um Ärger mit der momory-mapped-I/O zu vermeiden, wird diese im Programmiermodus komplett abgeschaltet.
Valid XHTML 1.0 Transitional
Valid CSS!
01.11.2010 19:05u