Hardware Reference
In-Depth Information
PIC-Derivate von Microchip besteht darin, dass es nur sehr eingeschränkte Mög-
lichkeiten gibt, berechnete Sprünge (computed gotos) auszuführen. Daher wurde in
der Firmware des Beispielgeräts ein Umweg des Unterprogrammaufrufs für
Befehlsunterprogramme gewählt. Die gleich vorgestellte Methode erscheint kompli-
ziert, ist jedoch effizient bezüglich Speicherbedarf und Programmausführungszeit.
Die Listen gültiger Befehle enthalten die direkten Startadressen für die auszufüh-
renden Befehlsunterprogramme. Da es bei PIC-Derivaten keine direkten Befehle
dafür gibt, einen Tabelleneintrag als neuen Inhalt für den Program Counter der
CPU zu übernehmen, wird der Inhalt des Stapelspeichers manipuliert. Soviel als
Vorrede, nun soll das vorgestellte Prinzip detailliert erläutert werden.
10.6.1 Aufbau der Befehls-Vergleichstabellen
Die Anzahl der vorhandenen Befehls-Vergleichstabellen ergibt sich aus dem jeweili-
gen Befehlsvorrat des Geräts. Alle Tabellen sind grundsätzlich gleich aufgebaut und
entsprechen dem folgenden Schema:
Inhalt Bedeutung
<ASCII> Teil eines gültigen Befehls, wenn <ASCII> nicht aus dem Bereich der
Parser-Steuerzeichen ist, also nicht 0x00, 0x0A, 0x20, 0x3A oder 0x3B.
HIGH Tab Oberes Byte des Tabellenkopfs für den nächsten Vergleich.
LOWTab UnteresBytedesTabellenkopfsfürdennächstenVergleich.
...
Ein Block aus jeweils drei Bytes umfasst das nächstmögliche gültige
ASCII-Zeichen <ASCII> mit der dazugehörigen nächsten Tabellen-
kopf-Adresse, sofern vorhanden.
...
...
0x3A Parser_Steuerzeichen: Befehlsende eines zusammengesetzten Befehls
(Compound Command) als Doppelpunkt (:). Wenn dieses Zeichen
vorkommt, werden die beiden folgenden Bytes im Scratch (COM-
MAND_HSCRATCH und COMMAND_LSCRATCH) zwischenge-
speichert, bevor der Vergleich fortgesetzt wird.
HIGH Tab Oberes Byte des Tabellenkopfs für den nächsten Vergleich.
LOWTab UnteresBytedesTabellenkopfsfürdennächstenVergleich.
0x3B
Parser Steuerzeichen: Befehlsende mit Semikolon (;). Weitere Befehle
folgen.
HIGH
Command
Oberes Byte der Startadresse des Befehlsunterprogramms.
 
Search WWH ::




Custom Search