TI C2800 DSPを:C ++とアセンブリ・コードの間のリンカーの問題のトラブルシューティング

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

  •  21-09-2019
  •  | 
  •  

質問

次のように

私はディレクティブをファイルsincos_p5sh.asmに、アセンブリ内の関数sincos_Q15_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
私は私のリンカコマンドで組み立てられたファイルbuild\blocks\sincos_p5sh.objを含めています、と私は、このOBJファイル上の絶対リスタabs2000を使用してきましたし、それがシンボル_sincos_Q15_asmがあると言うように、

これは非常に、私に不可解されています。

(アンダースコアの接頭辞は、それがアセンブリのためにどのように動作するかです)

私は次のトラブルシューティングを行うべき任意の提案ですか?

役に立ちましたか?

解決

ああD'!私はそれを考え出した - 私はC ++を使用していたし、私の機能のためにextern "C"宣言を含めるのを忘れます:

extern "C" {
extern void sincos_Q15_asm(int16_t theta, int16_t* cs);
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top