Pregunta

Tengo un sincos_Q15_asm() función en el montaje, en sincos_p5sh.asm archivo con las directivas de la siguiente manera:

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

La función funciona bien cuando lo prueba por sí mismo (montaje solamente), pero cuando trato de enlazar con él, me sale un error de vinculador:

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

error: unresolved symbols remain

Esto es muy desconcertante para mí, como yo estoy incluyendo la build\blocks\sincos_p5sh.obj archivo montado en mi comando enlazador, y he utilizado el abs2000 Lister absoluta en este archivo obj y se dice que hay una _sincos_Q15_asm símbolo. (El prefijo subrayado es cómo funciona para el montaje)

Cualquier sugerencia lo que debería solucionar el siguiente?

¿Fue útil?

Solución

D'oh! Lo he descubierto - que estaba usando C ++ y se olvidó de incluir la declaración extern "C" para mi función:

extern "C" {
extern void sincos_Q15_asm(int16_t theta, int16_t* cs);
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top