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.

AM335x Processor SDK RTOS undefined symbols

Other Parts Discussed in Thread: AM3358

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

}