Nabend, ich habe den (hoffentlich) endgültigen Entschluss gefasst, mich von Windows zu verabschieden und habe Kubuntu auf meinem Laptop installiert. Obwohl ich nur sehr wenig Ahnung von Linux habe, läuft bisher alles recht zufriedenstellend :) Nun möchte ich aber weiterhin meinen AT89S8252 programmieren können, was ich unter Windows mit MIDE51 gemacht habe. Daher habe ich unter Kubuntu die MCU8051 IDE installiert. Beim ersten Versuch, mein sehr umfangreiches ASM-Programm zu "kompilieren", gab es wie erwartet haufenweise Fehlermeldungen. Hier ein paar Beispiele: TempSensor EQU P0.0 -> Given register does not belong to the bit addressable area: P0.0 LCD_PORT EQU P2 -> Undefined symbol name: p2 -> Invalid expression `P2' MOV P1,#11111000b -> Symbol not defined: p1 CLR exf2 -> Symbol not defined: exf2 Textuhr: DB "Uhrzeit ",0 -> Invalid expression: `"Uhrzeit' Also so manches kann ich ja verstehen, aber dass er noch nicht mal P1 oder P2 kennt, macht mich etwas nervös... Unter MIDE51 musste ich eine Include-Datei für die SFRs angeben. Braucht MCU8051 so etwas auch? Und wenn ja, wo finde ich die? Beim Erstellen des Projektes habe ich den AT89S5283 ausgewählt. Den abgekündigten 5282 gibt's dort gar nicht mehr, aber die sollten ja voll kompatibel sein, soweit ich weiß. Interessanterweise kann ich eine ASM-Datei problemlos kompilieren, die nur dies enthält: mov P1, #0fh Da kennt er P1 dann plötzlich... Freue mich über alle Tipps! Gerne nehme ich auch eine andere IDE, wenn diese "kompatibler" ist. Es muss ja nicht MCU8051 sein. Danke euch!
Robert S. schrieb: > Unter MIDE51 musste ich eine Include-Datei für die SFRs angeben. Braucht > MCU8051 so etwas auch? Und wenn ja, wo finde ich die? Ja natürlich. Such mal nach *.h, *.inc, *.def oder schau ins Example-Verzeichnis, wie die heißen.
Moin Peter, tja, da ist ja das Problem. Es werden C- und ASM-Beispiele mitgeliefert (bzw. ein Beispiel-Projekt, das beide Typen enthält). Bei den C-Dateien taucht z.B. sowas auf: #include <at89x51.h> Aber erstens finde ich diese Datei nirgends auf der gesamten Festplatte (mag an meinen Linux-Kenntnissen liegen...) und zweitens sind .h-Dateien ja nur für C-Programmierung notwendig, richtig? Bei den mitgelieferten ASM-Dateien taucht kein include oder ähnliches auf. Ich vermute ja auch, dass das evtl. schon mit der Auswahl des uC beim Projekt Erstellen erledigt ist. Warum sollte ich sonst einen uC auswählen? Außerdem lässt sich ja wie gesagt mein 1-zeiliges Testprogramm fehlerfrei übersetzen.
:
Bearbeitet durch User
Robert S. schrieb: > Aber erstens finde ich diese Datei nirgends auf der gesamten Festplatte Wenn, dann mußt Du in der 8051-Installation suchen. Von Linux habe ich auch Null Ahnung. Hat denn die 8051-Installation keine Hilfe oder Manual? Robert S. schrieb: > Außerdem lässt sich ja wie gesagt mein 1-zeiliges Testprogramm > fehlerfrei übersetzen. Damit kann nur keiner was anfangen. Unter Programmierern ist es äußerst unhöflich, wenn Du nur Codebröckchen hinschmeißt. Einen kompletten Fehlercode als Anhang und die dazu gehörenden Fehlermeldungen (die ersten 2-3 reichen). Fehlermeldungen lassen sich oft erst im Kontext verstehen. Deshalb auch nie Code und Meldung so ungefähr aus der Erinnerung neu schreiben, sondern den exakten vollständigen Wortlaut.
Hab gerade mal in Linux Mint nach geschaut. Der Installationsordner befindet sich dort unter "/usr/share/mcu8051ide". Im Unterordner "data" gibt es eine Datei "mcus.xml", wenn ich das richtig interpretiere werden daraus irgendwie die Definitionen erstellt.
Noch ein Nachtrag: Das Programm MCU8051IDE hat keinen eigenen C-Compiler sondern benutzt den SDCC. Dieser muss zuerst installiert werden. Sobald dies erfolgt ist, müssten sich die *.h - Dateien im Verzeichnis "/usr/share/sdcc/include" befinden.
Hallo Peter, Peter D. schrieb: >> Außerdem lässt sich ja wie gesagt mein 1-zeiliges Testprogramm >> fehlerfrei übersetzen. > > Damit kann nur keiner was anfangen. Ich bezog mich hierauf: Robert S. schrieb: > Interessanterweise kann ich eine ASM-Datei problemlos kompilieren, die > nur dies enthält: > mov P1, #0fh Sorry, ich wollte keinesfalls unhöflich sein, sondern habe meiner Meinung nach ausreichend Sourcecode und Fehlermeldungen angegeben. Wenn es weiter hilft, kann ich ja ansonsten z.B. mal die ersten 100 Zeilen meines Programms mit zugehörigen Fehlermeldungen posten. Würde das helfen? Hallo MSD, vielen Dank für die Tipps! Nach /usr/share/ bin ich auch schon irgendwie gestolpert, hatte da jedoch (für mich) nichts sinnvolles gefunden. Diese XML-Datei enthält quasi die "technischen Daten" des uC. Darauf greift die IDE vermutlich beim Erstellen eines Projektes zurück. Was jedoch fehlt, ist die Zuordnung der SFRs auf Adressen. Sprich, "P1" muss ja in eine Adresse übersetzt werden. So eine Tabelle ist jedoch in der XML nicht enthalten. C-Programmierung interessiert mich z. Zt. nicht, aber danke für den Hinweis! Was machst Du denn so mit der MCU8051 IDE? Oder hast Du es jetzt einfach nur zum Spaß installiert?
Problem gelöst! Bin dahinter gekommen, dass MIDE51 (unter Windows) den ASEM-51 Assembler benutzt. Also habe ich diesen unter Kubuntu installiert und in der MCU8051IDE ausgewählt. Dann noch die Includefiles für ASEM-51 runtergeladen und schon klappt es wunderbar, ohne dass ich auch nur eine Zeile Code ändern musste :) Wenn man MIDE51 für Windows runterlädt, ist das alles in der Setup.exe enthalten und man muss sich um nichts weiter kümmern. Dadurch weiß man aber auch nicht, was im Hintergrund passiert ... Trotzdem vielen Dank! Hat jetzt vielleicht noch jemand einen guten Tipp, womit ich meinen AT89S8252 über Parallelport unter Kubuntu flashen kann? Unter Windows habe ich das immer mit PonyProg gemacht.
Robert S. schrieb: > Hat jetzt vielleicht noch jemand einen guten Tipp, womit ich meinen > AT89S8252 über Parallelport unter Kubuntu flashen kann? Unter Windows > habe ich das immer mit PonyProg gemacht. Und unter Linux willst du das nicht mehr? Von der Homepage: "PonyProg is a serial device programmer software with a user friendly GUI framework available for Windows95/98/ME/NT/2000/XP and Intel Linux."
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.