Other Parts Discussed in Thread: SYSBIOS
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?