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
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
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.
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.
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