Yesterday, after finishing the feasibility part of a project involving TI's BLE stack (which required to be done in Windows for lack of Linux support) I wanted to move back to my usual environment and relax :)
I found what seems a recent wiki from TI explaining how to do it and it was simple enough to try it. I followed the described method and was able to build the stack and the app for SimplePeripheral and check they work, using a SmartRF06 with the CC2650-Em cards.
Then, I decided to do the same with the Central project and this time I am getting errors in both cases related to the size of the code:
Building target: SimpleBLECentralStack.out
Invoking: ARM Linker
"/home/swdev/ti/ccsv6/tools/compiler/arm_15.12.2.LTS/bin/armcl" --cmd_file="/home/swdev/ti/simplelink/ble_cc26xx_2_01_01_44627/Projects/ble/SimpleBLECentral/CC26xx/CCS/SimpleBLECentralStack/../../IAR/Stack/CC2640/../../../../../config/buildComponents.opt" --cmd_file="/home/swdev/ti/simplelink/ble_cc26xx_2_01_01_44627/Projects/ble/SimpleBLECentral/CC26xx/CCS/SimpleBLECentralStack/../../IAR/Stack/CC2640/buildConfig.opt" -mv7M3 --code_state=16 -me -O4 --opt_for_speed=0 --define=USE_ICALL --define=FLASH_ROM_BUILD --define=POWER_SAVING --define=INCLUDE_AES_DECRYPT --define=xPM_DISABLE_PWRDOWN --define=xTESTMODES --define=xTEST_BLEBOARD --define=OSAL_CBTIMER_NUM_TASKS=1 --define=HALNODEBUG --define=xDEBUG_GPIO --define=xDEBUG_ENC --define=xDEBUG_SW_TRACE --define=NEAR_FUNC= --define=DATA= --define=CC26XXWARE --define=CC26XX --define=ccs --define=DEBUG --diag_wrap=off --display_error_number --diag_warning=225 --diag_suppress=48 --abi=eabi -z -m"SimpleBLECentralStack.map" --heap_size=0 --stack_size=256 -i"/home/swdev/ti/ccsv6/tools/compiler/arm_15.12.2.LTS/lib" -i"/home/swdev/ti/ccsv6/tools/compiler/arm_15.12.2.LTS/include" --reread_libs --warn_sections --display_error_number --diag_wrap=off --diag_suppress=16002-D --diag_suppress=10325-D --diag_suppress=10247-D --xml_link_info="SimpleBLECentralStack_linkInfo.xml" --entry_point=startup_entry --rom_model --unused_section_elimination=on --compress_dwarf=on -o "SimpleBLECentralStack.out" "/home/swdev/ti/simplelink/ble_cc26xx_2_01_01_44627/Projects/ble/SimpleBLECentral/CC26xx/CCS/Config/ccsLinkerDefines.cmd" "/home/swdev/ti/simplelink/ble_cc26xx_2_01_01_44627/Projects/ble/common/cc26xx/CCS/cc26xx_ble_stack.cmd" "./HAL/Common/hal_assert.obj" "./HAL/Target/CC2650/Drivers/hal_flash_wrapper.obj" "./HAL/Target/CC2650/Drivers/hal_rtc_wrapper.obj" "./HAL/Target/CC2650/Drivers/hal_trng_wrapper.obj" "./HAL/Target/CC2650/_common/mb_PATCH.obj" "./ICallBLE/bleDispatch.obj" "./NPI/npi.obj" "./OSAL/OSAL.obj" "./OSAL/OSAL_Clock.obj" "./OSAL/OSAL_MemoryICall.obj" "./OSAL/OSAL_PwrMgr.obj" "./OSAL/OSAL_Timers.obj" "./OSAL/osal_bufmgr.obj" "./OSAL/osal_cbtimer.obj" "./OSAL/osal_snv_wrapper.obj" "./PROFILES/gap.obj" "./PROFILES/gapbondmgr.obj" "./PROFILES/gattservapp_util.obj" "./Startup/CommonROM_Init.obj" "./Startup/ICall_startup.obj" "./Startup/OSAL_ICallBle.obj" "./Startup/ROM_Init.obj" "./Startup/bleUserConfig.obj" "./TOOLS/OnBoard.obj" -llibc.a -l"/home/swdev/ti/simplelink/ble_cc26xx_2_01_01_44627/Projects/ble/SimpleBLECentral/CC26xx/IAR/Lib/CC2640Stack.a" -l"/home/swdev/ti/simplelink/ble_cc26xx_2_01_01_44627/Projects/ble/SimpleBLECentral/CC26xx/IAR/Lib/CC2640Stack_HCI_TL.a" -l"/home/swdev/ti/simplelink/ble_cc26xx_2_01_01_44627/Projects/common/BLE_ROM_Releases/04242014/ble_rom_PATCH.symbols" -l"/home/swdev/ti/tirtos_simplelink_2_13_00_06/products/cc26xxware_2_21_01_15600/driverlib/bin/ccs/driverlib.lib"
<Linking>
"/home/swdev/ti/simplelink/ble_cc26xx_2_01_01_44627/Projects/ble/common/cc26xx/CCS/cc26xx_ble_stack.cmd", line 103: error #10099-D: program will not fit into available memory. placement with alignment fails for section ".text" size 0x10978 . Available memory ranges:
FLASH size: 0xb000 unused: 0x87ce max hole: 0x87ce
error #10010: errors encountered during linking; "SimpleBLECentralStack.out" not built
gmake[1]: *** [SimpleBLECentralStack.out] Error 1
>> Compilation failure
makefile:189: recipe for target 'SimpleBLECentralStack.out' failed
gmake[1]: Target 'main-build' not remade because of errors.
gmake: *** [all] Error 2
makefile:181: recipe for target 'all' failed
**** Build Finished ****
May this be related to a difference between the Windows and Linux compilers (hopefully not!) or is there something I am missing?
Thank you,
Pibe