TI C2800 DSPS: Solução de problemas de problemas de ligação entre C ++ e código de montagem

StackOverflow https://stackoverflow.com/questions/1975812

  •  21-09-2019
  •  | 
  •  

Pergunta

Eu tenho uma função sincos_Q15_asm() Na Assembléia, no arquivo sincos_p5sh.asm com diretivas da seguinte forma:

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

A função funciona bem quando eu o testo por si só (apenas montagem), mas quando tento vincular a ela, recebo um erro de vinculador:

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

error: unresolved symbols remain

Isso é muito intrigante para mim, pois estou incluindo o arquivo montado build\blocks\sincos_p5sh.obj No meu comando vinculativo, e eu usei o Lister absoluto abs2000 Neste arquivo OBJ e diz que há um símbolo _sincos_Q15_asm. (O prefixo sublinhado é como funciona para a montagem)

Alguma sugestão do que devo solucionar a problemas a seguir?

Foi útil?

Solução

D'HO! Eu descobri - eu estava usando C ++ e esqueci de incluir o extern "C" Declaração para minha função:

extern "C" {
extern void sincos_Q15_asm(int16_t theta, int16_t* cs);
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top