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

这对我来说非常令人费解,因为我build\blocks\sincos_p5sh.obj在链接器命令中包含了组装文件,并且我abs2000在这个 obj 文件上使用了绝对列表器,它说有一个符号_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 回答