Halle Leute, ich beschäftig emich gerade mit dem dsPIC30F3010 und Microchips Bibliothek zur rechnung mit Festkommazahlen. (Benutze MPLABXIDE und den XC16-C-Compiler) Ich habe das Problem, dass die Funktion zum multiplizieren zweier Zahlen "_Q16 _Q16mpy(_Q16 a, Q16 b);" nicht gelinkt werden kann. Die Funktion ist im "16-Bit Language Tools Libraries Reference Manual" auf Seite 238 Dokumentiert. Fehlermeldung: build/default/production/measurement.o(.text+0x88): In function `.LSM16': : undefined reference to `__Q16mpy' make[2]: *** [dist/default/production/EFF.X.production.hex] Error 255 make[1]: *** [.build-conf] Error 2 make: *** [.build-impl] Error 2 Hat jemand eine Ahnung woran es liegen könnte? Die Bibliothek ist gelinkt und die h-Datei includiert und andere Funktionen aus dieser Bib funktionieren auch (z.B. _Q15add() oder _Q16div()).
ok danke das scheint zu funktionieren. sowas hatte ich schonmal glaub im microchipforum gelesen. wie kommt man auf sowas? für die bib gibts doch auch kein source code oder? wiso schreibt microchip die funktion in die doku aber nicht in die bib?! wiso gibts die ganzen standart rechenoperationen nicht für die _Q15 datentypen?
Hab das gleiche Problem, allerdings funktioniert bei mir der Trick mit _IQ16mpy nicht. Führt zur selben Fehlermeldung. Ich habe
1 | #include <libq.h> |
eingebunden und die libq-elf.a zum Projekt hinzugefügt. Welche Lib muss denn dafür verwendet werden? Der Fehler scheint ja schon eine ganze Weile zu existieren ... Lustig ist auch, dass die Website von microchip alle _Q-Funktionen für _Q15 und _Q16 anpreist.
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.