Other Parts Discussed in Thread: SYSBIOS, TM4C129XNCZAD
Tool/software: Code Composer Studio
I was unable to find a TM4C129X version of the NDK client, which has an HTTP server I am interested in, so I am porting the client in nsp_1_10_03_15/packages/ti/ndk/examples/ndk_evm6748_elf_examples.zip to the DK-TM4C129X. After merging and some corrections, I still have three linker errors:
**** Build of configuration Debug__GNU for project ndk_client ****
"C:\\ti\\ccsv6\\utils\\bin\\gmake" -k -j 8 all
making ../src/sysbios/sysbios.am4fg ...
gmake[1]: Entering directory `C:/Users/bredel1/Desktop/blueFire/Instrument/Networked/firmware/ndk_client/src/sysbios'
gmake[1]: Nothing to be done for `all'.
gmake[1]: Leaving directory `C:/Users/bredel1/Desktop/blueFire/Instrument/Networked/firmware/ndk_client/src/sysbios'
'Building target: ndk_client.out'
'Invoking: GNU Linker'
"C:/ti/ccsv6/tools/compiler/gcc-arm-none-eabi-4_9-2015q3/bin/arm-none-eabi-gcc.exe" -march=armv7e-m -mthumb -mfloat-abi=hard -mfpu=fpv4-sp-d16 -fno-exceptions -DPART_TM4C129XNCZAD -ffunction-sections -fdata-sections -g -gdwarf-3 -gstrict-dwarf -Wall -Wl,-Map,"ndk_client.map" -L"C:/ti/tirtos_tivac_2_16_01_14/products/TivaWare_C_Series-2.1.1.71b/driverlib/gcc" -L"C:/ti/tirtos_tivac_2_16_01_14/products/TivaWare_C_Series-2.1.1.71b/grlib/gcc" -L"C:/ti/tirtos_tivac_2_16_01_14/products/TivaWare_C_Series-2.1.1.71b/usblib/gcc" -o"ndk_client.out" "./DK_TM4C129X.o" "./client.o" "./emacHooks.o" "./netHooks.o" "./webpage.o" "../src/sysbios/_BIOS.o" "../src/sysbios/gates_GateHwi.o" "../src/sysbios/gates_GateMutex.o" "../src/sysbios/gnu_ReentSupport.o" "../src/sysbios/gnu_SemiHostSupport.o" "../src/sysbios/hal_Cache.o" "../src/sysbios/hal_CacheNull.o" "../src/sysbios/hal_Hwi.o" "../src/sysbios/hal_Hwi_stack.o" "../src/sysbios/hal_Hwi_startup.o" "../src/sysbios/heaps_HeapMem.o" "../src/sysbios/knl_Clock.o" "../src/sysbios/knl_Event.o" "../src/sysbios/knl_Idle.o" "../src/sysbios/knl_Intrinsics.o" "../src/sysbios/knl_Queue.o" "../src/sysbios/knl_Semaphore.o" "../src/sysbios/knl_Swi.o" "../src/sysbios/knl_Swi_andn.o" "../src/sysbios/knl_Task.o" "../src/sysbios/lm4_Timer.o" "../src/sysbios/m3_Hwi.o" "../src/sysbios/m3_Hwi_asm_gnu.o" "../src/sysbios/m3_Hwi_asm_switch_gnu.o" "../src/sysbios/m3_IntrinsicsSupport_asm_gnu.o" "../src/sysbios/m3_TaskSupport.o" "../src/sysbios/m3_TaskSupport_asm_gnu.o" -Wl,-T"../tm4c129xnczad.lds" -Wl,-T"configPkg/linker.cmd" -Wl,--start-group -l"usb" -l"driver" -l"gcc" -l"m" -l"rdimon" -l"c" -Wl,--end-group
C:\ti\tirtos_tivac_2_16_01_14\products\bios_6_45_02_31\packages\gnu\targets\arm\rtsv7M\lib\boot.am4fg(startup.om4fg): In function `_fini':
/db/vtree/library/trees/zumaprod/zumaprod-j14/exports/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm/rtsv7M/startup.c:91: multiple definition of `_fini'
c:/ti/ccsv6/tools/compiler/gcc-arm-none-eabi-4_9-2015q3/bin/../lib/gcc/arm-none-eabi/4.9.3/armv7e-m/fpu/crti.o:(.fini+0x0): first defined here
C:\ti\tirtos_tivac_2_16_01_14\products\bios_6_45_02_31\packages\gnu\targets\arm\rtsv7M\lib\boot.am4fg(startup.om4fg):(.data.__dso_handle+0x0): multiple definition of `__dso_handle'
c:/ti/ccsv6/tools/compiler/gcc-arm-none-eabi-4_9-2015q3/bin/../lib/gcc/arm-none-eabi/4.9.3/armv7e-m/fpu/crtbegin.o:(.data+0x0): first defined here
C:\Users\bredel1\Desktop\blueFire\Instrument\Networked\firmware\ndk_client\Debug__GNU\configPkg\package\cfg\client_pm4fg.om4fg: In function `ti_sysbios_hal_Hwi_HwiProxy_getCoreStackInfo__E':
C:\Users\bredel1\Desktop\blueFire\Instrument\Networked\firmware\ndk_client\Debug__GNU\configPkg/package/cfg/client_pm4fg.c:15447: undefined reference to `ti_sysbios_family_arm_m3_Hwi_getCoreStackInfo__E'
collect2.exe: error: ld returned 1 exit status
gmake: *** [ndk_client.out] Error 1
gmake: Target `all' not remade because of errors.
**** Build Finished ****
To deal with the duplicate definitions, I have tried removing individual libraries from the project properties linker list, but the errors persist. I don't know of any way to remove crti.o, crtbegin.o or boot.am4fg from the link, so I am stuck on this problem.
It appears that file Hwi_asm_switch_gun.sv7m should supply ti_sysbios_family_arm_m3_Hwi_getCoreStackInfo__E, but it doesn't. As a temporary workaround, I can make the error go away by supplying an empty function with that name, but that isn't a solution.
Does anyone have ideas on how to fix these problems?
Thanks,
Leo Bredehoft
