This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Hi:
I new a simple c66x test project, a test.asm:
.global _test
_test:
mv a4, a5
b b3
nop 5
main.c:
extern void test();
void main()
{
test();
}
when I build the project, error is :
undefined first referenced
symbol in file
--------- ----------------
test ./src/main.obj
But when i new a c64x+ project, the same with above project, build success.
i want to know if it is the bug of ccs5.1? thanks!
When creating a new project for C66x, the default build options choose the ABI to be EABI. To confirm, check under Proejct Properties->CCS General (Output Format). This is different than the default selected for C64x+ (which defaults to COFF ABI). One big difference between EABI and COFF ABI is that in EABI, the assembly symbol names do not have the underscore. So when building for EABI, you should modify your assembly code symbol from "_test" to "test".
More details are here: http://processors.wiki.ti.com/index.php/C6000_EABI_Migration#COFF_Underscore_Name_Mangling