Hallo. Habe viele Jahre mit Atmel Tiny, Mega und XMega in Assembler rum gemacht. Jetzt ist mir ein PIC24FJ64GB002 in die Hände gekommen und wollte mal mit MPLABX 5.40 ausprobieren, wie man einen PIC in Assembler programmieren kann. Ich habe zusätzlich zu dem MPLABX den XC16 Compiler und auch den zum PIC24FJ64GB002 passenden Pack "PIC24F-GA-GB-DFP 1.7.214" installiert. Habe auch bei Microchip gelesen das ASM30 für diesen Typ nicht verwendet wird, sondern der Assembler innerhalb des XC16 verwendet werden muss. Auf dem Bild im Anhang ist ein kleines Testprojekt zu sehen, welches ich so erstellt habe: 1. "Standalone Project" ausgewählt 2. 16bit PIC24 ausgewählt 3. PIC24FJ64GB002 ausgewählt 4. Tool Simulator ausgewählt 5. neues Assemblerfile unter "Source Files" angelegt Das nötigste für den Assemblercode eingegeben und versucht das Assemblerprogramm zu erstellen. Dann kommt aber folgender Error: "Keine Regel vorhanden, um das Ziel „build/default/debug/newAsmTemplate.o“ usw." Weil ich keine Lösung finde, möchte ich hier mal anfragen, was habe ich denn falsch gemacht? Ich habe doch ein neues Projekt erstellt, habe ein Quellenfile als ASM angelegt und habe auch benötigten Assembler Code eingegeben. Warum ist MPLABX dann nicht in der Lage daraus das HEX-File zu erstellen? Was fehlt denn noch? Danke für eure Hilfe. Tom
Hallo schau mal, ob du das Beispiel aus dem Forum übersetzen kannst: https://www.microchip.com/forums/tm.aspx?m=361820&mpage=1&key=񘖫 Gerhard
Franko P. schrieb: > schau mal, ob du das Beispiel aus dem Forum übersetzen kannst: Danke für deinen Tipp. Habe das Ganze kopiert und in das ASM File eingefügt. Allerdings noch immer der gleiche Error: "make[2]: *** Keine Regel vorhanden, um das Ziel „build/default/debug/newAsmTemplate.o“, benötigt von „dist/default/debug/Test16Bit.X.debug.elf“, zu erstellen. Schluss. make[1]: *** [nbproject/Makefile-default.mk:91: .build-conf] Fehler 2 make: *** [nbproject/Makefile-impl.mk:39: .build-impl] Fehler 2 " Laut Microchip soll es ausreichend sein, den XC16 Compiler beim Erstellen eines neuen Projektes auszuwählen und ein Assemblerfile zu erstellen. Der MPLABX soll dann automatisch an der Extension des File-namens erkennen, das es sich auch um ein Assemblerfile und nicht C-File handelt und dementsprechend den Textinhalt innerhalb dieses Files auch als Assemblercode umsetzen. Funktioniert aber leider nicht so. Das die Fehlermeldung besagt, das verschiedene Files wie z.B. das File mit der Extension .o und .elf noch fehlen habe ich soweit schon mal erkennen können. Aber werden diese denn beim Assembler überhaupt benötigt? Und wenn ja, kann MPLABX diese auch selber erstellen, oder muss ich diese noch per Hand erstellen und wenn ja wie und wohin? Tom
Dann bleibt vieelciht noch die Frage im Microchip-Forum zu stellen. Grundlegende Fragen und probleme bei 16-Bittern scheinen da öfter aufzukommen.
Franko P. schrieb: > Dann bleibt vieelciht noch die Frage im Microchip-Forum zu stellen. Danke für deinen weiteren Tipp. Da du ja vorhin schon einen Link zu diesem Forum gegeben hattest, habe ich auch schon mal darin nach Antworten gesucht. Aber wie immer ist es bei Microchip die Suche der Nadel im Heuhaufen... und sehr erschwerend sich durch die niemals endenden Verweise auf weitere Datasheets durchzukämpfen. Habe nun auch schon das XC16 Compiler Datenblatt und das Datenblatt zum XC16 Assembler runter geladen und schon mal ein paar Stellen gelesen. Soviel ich darin verstanden habe kann man kein reines Assembler Projekt erzeugen, sondern muss ein C-Projekt starten und darin dann den Assemblercode einbetten. Das Ganze sieht im Vergleich zu dem Atmel Studio doch sehr viel komplizierter aus... Mal sehen, ein bisschen werde ich noch versuchen mich da durchzukämpfen. Ansonsten hat sich die Geschichte mit den PICs halt erledigt, was auch kein Problem ist... Gruß Tom
Tom schrieb: > Soviel ich darin verstanden habe kann man kein reines Assembler Projekt > erzeugen, sondern muss ein C-Projekt starten und darin dann den > Assemblercode einbetten. Das darf doch wohl nicht wahr sein! Ich habe umgekehrt mal versucht, mit dem 6er MPLABX ein Asm-Programm für AVR zu erstellen. Das läuft prima wenn man weiß, wie Programm und ggf. inkludierte Dateien ins Projekt einzubinden sind.
Ron T. schrieb: > Ich habe umgekehrt mal versucht, mit dem 6er MPLABX ein Asm-Programm für > AVR zu erstellen. Wie du im beigefügten Bild sehen kannst, habe auch ich bereits versucht einen ATmega8 mit MPLABX in Assembler zu programmieren und wie du im Bild auch sehen kannst, ist das auch bei mir Erfolgreich verlaufen! "BUILD SUCCESSFUL" Auch hier habe ich nur ein neues Projekt im MPLABX gestartet und ein Assembler File anlegen müssen. Das war alles und hat super funktioniert wie du sehen kannst! Nur bei dem PIC selbst funktioniert es halt nicht so einfach. Ron T. schrieb: > Das läuft prima wenn man weiß, wie Programm und ggf. > inkludierte Dateien ins Projekt einzubinden sind. Wenn du dich mit Assemblerprogrammierung mit XC16 auskennst, dann teile mir doch bitte mit, wie man die benötigten Dateien und vor allem welche Dateien man in ein Assembler Projekt für einen 16-Bit PIC einbinden muss, um einfach mal mit einfachen Assembler Instruktionen anfangen zu können. Das würde mir dann schon sehr viel weiter helfen. Danke und Gruß Tom
Tom schrieb: > Das würde mir dann schon sehr viel weiter helfen. Sorry, mit PIC fang ich selber gar nicht erst an. Dennoch halte ich Tom schrieb: > Soviel ich darin verstanden habe kann man kein reines Assembler Projekt > erzeugen, sondern muss ein C-Projekt starten und darin dann den > Assemblercode einbetten. für Nonsens.
Als "newAsmTemplate.s" läuft dein Code bei mir fehlerfrei durch. Möglicherweise mag er .asm für AVR und .s für PIC24.
Der Trick bei inkludierten Dateien war bei AVR-Projekten in MPLAB-X, diese zwar ins Projekt aufzunehmen aber sie in den File-Properties des Programms von "Configurations" zu excluden. Bei AVR-Studio wie auch MPLAB-X sind ja manchmal völlig unplausibel die unmöglichsten Fehlermeldungen zu beobachten wenn einzelne Details nicht stimmen.
:
Bearbeitet durch User
XC16_Asm_Link_Users_Guide.pdf: Kapitel 1.4.1: Microchip Technology strongly suggests an .s extension for assembly source files. This will enable you to easily use the C compiler driver without having to specify the option to tell the driver that the file should be treated as an assembly file.
neuer PIC Freund schrieb im Beitrag #7080815: > Möglicherweise mag er .asm für AVR und .s für PIC24. Manchmal zeigt sich das Ganze sehr problematisch und liegt letztendlich doch nur an einem Fitzelchen... GENAU DAS WARS! Ich habe jetzt ein neues File im Projekt mit der Extension .s erzeugt und wie man im Bild sehen kann, beinhaltet dieses sogar schon Beispiele von benötigten Assembler Befehlen für den PIC24. Wie auch im Bild zu sehen ist, steht jetzt auch hier kein Error mehr, sondern "BUILD SUCCESSFUL". So jetzt kann ich Dank der Hilfe auch mal Assemblerprogrammierung am PIC ausprobieren. Genug Datenblätter über die PIC Assemblerbefehle usw. habe ich ja bereits... Da kann ich mich jetzt Stück für Stück mal einarbeiten und sehen, was so ein PIC alles kann. Danke euch für eure Hilfe. Gruß Tom
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.