
|
INFO - FAQ - CC2-Forum - CCPro-Forum |
|
||
|
Hallo Thomas > Was bedeutet ein illegaler Tokenbefehl ? Kannst Du mir bitte ein kleines Beispiel nennen ? Ein Beispiel zur M-Unit 2.0 habe ich nicht, aber zur Conrad-Micro. Die Conrad-Micro verarbeitet nur Tokenbefehle von 0 bis 82. Werden Tokenbefehle über 82 ausgeführt, sollte der Kontroller eigentlich die Programmausführung abbrechen. Das passiert aber nicht in jedem Fall und es läßt sich damit unter anderem, wie im folgenden Sourcecode gezeigt, trickreich ein Reset ausführen. In diesem Sourcecode wird der Tokenbefehl 95 ausgeführt, der zu einer Adresse verzweigt, auf der ein illegaler Opcode steht. Das SIM-Modul im Mikrokontroller 68HC908QT4 detektiert das und resettet daraufhin den Kontroller. Das Programm dürfte nur auf der Conrad-Micro 2.01 lauffähig sein. ' Per Software ausgeloester Reset bei der Conrad-Micro 2.01 ("520") ' geschrieben in OCBASIC 0.8 option ccbas dim beeper port[6] beep 100,10,beeper baud 9600 print "Programmstart" while true print "Uhrzeit: ";hour;" ";minute;" ";second pause 50 if second=13 then 'in der 13. Sekunde einen illopcode 'Reset per SIM ausloesen end if wend table illopcode byte 'Verzweigt zu einer Adresse, 95 'auf der ein illegaler Opcode end table 'steht Daß es sich um einen echten Reset handelt, sieht man daran, daß je nachdem, ob an PORT[3] High- oder Low-Potential liegt, das Programm neu gestartet oder in den Programmiermodus gegangen wird. Der Tokenbefehl 95 dürfte sich in Basic++ übrigens mittels ADDTOKEN-Befehl implementieren lassen. Viele Grüße Dietmar Meine Homepage: http://ccintern.dharlos.de |
| Antwort schreiben |