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 built a simple project using CCS 5.0.3 and BIOS 6.31.04. It builds fine. An example compile command from the build is:
'Building file: ../main.c'
'Invoking: C6000 Compiler'
"C:/TI/ccsv5/tools/compiler/c6000/bin/cl6x" -mv6600 -g --include_path="C:/TI/ccsv5/tools/compiler/c6000/include" --diag_warning=225 --big_endian --abi=eabi --preproc_with_compile --preproc_dependency="main.pp" --cmd_file="./configPkg/compiler.opt" "../main.c"
'Finished building: ../main.c'
Now, I notice that the bios and xdc include paths are not explicitly mentioned in this command.
I stored the project in Subversion and tried to build it on another PC with CCS 5.03 installed. The build failed and I had to explicitly specify include paths for BIOS and xdc as shown below:
C:\TI\ccsv5\utils\gmake\gmake -k all
'Building file: ../main.c'
'Invoking: C6000 Compiler'
"C:/TI/ccsv5/tools/compiler/c6000/bin/cl6x" -mv6600 -g --include_path="C:/TI/ccsv5/tools/compiler/c6000/include" --include_path="C:\TI\xdctools_3_20_08_88\packages" --include_path="C:\TI\bios_6_31_04_27\packages" --diag_warning=225 --big_endian --abi=eabi --preproc_with_compile --preproc_dependency="main.pp" "../main.c" -D xdc_target_types__=ti/targets/std.h
'Finished building: ../main.c'
Why were these include paths not required on the first PC? Was there some auto-discovery going on?
Why were they necessary on the second platform? Can I fix this another way?
On the second platform I now have a linker error:
<Linking>
warning: creating ".stack" section with default size of 0x400; use the -stack
option to change the default size
undefined first referenced
symbol in file
--------- ----------------
ti_sysbios_BIOS_exit__E ./task2.obj
ti_sysbios_BIOS_start__E ./main.obj
ti_sysbios_knl_Clock_getTicks__E ./task1.obj
ti_sysbios_knl_Queue_Object__create__S ./main.obj
ti_sysbios_knl_Queue_dequeue__E ./task2.obj
ti_sysbios_knl_Queue_empty__E ./task2.obj
ti_sysbios_knl_Queue_enqueue__E ./task1.obj
ti_sysbios_knl_Semaphore_Object__create__S ./main.obj
ti_sysbios_knl_Semaphore_getCount__E ./task1.obj
ti_sysbios_knl_Semaphore_post__E ./main.obj
ti_sysbios_knl_Task_Object__create__S ./main.obj
ti_sysbios_knl_Task_Params__init__S ./main.obj
ti_sysbios_knl_Task_sleep__E ./task2.obj
xdc_runtime_System_printf__E ./task2.obj
error: unresolved symbols remain
error: errors encountered during linking; "Queue.out" not built
I guess I need to explicity specify the BIOS library. Why is this necessary?