1

sincos_Q15_asm()次のようなディレクティブを持つファイル sincos_p5sh.asm に、アセンブリに関数があります。

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

関数を単独でテストすると (アセンブリのみ)、関数は正常に動作しますが、リンクしようとすると、リンカー エラーが発生します。

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

error: unresolved symbols remain

アセンブルされたファイルをリンカーコマンドに含めているため、これは非常に不可解です。このobjファイルでbuild\blocks\sincos_p5sh.obj絶対リスターを使用しましたabs2000が、シンボルがあると表示されます_sincos_Q15_asm。(アンダースコアの接頭辞は、アセンブリでどのように機能するかです)

次にトラブルシューティングする必要がある提案はありますか?

4

1 に答える 1

1

ああ!私はそれを理解しました-私はC ++を使用していてextern "C"、関数の宣言を含めるのを忘れていました:

extern "C" {
extern void sincos_Q15_asm(int16_t theta, int16_t* cs);
}
于 2009-12-29T18:29:33.847 に答える