I'm using the latest version of Processor-SDK RTOS on a BBB(AM3358)
I created a new Sys/Bios project with "Minimal" setup in CCS. I have a test main.c to toggle an LED. I copied the source from GPIO_LEDBlink_bbbAM335x_armExampleProject. My generated configPkg/linker.cmd file is attached.
However, when I goto compile the project, I get undefined symbols. How does the project know which lib file to include? Is it in the platform file?
Building target: test.out' 'Invoking: ARM Linker' "C:/ti/ccsv6/tools/compiler/arm_15.12.2.LTS/bin/armcl" -mv7A8 --code_state=32 -me -g --define=am3359 --diag_warning=225 --display_error_number --diag_wrap=off -z -m"test.map" --stack_size=0x800 --heap_size=0x800 -i"C:/ti/ccsv6/tools/compiler/arm_15.12.2.LTS/lib" -i"C:/ti/ccsv6/tools/compiler/arm_15.12.2.LTS/include" --reread_libs --define=A8_CORE=1 --display_error_number --warn_sections --diag_wrap=off --xml_link_info="test_linkInfo.xml" --rom_model -o "test.out" "./main.obj" -l"configPkg/linker.cmd" -llibc.a <Linking> undefined first referenced symbol in file --------- ---------------- Board_init ./main.obj GPIO_enableInt ./main.obj GPIO_init ./main.obj GPIO_setCallback ./main.obj GPIO_toggle ./main.obj GPIO_write ./main.obj
/* * Do not modify this file; it is automatically generated from the template * linkcmd.xdt in the ti.targets.elf package and will be overwritten. */ /* * put '"'s around paths because, without this, the linker * considers '-' as minus operator, not a file name character. */ -l"D:\Working\ex\bbb\test\Debug\configPkg\package\cfg\app_pea8fnv.oea8fnv" -l"D:\Working\ex\bbb\test\src\sysbios\sysbios.aea8fnv" -l"C:\ti\bios_6_45_01_29\packages\ti\targets\arm\rtsarm\lib\ti.targets.arm.rtsarm.aea8fnv" -l"C:\ti\bios_6_45_01_29\packages\ti\targets\arm\rtsarm\lib\boot.aea8fnv" -l"C:\ti\bios_6_45_01_29\packages\ti\targets\arm\rtsarm\lib\auto_init.aea8fnv" --retain="*(xdc.meta)" /* C6x Elf symbols */ --symbol_map __TI_STACK_SIZE=__STACK_SIZE --symbol_map __TI_STACK_BASE=__stack --symbol_map _stack=__stack --args 0x0 -heap 0x0 -stack 0x400 MEMORY { SRAM_LO (RWX) : org = 0x402f0000, len = 0x400 SRAM_HI (RWX) : org = 0x402f0400, len = 0xfc00 OCMC_SRAM (RWX) : org = 0x40300000, len = 0x10000 DDR3 : org = 0x80000000, len = 0x20000000 } /* * Linker command file contributions from all loaded packages: */ /* Content from xdc.services.global (null): */ /* Content from xdc (null): */ /* Content from xdc.corevers (null): */ /* Content from xdc.shelf (null): */ /* Content from xdc.services.spec (null): */ /* Content from xdc.services.intern.xsr (null): */ /* Content from xdc.services.intern.gen (null): */ /* Content from xdc.services.intern.cmd (null): */ /* Content from xdc.bld (null): */ /* Content from ti.targets (null): */ /* Content from ti.targets.arm.elf (null): */ /* Content from xdc.rov (null): */ /* Content from xdc.runtime (null): */ /* Content from ti.targets.arm.rtsarm (null): */ /* Content from ti.sysbios.interfaces (null): */ /* Content from ti.sysbios.family (null): */ /* Content from ti.sysbios.family.arm (ti/sysbios/family/arm/linkcmd.xdt): */ --retain "*(.vecs)" /* Content from xdc.services.getset (null): */ /* Content from ti.sysbios.family.arm.a8 (null): */ /* Content from ti.sysbios.rts (ti/sysbios/rts/linkcmd.xdt): */ /* Content from xdc.runtime.knl (null): */ /* Content from ti.catalog.arm.cortexa8 (null): */ /* Content from ti.catalog.peripherals.hdvicp2 (null): */ /* Content from ti.catalog (null): */ /* Content from xdc.platform (null): */ /* Content from xdc.cfg (null): */ /* Content from ti.catalog.c6000 (null): */ /* Content from ti.catalog.arm.peripherals.timers (null): */ /* Content from ti.catalog.arm.cortexm3 (null): */ /* Content from ti.platforms.evmAM3359 (null): */ /* Content from ti.sysbios (null): */ /* Content from ti.sysbios.hal (null): */ /* Content from ti.sysbios.knl (null): */ /* Content from ti.sysbios.timers.dmtimer (null): */ /* Content from ti.sysbios.family.arm.exc (null): */ /* Content from ti.sysbios.family.arm.a8.intcps (ti/sysbios/family/arm/a8/intcps/linkcmd.xdt): */ ti_sysbios_family_arm_a8_intcps_Hwi_intc = 0x48200000; /* Content from ti.sysbios.gates (null): */ /* Content from ti.sysbios.xdcruntime (null): */ /* Content from ti.sysbios.family.arm.a8.ti81xx (null): */ /* Content from ti.sysbios.utils (null): */ /* Content from configPkg (null): */ /* Content from xdc.services.io (null): */ /* * symbolic aliases for static instance objects */ xdc_runtime_Startup__EXECFXN__C = 1; xdc_runtime_Startup__RESETFXN__C = 1; SECTIONS { .text: load >> DDR3 .stack: load > DDR3 GROUP: load > DDR3 { .bss: .neardata: .rodata: } .binit: load > DDR3 .cinit: load > DDR3 .init_array: load > DDR3 .const: load >> DDR3 .data: load >> DDR3 .fardata: load >> DDR3 .switch: load >> DDR3 .sysmem: load > DDR3 .far: load >> DDR3 .args: load > DDR3 align = 0x4, fill = 0 {_argsize = 0x0; } .cio: load >> DDR3 .ARM.exidx: load > DDR3 .ARM.extab: load >> DDR3 .vecs: load > DDR3 ti.sysbios.family.arm.a8.mmuTableSection: load > DDR3, type = NOINIT xdc.meta: load > DDR3, type = COPY }