Frage

Ich habe eine Funktion sincos_Q15_asm() in der Montage, in der Datei sincos_p5sh.asm mit Richtlinien wie folgt:

.sect   ".text"
.global _sincos_Q15_asm
.sym    _sincos_Q15_asm,_sincos_Q15_asm, 36, 2, 0
.func   1

Die Funktion funktioniert gut, wenn ich testen Sie es selbst (Montage nur), aber wenn ich auf Link, um es versuchen, ich einen Linker Fehler:

undefined                   first referenced
symbol                         in file
---------                   ----------------
sincos_Q15_asm(int, int *) build\pwm3phase.obj

error: unresolved symbols remain

Dies ist verwirrend, sehr zu mir, als ich die zusammengesetzten Datei build\blocks\sincos_p5sh.obj in meinem Linker Befehl bin auch, und ich habe die absoluten lister abs2000 auf dieser OBJ-Datei verwendet, und es sagt, es ist ein Symbol _sincos_Q15_asm. (Der Unterstrich-Präfix ist, wie es für die Montagearbeiten)

Irgendwelche Vorschläge, was ich als nächstes beheben?

War es hilfreich?

Lösung

D'oh! Habe ich es - ich wurde mit C ++ und vergessen, die extern "C" Erklärung für meine Funktion ein:

extern "C" {
extern void sincos_Q15_asm(int16_t theta, int16_t* cs);
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top