
|
INFO - FAQ - CC2-Forum - CCPro-Forum |
|
Hallo, > Doch ach, erstes Basic++ Programm geuploaded (ein Beispiel aus dem Programmpaket wohlgemerkt) und C-Control hat sich aufgehängt. Als ich dann ein Assemblerprogramm versucht hab, einzubinden (ebenfalls Beispiel-Code, aber nebenbei ich bin Assembler-Profi) war mir klar, dass die Maschinenbefehle überhaupt nicht ausgeführt wurden. Auf die Orthografie der offiziellen Doku des offiziellen Basic++ gehe ich nicht weiter ein. Mir war für mich klar, was zu tun ist. Mit sowas ärgere ich mich gar nicht lang rum. Eventuell solltest Du mal ein Online Update machen. Ich gehe mal von einer veralteten Version aus. > Also doch Assembler ? Nach weiterer Recherche habe ich herausgefunden, dass die V2.0 der C-Control I den Sys-Befehl nicht ausführt, man also keine eigenen Assembler-Routine starten kann. Wozu also dieser CCASM ? Ich konnte/wollte es einfach nicht glauben. Also weitere Experimente. Das ist so nicht richtig. Mit CCASM werden die wichtigsten Assemblerbefehle auf der V2.0 unterstützt. Du musst offenbar einen Fehler bei der Einbindung gemacht haben. Du sagtest jedoch selbst, dass Du kein erfahrener Assemblerprogrammierer bist. Eventuell kann ich Dich hier auf das CCASM Forum verweisen. Der SYS Befehl wird sowieso ausgeführt. Schließlich gibt es von Conrad ja getestete Systemtreiber. Bei dieser Falschinformation frage ich mich daher wo Du das her hast. > Ich habe schließlich herausgefunden, dass man mittels des LOOKTAB-Befehls durch Angabe eines beliebigen Index den gesamten Speicher der Station auslesen kann (z.B. ist der Inhalt des Flash bei der CControl I 2.0 ebenfalls im Hauptspeicher adressiert...). Ich habe ein Label #beginn auf den Anfang des Basic-Programms gesetzt und die erste definierte Variable mit einem bekannten Wert belegt. Auf diesen habe ich die LOOKTAB-Ergebnisse abgefragt. So habe ich herausgefunden, welchem LOOKTAB-Index vom Beginn des Programms aus der Beginn des Variablenbereichs liegt. Da dieser absolut bei $00C0 liegt, war klar, unter welchem Index PORTD (Adresse $0003) zu finden ist. Das hättest Du auch einfacher haben können. In der CCASM Dokumentation stehen diese Konstanten drin. Übrigens wird auch ausdrücklich auf die Dokumentation des µC hingewiesen. Gruß, Stefan Meine Homepage: http://www.fdos.de |
| Antwort schreiben |