Other Parts Discussed in Thread: SYSBIOS
Tool/software: TI-RTOS
XDCtools 3.32, SYS/BIOS 6.46, CCS 7.4, PDK 4.0.7, NDK 2.25
Trying to add the following to my ARM application:
Board_initCfg boardCfg; boardCfg = BOARD_INIT_MODULE_CLOCK | BOARD_INIT_PINMUX_CONFIG | BOARD_INIT_UART_STDIO; Board_init(boardCfg);
but I am getting linker error: undefined reference to `Board_init(unsigned long)'
My .cfg has the following already in it:
var socType = "k2h"; var osType = "tirtos" var Osal = xdc.loadPackage('ti.osal'); Osal.Settings.osType = osType; Osal.Settings.socType = socType; /*use CSL package*/ var Csl = xdc.loadPackage('ti.csl'); Csl.Settings.deviceType = socType; /* Load the I2C package - required by board */ var I2c = xdc.loadPackage('ti.drv.i2c'); I2c.Settings.socType = socType; /* Load the uart package -- required by board */ var Uart = xdc.loadPackage('ti.drv.uart'); Uart.Settings.socType = socType; /* Load the Board package and set the board name */ var Board = xdc.loadPackage('ti.board'); Board.Settings.boardName = "evmK2H";
along with other drivers and module. Below is the build output. I've deleted my application specific files for brevity and non-disclosure necessity.
Mike
**** Build of configuration Debug for project XXX_arm0 **** "C:\\ti\\ccsv7\\utils\\bin\\gmake" -j 8 all -O 'Building file: "../arm0.cfg"' 'Invoking: XDCtools' "C:/ti/xdctools_3_32_02_25_core/xs" --xdcpath="C:/ti/bios_6_46_05_55/packages;C:/ti/ipc_3_46_02_04/packages;C:/ti/xdctools_3_32_02_25_core/packages;C:/ti/ndk_2_25_01_11/packages;C:/yyy/packages;C:/ti/edma3_lld_2_12_04_28/packages;C:/ti/pdk_k2hk_4_0_7/packages;" xdc.tools.configuro -o configPkg -t gnu.targets.arm.A15F -p CSES_ARM -r debug -b "C:/yyy/shared/config.bld" -c "C:/ti/gcc-arm-none-eabi-4_9-2015q3" --cfgArgs "{procList: \"host core0\", profile: \"debug\"}" -DBOARD=evmK2H "../arm0.cfg" making package.mak (because of package.bld) ... generating interfaces for package configPkg (because package/package.xdc.inc is older than package.xdc) ... configuring arm0.xa15fg from package/cfg/arm0_pa15fg.cfg ... generating custom ti.sysbios library makefile ... generating custom ti.sdo.utils library makefile ... generating custom ti.sdo.ipc library makefile ... Inside EDMA3 Drv Sample getLibs will link with ti.sdo.edma3.drv.sample:lib/tci6636k2h-evm/a15/debug/edma3_lld_drv_sample.aa15fg Linking with library ti.drv.usb:./lib/k2h/a15/release/ti.drv.usb.aa15fg Linking with library ti.board:./lib/evmK2H/a15/release/ti.board.aa15fg Linking with library ti.drv.uart:./lib/k2h/a15/release/ti.drv.uart.aa15fg Linking with library ti.drv.i2c:./lib/k2h/a15/release/ti.drv.i2c.aa15fg Inside EDMA3 Drv getLibs will link with ti.sdo.edma3.drv:lib/a15/debug/edma3_lld_drv.aa15fg Inside EDMA3 RM getLibs will link with ti.sdo.edma3.rm:lib/tci6636k2h-evm/a15/debug/edma3_lld_rm.aa15fg Linking with library ti.drv.pcie:./lib/a15/release/ti.drv.pcie.profiling.aa15fg Linking with library ti.utils.profiling:./lib/a15/release/ti.utils.profiling.aa15fg Linking with library ti.transport.ndk.nimu:./lib/k2h/a15/release/ti.transport.ndk.nimu.aa15fg Linking with library ti.drv.pa:./lib/armv7/ti.drv.pa.aa15fg Linking with library ti.drv.qmss:./lib/armv7/ti.drv.qmss.aa15fg Linking with library ti.drv.cppi:./lib/armv7/ti.drv.cppi.aa15fg Linking with library ti.osal:./lib/tirtos/k2h/a15/release/ti.osal.aa15fg Linking with library ti.csl:./lib/k2h/a15/release/ti.csl.aa15fg Starting build of library sources ... making C:/yyy/XXX_arm0/src/sysbios/sysbios.aa15fg ... gmake[1]: Entering directory `C:/yyy/XXX_arm0/src/sysbios' asma15fg C:/ti/bios_6_46_05_55/packages/ti/sysbios/family/arm/IntrinsicsSupport_asm_gnu.asm ... asma15fg C:/ti/bios_6_46_05_55/packages/ti/sysbios/family/arm/TaskSupport_asm_gnu.asm ... asma15fg C:/ti/bios_6_46_05_55/packages/ti/sysbios/timers/timer64/Timer_asm_gnu.sv7A ... asma15fg C:/ti/bios_6_46_05_55/packages/ti/sysbios/family/arm/a15/Cache_asm_gnu.asm ... asma15fg C:/ti/bios_6_46_05_55/packages/ti/sysbios/family/arm/a15/Mmu_asm_gnu.asm ... asma15fg C:/ti/bios_6_46_05_55/packages/ti/sysbios/family/arm/a15/TimestampProvider_asm_gnu.asm ... asma15fg C:/ti/bios_6_46_05_55/packages/ti/sysbios/family/arm/gic/Hwi_asm_gnu.asm ... asma15fg C:/ti/bios_6_46_05_55/packages/ti/sysbios/family/arm/exc/Exception_asm_gnu.asm ... asma15fg C:/ti/bios_6_46_05_55/packages/ti/sysbios/family/arm/systimer/Timer_asm_gnu.asm ... cla15fg C:/ti/bios_6_46_05_55/packages/ti/sysbios/BIOS.c ... cla15fg C:/ti/bios_6_46_05_55/packages/ti/sysbios/family/arm/IntrinsicsSupport.c ... cla15fg C:/ti/bios_6_46_05_55/packages/ti/sysbios/family/arm/TaskSupport.c ... cla15fg C:/ti/bios_6_46_05_55/packages/ti/sysbios/knl/Clock.c ... cla15fg C:/ti/bios_6_46_05_55/packages/ti/sysbios/knl/Idle.c ... cla15fg C:/ti/bios_6_46_05_55/packages/ti/sysbios/knl/Intrinsics.c ... cla15fg C:/ti/bios_6_46_05_55/packages/ti/sysbios/knl/Event.c ... cla15fg C:/ti/bios_6_46_05_55/packages/ti/sysbios/knl/Mailbox.c ... cla15fg C:/ti/bios_6_46_05_55/packages/ti/sysbios/knl/Queue.c ... cla15fg C:/ti/bios_6_46_05_55/packages/ti/sysbios/knl/Semaphore.c ... cla15fg C:/ti/bios_6_46_05_55/packages/ti/sysbios/knl/Swi.c ... cla15fg C:/ti/bios_6_46_05_55/packages/ti/sysbios/knl/Swi_andn.c ... cla15fg C:/ti/bios_6_46_05_55/packages/ti/sysbios/knl/Task.c ... cla15fg C:/ti/bios_6_46_05_55/packages/ti/sysbios/hal/Cache.c ... cla15fg C:/ti/bios_6_46_05_55/packages/ti/sysbios/hal/Core.c ... cla15fg C:/ti/bios_6_46_05_55/packages/ti/sysbios/hal/Hwi.c ... cla15fg C:/ti/bios_6_46_05_55/packages/ti/sysbios/hal/Hwi_stack.c ... cla15fg C:/ti/bios_6_46_05_55/packages/ti/sysbios/hal/Hwi_startup.c ... cla15fg C:/ti/bios_6_46_05_55/packages/ti/sysbios/heaps/HeapMem.c ... cla15fg C:/ti/bios_6_46_05_55/packages/ti/sysbios/gates/GateHwi.c ... cla15fg C:/ti/bios_6_46_05_55/packages/ti/sysbios/gates/GateAll.c ... cla15fg C:/ti/bios_6_46_05_55/packages/ti/sysbios/gates/GateSwi.c ... cla15fg C:/ti/bios_6_46_05_55/packages/ti/sysbios/gates/GateMutexPri.c ... cla15fg C:/ti/bios_6_46_05_55/packages/ti/sysbios/gates/GateMutex.c ... cla15fg C:/ti/bios_6_46_05_55/packages/ti/sysbios/rts/gnu/ReentSupport.c ... cla15fg C:/ti/bios_6_46_05_55/packages/ti/sysbios/rts/gnu/SemiHostSupport.c ... cla15fg C:/ti/bios_6_46_05_55/packages/ti/sysbios/timers/timer64/Timer.c ... cla15fg C:/ti/bios_6_46_05_55/packages/ti/sysbios/syncs/SyncSem.c ... cla15fg C:/ti/bios_6_46_05_55/packages/ti/sysbios/family/arm/a15/Core.c ... cla15fg C:/ti/bios_6_46_05_55/packages/ti/sysbios/family/arm/a15/Cache.c ... cla15fg C:/ti/bios_6_46_05_55/packages/ti/sysbios/family/arm/a15/Mmu.c ... cla15fg C:/ti/bios_6_46_05_55/packages/ti/sysbios/family/arm/a15/TimerSupport.c ... cla15fg C:/ti/bios_6_46_05_55/packages/ti/sysbios/family/arm/a15/TimestampProvider.c ... cla15fg C:/ti/bios_6_46_05_55/packages/ti/sysbios/family/arm/gic/Hwi.c ... cla15fg C:/ti/bios_6_46_05_55/packages/ti/sysbios/family/arm/exc/Exception.c ... cla15fg C:/ti/bios_6_46_05_55/packages/ti/sysbios/xdcruntime/GateThreadSupport.c ... cla15fg C:/ti/bios_6_46_05_55/packages/ti/sysbios/family/arm/systimer/Timer.c ... ara15fg arm_IntrinsicsSupport_asm_gnu.o arm_TaskSupport_asm_gnu.o timer64_Timer_asm_gnu.o a15_Cache_asm_gnu.o a15_Mmu_asm_gnu.o a15_TimestampProvider_asm_gnu.o gic_Hwi_asm_gnu.o exc_Exception_asm_gnu.o systimer_Timer_asm_gnu.o _BIOS.o arm_IntrinsicsSupport.o arm_TaskSupport.o knl_Clock.o knl_Idle.o knl_Intrinsics.o knl_Event.o knl_Mailbox.o knl_Queue.o knl_Semaphore.o knl_Swi.o knl_Swi_andn.o knl_Task.o hal_Cache.o hal_Core.o hal_Hwi.o hal_Hwi_stack.o hal_Hwi_startup.o heaps_HeapMem.o gates_GateHwi.o gates_GateAll.o gates_GateSwi.o gates_GateMutexPri.o gates_GateMutex.o gnu_ReentSupport.o gnu_SemiHostSupport.o timer64_Timer.o syncs_SyncSem.o a15_Core.o a15_Cache.o a15_Mmu.o a15_TimerSupport.o a15_TimestampProvider.o gic_Hwi.o exc_Exception.o xdcruntime_GateThreadSupport.o systimer_Timer.o ... gmake[1]: Leaving directory `C:/yyy/XXX_arm0/src/sysbios' making C:/yyy/XXX_arm0/src/ipc.aa15fg ... gmake[1]: Entering directory `C:/yyy/XXX_arm0/src/ipc' cla15fg C:/ti/ipc_3_46_02_04/packages/ti/sdo/utils/NameServer.c ... cla15fg C:/ti/ipc_3_46_02_04/packages/ti/sdo/utils/NameServerRemoteNull.c ... cla15fg C:/ti/ipc_3_46_02_04/packages/ti/sdo/utils/MultiProc.c ... cla15fg C:/ti/ipc_3_46_02_04/packages/ti/sdo/utils/List.c ... cla15fg C:/ti/ipc_3_46_02_04/packages/ti/sdo/ipc/GateMP.c ... cla15fg C:/ti/ipc_3_46_02_04/packages/ti/sdo/ipc/MessageQ.c ... cla15fg C:/ti/ipc_3_46_02_04/packages/ti/sdo/ipc/SharedRegion.c ... cla15fg C:/ti/ipc_3_46_02_04/packages/ti/sdo/ipc/Ipc.c ... cla15fg C:/ti/ipc_3_46_02_04/packages/ti/sdo/ipc/Notify.c ... cla15fg C:/ti/ipc_3_46_02_04/packages/ti/sdo/ipc/gates/GateHWSem.c ... cla15fg C:/ti/ipc_3_46_02_04/packages/ti/sdo/ipc/gates/GateMPSupportNull.c ... cla15fg C:/ti/ipc_3_46_02_04/packages/ti/sdo/ipc/notifyDrivers/NotifySetupNull.c ... cla15fg C:/ti/ipc_3_46_02_04/packages/ti/sdo/ipc/transports/TransportShmNotify.c ... cla15fg C:/ti/ipc_3_46_02_04/packages/ti/sdo/ipc/transports/TransportShmNotifySetup.c ... cla15fg C:/ti/ipc_3_46_02_04/packages/ti/sdo/ipc/nsremote/NameServerRemoteNotify.c ... cla15fg C:/ti/ipc_3_46_02_04/packages/ti/sdo/ipc/heaps/HeapMemMP.c ... ara15fg ti_sdo_utils_NameServer.o ti_sdo_utils_NameServerRemoteNull.o ti_sdo_utils_MultiProc.o ti_sdo_utils_List.o ti_sdo_ipc_GateMP.o ti_sdo_ipc_MessageQ.o ti_sdo_ipc_SharedRegion.o ti_sdo_ipc_Ipc.o ti_sdo_ipc_Notify.o ti_sdo_ipc_gates_GateHWSem.o ti_sdo_ipc_gates_GateMPSupportNull.o ti_sdo_ipc_notifyDrivers_NotifySetupNull.o ti_sdo_ipc_transports_TransportShmNotify.o ti_sdo_ipc_transports_TransportShmNotifySetup.o ti_sdo_ipc_nsremote_NameServerRemoteNotify.o ti_sdo_ipc_heaps_HeapMemMP.o ... gmake[1]: Leaving directory `C:/yyy/XXX_arm0/src/ipc' making C:/yyy/XXX_arm0/src/utils.aa15fg ... gmake[1]: Entering directory `C:/yyy/XXX_arm0/src/utils' cla15fg C:/ti/ipc_3_46_02_04/packages/ti/sdo/utils/UTILS.c ... cla15fg C:/ti/ipc_3_46_02_04/packages/ti/sdo/utils/NameServer.c ... cla15fg C:/ti/ipc_3_46_02_04/packages/ti/sdo/utils/NameServerRemoteNull.c ... cla15fg C:/ti/ipc_3_46_02_04/packages/ti/sdo/utils/MultiProc.c ... cla15fg C:/ti/ipc_3_46_02_04/packages/ti/sdo/utils/List.c ... ara15fg utils_UTILS.o utils_NameServer.o utils_NameServerRemoteNull.o utils_MultiProc.o utils_List.o ... gmake[1]: Leaving directory `C:/yyy/XXX_arm0/src/utils' Build of libraries done. cla15fg package/cfg/arm0_pa15fg.c ... 'Finished building: "../arm0.cfg"' 1 file(s) copied. making ../src/sysbios/sysbios.aa15fg ... gmake[1]: Nothing to be done for 'all'. 'Building file: "C:/yyy/drv/flash/flashDriver.c"' 'Invoking: GNU Compiler' "C:/ti/gcc-arm-none-eabi-4_9-2015q3/bin/arm-none-eabi-gcc.exe" -c -mfloat-abi=hard -Dfar= -D__DYNAMIC_REENT__ -DSOC_K2H -DDEVICE_K2H -DevmK2H -Dgcc -I"C:/ti/pdk_k2hk_4_0_7/packages" -I"C:/yyy" -I"C:/ti/pdk_k2hk_4_0_7/packages/ti/drv/usb" -I"C:/ti/pdk_k2hk_4_0_7/packages/ti/drv/usb/src/usb_func/include" -I"C:/ti/pdk_k2hk_4_0_7/packages/ti/drv/usb/src/include" -I"C:/ti/ndk_2_25_01_11/packages/ti/ndk/inc/bsd" -ffunction-sections -fdata-sections -g -Wall -ggdb -Wunused -Wunknown-pragmas -MMD -MP -MF"drv/flash/flashDriver.d" -MT"drv/flash/flashDriver.o" @"configPkg/compiler.opt" -o"drv/flash/flashDriver.o" "C:/yyy/drv/flash/flashDriver.c" 'Finished building: "C:/yyy/drv/flash/flashDriver.c"' <<< ADD A LOAD OTHER APPLICATION SPECIFIC FILES >>> making ../src/sysbios/sysbios.aa15fg ... making ../src/ipc.aa15fg ... making ../src/utils.aa15fg ... gmake[2]: Nothing to be done for 'all'. gmake[2]: Nothing to be done for 'all'. gmake[2]: Nothing to be done for 'all'. 'Building target: "XXX_arm0.out"' 'Invoking: GNU Linker' "C:/ti/gcc-arm-none-eabi-4_9-2015q3/bin/arm-none-eabi-gcc.exe" -D_RAW_DATA_SIM_ -Dfar= -D__DYNAMIC_REENT__ -DSOC_K2H -DDEVICE_K2H -DevmK2H -Dgcc -ffunction-sections -fdata-sections -g -Wall -ggdb -Wunused -Wunknown-pragmas -mfloat-abi=hard -Wl,-Map,"XXX_arm0.map" -nostartfiles -static -Wl,--gc-sections -L"C:/ti/pdk_k2hk_4_0_7/packages/ti/drv/pcie/lib/k2h/a15/release" -L"C:/ti/ndk_2_25_01_11/packages/ti/ndk/os/lib" -L"C:/ti/bios_6_46_05_55/packages/gnu/targets/arm/libs/install-native/arm-none-eabi/lib/fpu" --specs=rdimon.specs -o"XXX_arm0.out" "./drv/flash/flashDriver.o" <<< AND A LOAD OF OTHER APPLICATION .O FILES >>> -Wl,-T"configPkg/linker.cmd" -Wl,--start-group -l:ti.drv.pcie.aa15fg -lgcc -lc -lm -l:os.aa15fg -lstdc++ -Wl,--end-group makefile:221: recipe for target 'XXX_arm0.out' failed ./XXX/XXX.o: In function `main': C:/yyy/XXX/XXX.cpp:243: undefined reference to `Board_init(unsigned long)' collect2.exe: error: ld returned 1 exit status gmake[1]: *** [XXX_arm0.out] Error 1 gmake: *** [all] Error 2 makefile:217: recipe for target 'all' failed **** Build Finished ****