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.
Tool/software: TI C/C++ Compiler
Hi,
I want to include some open-source stacks in my code for the CC1352P1, so I'm trying to use cmake with armcl compiler and armar archiver.
Here is my code:
cmake_minimum_required(VERSION 3.10) set (CMAKE_CONFIGURATION_TYPES "Debug;Release") project(lwIP) # Example lwIP application set(LWIP_DIR "/Users/sramnath/lwip_blinky/lwip") set (LWIP_DEFINITIONS LWIP_DEBUG=1) set(CMAKE_VERBOSE_MAKEFILE ON) # Generate docs before creating source package include(${LWIP_DIR}/contrib/ports/CMakeCommon.cmake) add_custom_target(dist COMMAND ${CMAKE_MAKE_PROGRAM} package_source) if (TARGET lwipdocs) add_dependencies(dist lwipdocs) endif() set(TIRTOS_XDC_RT "/Applications/ti_ccs9/xdctools_3_32_00_06_core") set(TIRTOS_BIOS_RT "/Applications/ti_ccs9/tirtos_cc13xx_cc26xx_2_21_01_08/products/bios_6_46_01_38/packages/ti/sysbios") set(TIRTOS_BIOS_INC "/Applications/ti_ccs9/tirtos_cc13xx_cc26xx_2_21_01_08/products/bios_6_46_01_38/packages") set(TIRTOS_TARGET_INC "/Applications/ti_ccs9/tirtos_cc13xx_cc26xx_2_21_01_08/products/bios_6_46_01_38/packages") set(TIRTOS_COMPILER "/Applications/ti_ccs9/ccs9/ccs/tools/compiler/ti-cgt-arm_18.12.2.LTS") set(TIRTOS_SDK "/Applications/ti_ccs9/simplelink_cc13x2_26x2_sdk_3_20_00_68") set(TIRTOS_CROSS_COMPILER "/Applications/ti_ccs9/simplelink_cc13x2_26x2_sdk_3_20_00_68/kernel/tirtos/packages/gnu/targets/arm/libs/install-native/arm-none-eabi") set(LWIP_TIRTOS_SRCS ${TIRTOS_XDC_RT}/packages ${TIRTOS_BIOS_RT} ${TIRTOS_BIOS_INC} ${TIRTOS_BIOS_INC}/gnu/targets ${TIRTOS_TARGET_INC} ${TIRTOS_COMPILER} ${TIRTOS_SDK}/source ${TIRTOS_SDK}/source/ti/posix/ccs ) set (LWIP_INCLUDE_DIRS "${LWIP_DIR}/src/include" "${LWIP_DIR}" "${LWIP_DIR}/contrib/" "${LWIP_DIR}/contrib/ports/tirtos/include" "${LWIP_DIR}/contrib/examples/test" # "/Users/sramnath/lwip_out/lwip/contrib/ports/tirtos" "${LWIP_DIR}/contrib/ports/tirtos" "${LWIP_TIRTOS_SRCS}" ) set (LWIP_COMPILE_OPTIONS "-Dxdc_target_types__=${TIRTOS_BIOS_INC}/gnu/targets/arm/std.h" "-Dxdc_target_name__=M3" "-DDeviceFamily_CC13X2" ) set (LWIP_CCOPTS "--endian=little --mv7M4 --abi=eabi -q -ms --opt_for_speed=0 --program_level_compile -o3 -g --optimize_with_debug -Dti_sysbios_knl_Task_minimizeLatency__D=FALSE -Dti_sysbios_family_arm_cc26xx_Boot_driverlibVersion=2 -Dti_sysbios_knl_Clock_stopCheckNext__D=TRUE -Dti_sysbios_family_arm_m3_Hwi_enableException__D=TRUE -Dti_sysbios_family_arm_m3_Hwi_disablePriority__D=32U -Dti_sysbios_family_arm_m3_Hwi_numSparseInterrupts__D=0U" ) set (LWIP_BIOS_OPTS "-Dti_sysbios_BIOS_swiEnabled__D=TRUE" "-Dti_sysbios_BIOS_taskEnabled__D=TRUE" "-Dti_sysbios_BIOS_clockEnabled__D=TRUE" "-Dti_sysbios_BIOS_runtimeCreatesEnabled__D=TRUE" "-Dti_sysbios_hal_Hwi_DISABLE_ALL_HOOKS" "-Dti_sysbios_knl_Swi_DISABLE_ALL_HOOKS" "-Dti_sysbios_BIOS_smpEnabled__D=FALSE" "-Dti_sysbios_Build_useHwiMacros" "-Dti_sysbios_knl_Swi_numPriorities__D=6" "-Dti_sysbios_knl_Task_deleteTerminatedTasks__D=FALSE" "-Dti_sysbios_knl_Task_numPriorities__D=16" "-Dti_sysbios_knl_Task_checkStackFlag__D=FALSE" "-Dti_sysbios_knl_Task_initStackFlag__D=TRUE" "-Dti_sysbios_knl_Task_DISABLE_ALL_HOOKS" "-Dti_sysbios_knl_Clock_TICK_SOURCE=ti_sysbios_knl_Clock_TickSource_TIMER" "-Dti_sysbios_knl_Clock_TICK_MODE=ti_sysbios_knl_Clock_TickMode_DYNAMIC" "-Dti_sysbios_hal_Core_delegate_getId=ti_sysbios_hal_CoreNull_getId__E" "-Dti_sysbios_hal_Core_delegate_interruptCore=ti_sysbios_hal_CoreNull_interruptCore__E" "-Dti_sysbios_hal_Core_delegate_lock=ti_sysbios_hal_CoreNull_lock__E" "-Dti_sysbios_hal_Core_delegate_unlock=ti_sysbios_hal_CoreNull_unlock__E" "-Dti_sysbios_hal_Core_numCores__D=1" "-Dti_sysbios_hal_CoreNull_numCores__D=1" "-Dti_sysbios_utils_Load_taskEnabled__D=TRUE" "-Dti_sysbios_utils_Load_swiEnabled__D=FALSE" "-Dti_sysbios_utils_Load_hwiEnabled__D=FALSE" "-Dti_sysbios_family_arm_m3_Hwi_dispatcherSwiSupport__D=TRUE" "-Dti_sysbios_family_arm_m3_Hwi_dispatcherTaskSupport__D=TRUE" "-Dti_sysbios_family_arm_m3_Hwi_dispatcherAutoNestingSupport__D=TRUE" "-Dti_sysbios_knl_Semaphore_supportsEvents__D=FALSE" "-Dti_sysbios_knl_Semaphore_supportsPriority__D=FALSE" "-Dxdc_runtime_Assert_DISABLE_ALL" "-Dxdc_runtime_Log_DISABLE_ALL" ) # Compiler options set(TI_CGT_PATH "${TIRTOS_COMPILER}") set(CMAKE_C_COMPILER "${TIRTOS_COMPILER}/bin/armcl") set(CMAKE_C_FLAGS "-c ${LWIP_CCOPTS} -I ${TIRTOS_COMPILER}/include -I ${TIRTOS_SDK}/kernel/tirtos/packages" CACHE STRING "" FORCE) # skip compiler tests set(CMAKE_C_COMPILER_WORKS 1) # add default include and lib directories include_directories(${TIRTOS_COMPILER}/include) link_directories(${TIRTOS_COMPILER}/lib) # set target environment set(CMAKE_FIND_ROOT_PATH ${TIRTOS_COMPILER} ) set(PLATFORM_CONFIG_C_FLAGS "-mv7M4 --code_state=16 --float_support=FPv4SPD16 --abi=eabi -me -O2 -g --include_path=${TIRTOS_COMPILER}/include -gcc --define=ccs=ccs --diag_warning=225 --display_error_number --diag_wrap=off --gen_func_subsections=on --ual" CACHE STRING "platform config c flags") # combine flags to C and C++ flags SET(CMAKE_C_FLAGS "${PLATFORM_CONFIG_C_FLAGS} ${CMAKE_C_FLAGS}" CACHE STRING "platform config c flags") SET(CMAKE_CXX_FLAGS "${PLATFORM_CONFIG_CXX_FLAGS} ${CMAKE_CXX_FLAGS}" CACHESTRING "platform config c flags") SET(CMAKE_EXE_LINKER_FLAGS "-mv7M4 --code_state=16 --float_support=FPv4SPD16 --abi=eabi -me -O2 -g --define=ccs=\"ccs\" --diag_warning=225 --display_error_number --diag_wrap=off --gen_func_subsections=on --ual -z --stack_size=256 -mblinky_ccs.map --heap_size=0 -i${TIRTOS_COMPILER}/lib -i${TIRTOS_COMPILER}/include --reread_libs --warn_sections --display_error_number --diag_wrap=off --xml_link_info=blinky_linkInfo.xml --rom_model" CACHE STRING "") # change to armar SET(CMAKE_AR "${TIRTOS_COMPILER}/bin/armar") SET(CMAKE_AR_FLAGS "-av") SET(CMAKE_C_ARCHIVE_CREATE "<CMAKE_AR> ${CMAKE_AR_FLAGS} <TARGET> <LINK_FLAGS> <OBJECTS>") include(${LWIP_DIR}/src/Filelists.cmake) include(${LWIP_DIR}/contrib/Filelists.cmake) include(${LWIP_DIR}/contrib/ports/tirtos/Filelists.cmake) set (cc1352p1_board_SRCS ${LWIP_DIR}/CC1352P1_LAUNCHXL_TIRTOS.cmd ${LWIP_DIR}/CC1352P1_LAUNCHXL_fxns.c ${LWIP_DIR}/CC1352P1_LAUNCHXL.c ${LWIP_DIR}/ccfg.c ) add_library(lwipboard EXCLUDE_FROM_ALL ${cc1352p1_board_SRCS}) target_include_directories(lwipboard PRIVATE ${LWIP_INCLUDE_DIRS}) target_compile_options(lwipboard PRIVATE ${LWIP_COMPILER_FLAGS} ${LWIP_COMPILER_OPTIONS}) target_compile_definitions(lwipboard PRIVATE ${LWIP_DEFINITIONS}) add_executable(test ${LWIP_DIR}/main.c ) target_include_directories(test PRIVATE ${LWIP_INCLUDE_DIRS}) target_compile_options(test PRIVATE ${LWIP_COMPILER_FLAGS} ${LWIP_COMPILER_OPTIONS}) target_link_libraries(test ${LWIP_SANITIZER_LIBS} lwipboard) add_definitions( ${LWIP_COMPILE_OPTIONS} ${LWIP_CCOPTS} ${LWIP_BIOS_OPTS})
I am able to build but when I get to linking static libraries, I get the following error :
[ 60%] Linking C static library liblwipboard.a /usr/local/Cellar/cmake/3.15.5/bin/cmake -P CMakeFiles/lwipboard.dir/cmake_clean_target.cmake /usr/local/Cellar/cmake/3.15.5/bin/cmake -E cmake_link_script CMakeFiles/lwipboard.dir/link.txt --verbose=1 /Applications/ti_ccs9/ccs9/ccs/tools/compiler/ti-cgt-arm_18.12.2.LTS/bin/armar -av liblwipboard.a CMakeFiles/lwipboard.dir/CC1352P1_LAUNCHXL_fxns.c.o CMakeFiles/lwipboard.dir/CC1352P1_LAUNCHXL.c.o CMakeFiles/lwipboard.dir/ccfg.c.o ==> new archive 'liblwipboard.a' ==> building archive 'liblwipboard.a' --> error: 'CMakeFiles/lwipboard.dir/CC1352P1_LAUNCHXL_fxns.c.o' not found --> error: 'CMakeFiles/lwipboard.dir/CC1352P1_LAUNCHXL.c.o' not found --> error: 'CMakeFiles/lwipboard.dir/ccfg.c.o' not found make[2]: *** [liblwipboard.a] Error 1 make[2]: *** Deleting file `liblwipboard.a' make[1]: *** [CMakeFiles/lwipboard.dir/all] Error 2 make: *** [all] Error 2
all builds show successful so I assume that the .o objects they are referring to were generated.
Any idea as to what could be going wrong?
Warm regards,
Samyukta
Unfortunately, TI has no examples on how to use cmake with TI compiler tools.
I can tell you the default file extension for object files is .obj and not .o . That may have something to do with the problem. You can change this default with the option --obj_extension=o . Please read more about this option in the TI ARM compiler manual.
Thanks and regards,
-George