dutch german
  Hoofdpagina Projecten Elektronica Meubelbouw Recepten Corgies Over mij
  Elektronica 80c552 µC-board Mainboard Voorversterker Eindversterker Printplaten maken Gereedschap
80c552 µC-board
Geheugenopbouw
Schema
Software
GAL
Printplaat

Geheugenopbouw

Het board kan in drie verschillende modi gebruikt worden:

Runmodus : normale modus
Debugmodus : gebruik van de softwaredebugger
Programmeermodus : in-circuit-programmering van de flash

Door deze drie modi kan op het board comfortabel software ontwikkelt worden, het flashgeheugen kan via de seriele poort nieuw geprogrammeerd worden en het board kan ook zonder PC gebruikt worden. Aangezien de gebruikte processor maar 64kB ROM kan adresseren, zou maar de helft van de gebruikte flash (29F010) niet gebruikt worden. Voor de debugmodus is een monidotrprogramma nodig, dat ook in de flash moet liggen en daarmee de vrije geheugenruimte zou verminderen. Door het gebruikt van extra poortpins wordt de adresleiding A16 geëmuleerd an kan (bijna) de gehele flashgebruikt worden.

Standaardmodus

Memory map: standaardmodus Deze modus wordt gebruikt als de ontwikkeling van het programma is afgesloten. Na de start wordt het programma vanaf het adres 0x00000 in de flash gestart en uitgevoerd. De adrespin ligt op nul, omdat ook de stuurlijn D/R op nul ligt. Er kan 64k programmageheugen gebruikt worden, dus van 0x00000 tot 0x0FFFF in de flash. In het bereik van 0x8000 tot 0xFFFF kan 32k RAM gebruikt worden. In het I/O-gebied staan negen chip-select-leidingen ter beschikking. /CE0 to /CE7 liggen in het gebied van 0x0000 tot 0x0008, /CE_IO1 kan voor extra memory-mapped-I/O gebruikt worden, in het bereik van 0x0800 tot 0x7FFF (dit is in de Elektuur foutief vanaf 0x0008 aangegeven).

Debugmodus

Memory map: Debugmodus In deze modus kan het board met de source-level-debugger SLD51 uit de ontwikkelingsomgeving van Wickenhäuser gebruikt worden. Hiermee kan het programma via de seriele poort in het RAM geladen worden en stapje voor stapje doorlopen en getest worden. Het besturingssysteem, dat dit mogelijk maakt, is het OS552 en ligt n de flash tussen 0x10000 en 0x17FFF. Dit gebied wordt voor de controller in het gebied van 0x0000 en 0x7FFF gespiegeld. De bovenste 32k van de flash kan niet gebruikt worden, aangezien hier het RAM-geheugen ligt. De memory-mapped-I/O ligt in hetzelfde bereik als in de runmodus, zodat ik die gebruikt kan worden.

Programmeermodus

Memory map: Programmiermodus De laaste modus is de programmeermodus, waarmee de flash nieuw geprogrammeerd kan worden. Aangezien het niet mogelijk is om een programma uit de flash uit te voeren en deze tegelijkertijd te wissen en te programmeren, moet het programma in RAM uitgevoerd worden. Daarvoor wordt in de debugmodus de bootloader uit de flash in het RAM-geheugen gecopieerd en in de programmeermodus geschakeld. Hier wordt het RAM als programmageheugen gebruikt en de flash wordt tot datageheugen. Om problemen met de memory-mapped-I/O te vermijden, wordt deze in de programmeermodus compleet uitgeschakeld.
Valid XHTML 1.0 Transitional
Valid CSS!
01.11.2010 19:10u