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.

SIMPLELINK-CC2640R2-SDK: v1.35 BLE 5 Error Building simple peripheral stack library with off-chip OAD code support?

Part Number: SIMPLELINK-CC2640R2-SDK
Other Parts Discussed in Thread: CC2640R2F, CC2650

Hi,

   I am followed the guide to add Off-Chip OAD to simple peripheral stack library. I am getting this Error while running build message. See, below. I think it is the configuro tool that is "error while running". How do I solve this error?

Error while running "C:\ti\simplelink_cc2640r2_sdk_1_35_00_33\examples\rtos\CC2640R2_LAUNCHXL\ble5stack\simple_peripheral\tirtos\iar\app/../../../../../../../../../xdctools_3_50_01_12_core/xs" --xdcpath="C:\ti\
simplelink_cc2640r2_sdk_1_35_00_33\examples\rtos\CC2640R2_LAUNCHXL\ble5stack\simple_peripheral\tirtos\iar\app/../../../../../../../../kernel/tirtos/packages;C:\ti\simplelink_cc2640r2_sdk_1_35_00_33\examples\rtos\
CC2640R2_LAUNCHXL\ble5stack\simple_peripheral\tirtos\iar\app/../../../../../../../../source;C:\ti\simplelink_cc2640r2_sdk_1_35_00_33\examples\rtos\CC2640R2_LAUNCHXL\ble5stack\simple_peripheral\tirtos\iar\
app/../../../../../../../../source/ti/ble5stack" iar.tools.configuro -c "C:\Program Files (x86)\IAR Systems\Embedded Workbench 8.0\arm" --cc "C:\Program Files (x86)\IAR Systems\Embedded Workbench 8.0\arm\bin\iccarm.exe"
--device "CC2640R2F" --compileOptions "dummy.c -D BOARD_DISPLAY_USE_LCD=0 -D BOARD_DISPLAY_USE_UART=1 -D BOARD_DISPLAY_USE_UART_ANSI=1 -D CC2640R2_LAUNCHXL -D FEATURE_OAD -D
HAL_IMAGE_E -D CC26XX -D CC26XX_R2 -D DEVICE_FAMILY=cc26x0r2 -D xDisplay_DISABLE_ALL -D HEAPMGR_SIZE=0 -D ICALL_EVENTS -D ICALL_JT -D ICALL_LITE -D ICALL_MAX_NUM_ENTITIES=6 -D
ICALL_MAX_NUM_TASKS=3 -D MAX_NUM_BLE_CONNS=1 -D POWER_SAVING -D STACK_LIBRARY -D TBM_ACTIVE_ITEMS_ONLY -D USE_CORE_SDK -D USE_ICALL -D xdc_runtime_Assert_DISABLE_ALL -D
xdc_runtime_Log_DISABLE_ALL --diag_suppress Pa050 -o C:\ti\simplelink_cc2640r2_sdk_1_35_00_33\examples\rtos\CC2640R2_LAUNCHXL\ble5stack\simple_peripheral\tirtos\iar\app\FlashROM_StackLibrary\Obj --debug
--endian=little --cpu=Cortex-M3 -f C:\ti\simplelink_cc2640r2_sdk_1_35_00_33\examples\rtos\CC2640R2_LAUNCHXL\ble5stack\simple_peripheral\tirtos\iar\app/../../../../../../../../source/ti/ble5stack/config/build_components.opt -f C:\ti\
simplelink_cc2640r2_sdk_1_35_00_33\examples\rtos\CC2640R2_LAUNCHXL\ble5stack\simple_peripheral\tirtos\iar\app/../../../../../../../../source/ti/ble5stack/config/factory_config.opt -f C:\ti\simplelink_cc2640r2_sdk_1_35_00_33\
examples\rtos\CC2640R2_LAUNCHXL\ble5stack\simple_peripheral\tirtos\iar\app\..\stack\build_config.opt -f C:\ti\simplelink_cc2640r2_sdk_1_35_00_33\examples\rtos\CC2640R2_LAUNCHXL\ble5stack\simple_peripheral\tirtos\iar\
app\..\config\configPkg\compiler.opt.defs -f C:\ti\simplelink_cc2640r2_sdk_1_35_00_33\examples\rtos\CC2640R2_LAUNCHXL\ble5stack\simple_peripheral\tirtos\iar\app\..\config\iar_boundary.bdef -e --fpu=None --dlib_config \"C:\
Program Files (x86)\IAR Systems\Embedded Workbench 8.0\arm\INC\c\DLib_Config_Normal.h\" -I C:\ti\simplelink_cc2640r2_sdk_1_35_00_33\examples\rtos\CC2640R2_LAUNCHXL\ble5stack\simple_peripheral\tirtos\iar\
app/../../../../../../../../source/ti/ble5stack/controller/cc26xx_r2/inc\ -I C:\ti\simplelink_cc2640r2_sdk_1_35_00_33\examples\rtos\CC2640R2_LAUNCHXL\ble5stack\simple_peripheral\tirtos\iar\
app/../../../../../../../../source/ti/ble5stack/inc\ -I C:\ti\simplelink_cc2640r2_sdk_1_35_00_33\examples\rtos\CC2640R2_LAUNCHXL\ble5stack\simple_peripheral\tirtos\iar\app/../../../../../../../../source/ti/ble5stack/common/cc26xx\ -I
C:\ti\simplelink_cc2640r2_sdk_1_35_00_33\examples\rtos\CC2640R2_LAUNCHXL\ble5stack\simple_peripheral\tirtos\iar\app/../../../src/app\ -I C:\ti\simplelink_cc2640r2_sdk_1_35_00_33\examples\rtos\CC2640R2_LAUNCHXL\
ble5stack\simple_peripheral\tirtos\iar\app/../../../../../../../../source/ti/ble5stack/icall/inc\ -I C:\ti\simplelink_cc2640r2_sdk_1_35_00_33\examples\rtos\CC2640R2_LAUNCHXL\ble5stack\simple_peripheral\tirtos\iar\
app/../../../../../../../../source/ti/ble5stack/inc\ -I C:\ti\simplelink_cc2640r2_sdk_1_35_00_33\examples\rtos\CC2640R2_LAUNCHXL\ble5stack\simple_peripheral\tirtos\iar\app/../../../../../../../../source/ti/ble5stack/profiles/dev_info\ -I
C:\ti\simplelink_cc2640r2_sdk_1_35_00_33\examples\rtos\CC2640R2_LAUNCHXL\ble5stack\simple_peripheral\tirtos\iar\app/../../../../../../../../source/ti/ble5stack/profiles/roles\ -I C:\ti\simplelink_cc2640r2_sdk_1_35_00_33\
examples\rtos\CC2640R2_LAUNCHXL\ble5stack\simple_peripheral\tirtos\iar\app/../../../../../../../../source/ti/ble5stack/profiles/roles/cc26xx\ -I C:\ti\simplelink_cc2640r2_sdk_1_35_00_33\examples\rtos\CC2640R2_LAUNCHXL\
ble5stack\simple_peripheral\tirtos\iar\app/../../../../../../../../source/ti/ble5stack/profiles/oad/cc26xx\ -I C:\ti\simplelink_cc2640r2_sdk_1_35_00_33\examples\rtos\CC2640R2_LAUNCHXL\ble5stack\simple_peripheral\tirtos\iar\
app/../../../../../../../../source/ti/ble5stack/profiles/simple_profile\ -I C:\ti\simplelink_cc2640r2_sdk_1_35_00_33\examples\rtos\CC2640R2_LAUNCHXL\ble5stack\simple_peripheral\tirtos\iar\
app/../../../../../../../../source/ti/ble5stack/profiles/simple_profile/cc26xx\ -I C:\ti\simplelink_cc2640r2_sdk_1_35_00_33\examples\rtos\CC2640R2_LAUNCHXL\ble5stack\simple_peripheral\tirtos\iar\
app/../../../../../../../../source/ti/ble5stack/target\ -I C:\ti\simplelink_cc2640r2_sdk_1_35_00_33\examples\rtos\CC2640R2_LAUNCHXL\ble5stack\simple_peripheral\tirtos\iar\app/../../../../../../../../source/ti/ble5stack/hal/src/inc\ -I C:\
ti\simplelink_cc2640r2_sdk_1_35_00_33\examples\rtos\CC2640R2_LAUNCHXL\ble5stack\simple_peripheral\tirtos\iar\app/../../../../../../../../source/ti/ble5stack/hal/src/target/_common\ -I C:\ti\simplelink_cc2640r2_sdk_1_35_00_33\
examples\rtos\CC2640R2_LAUNCHXL\ble5stack\simple_peripheral\tirtos\iar\app/../../../../../../../../source/ti/ble5stack/hal/src/target/_common/cc26xx\ -I C:\ti\simplelink_cc2640r2_sdk_1_35_00_33\examples\rtos\
CC2640R2_LAUNCHXL\ble5stack\simple_peripheral\tirtos\iar\app/../../../../../../../../source/ti/ble5stack/hal/src/target/cc2650/rom\ -I C:\ti\simplelink_cc2640r2_sdk_1_35_00_33\examples\rtos\CC2640R2_LAUNCHXL\ble5stack\
simple_peripheral\tirtos\iar\app/../../../../../../../../source/ti/ble5stack/heapmgr\ -I C:\ti\simplelink_cc2640r2_sdk_1_35_00_33\examples\rtos\CC2640R2_LAUNCHXL\ble5stack\simple_peripheral\tirtos\iar\
app/../../../../../../../../source/ti/ble5stack/icall/src/inc\ -I C:\ti\simplelink_cc2640r2_sdk_1_35_00_33\examples\rtos\CC2640R2_LAUNCHXL\ble5stack\simple_peripheral\tirtos\iar\
app/../../../../../../../../source/ti/ble5stack/osal/src/inc\ -I C:\ti\simplelink_cc2640r2_sdk_1_35_00_33\examples\rtos\CC2640R2_LAUNCHXL\ble5stack\simple_peripheral\tirtos\iar\
app/../../../../../../../../source/ti/ble5stack/services/src/saddr\ -I C:\ti\simplelink_cc2640r2_sdk_1_35_00_33\examples\rtos\CC2640R2_LAUNCHXL\ble5stack\simple_peripheral\tirtos\iar\
app/../../../../../../../../source/ti/ble5stack/services/src/sdata\ -I C:\ti\simplelink_cc2640r2_sdk_1_35_00_33\examples\rtos\CC2640R2_LAUNCHXL\ble5stack\simple_peripheral\tirtos\iar\
app/../../../../../../../../source/ti/devices/cc26x0r2\ -I C:\ti\simplelink_cc2640r2_sdk_1_35_00_33\examples\rtos\CC2640R2_LAUNCHXL\ble5stack\simple_peripheral\tirtos\iar\app/../../../../../../../../source/ti/mw/extflash\ -I C:\ti\
simplelink_cc2640r2_sdk_1_35_00_33\examples\rtos\CC2640R2_LAUNCHXL\ble5stack\simple_peripheral\tirtos\iar\app/../../../../../../../..\source\ -Ohz" --linkOptions "-o C:\ti\simplelink_cc2640r2_sdk_1_35_00_33\examples\rtos\
CC2640R2_LAUNCHXL\ble5stack\simple_peripheral\tirtos\iar\app\FlashROM_StackLibrary\Exe\ble5_simple_peripheral_cc2640r2lp_app_FlashROM_StackLibrary.out --config_def CC2650=2 --config_def FLASH_ROM_BUILD=2
--map C:\ti\simplelink_cc2640r2_sdk_1_35_00_33\examples\rtos\CC2640R2_LAUNCHXL\ble5stack\simple_peripheral\tirtos\iar\app\FlashROM_StackLibrary\List\
ble5_simple_peripheral_cc2640r2lp_app_FlashROM_StackLibrary.map --config C:\ti\simplelink_cc2640r2_sdk_1_35_00_33\examples\rtos\CC2640R2_LAUNCHXL\ble5stack\simple_peripheral\tirtos\iar\
app/../../../../../../../../source/ti/ble5stack/common/cc26xx/iar/cc26xx_app_and_stack.icf --keep __vector_table -f C:\ti\simplelink_cc2640r2_sdk_1_35_00_33\examples\rtos\CC2640R2_LAUNCHXL\ble5stack\simple_peripheral\tirtos\
iar\app\..\config\configPkg\linker.cmd -f C:\ti\simplelink_cc2640r2_sdk_1_35_00_33\examples\rtos\CC2640R2_LAUNCHXL\ble5stack\simple_peripheral\tirtos\iar\app\..\config\iar_boundary.xcl -f C:\ti\
simplelink_cc2640r2_sdk_1_35_00_33\examples\rtos\CC2640R2_LAUNCHXL\ble5stack\simple_peripheral\tirtos\iar\app/../config/lib_linker.cmd C:\ti\simplelink_cc2640r2_sdk_1_35_00_33\examples\rtos\CC2640R2_LAUNCHXL\
ble5stack\simple_peripheral\tirtos\iar\app\..\config\ble_r2.symbols C:\ti\simplelink_cc2640r2_sdk_1_35_00_33\examples\rtos\CC2640R2_LAUNCHXL\ble5stack\simple_peripheral\tirtos\iar\app/../../../../../../../..\source\ti\devices\
cc26x0r2\driverlib\bin\iar\driverlib.lib C:\ti\simplelink_cc2640r2_sdk_1_35_00_33\examples\rtos\CC2640R2_LAUNCHXL\ble5stack\simple_peripheral\tirtos\iar\app/../../../../../../../..\kernel\tirtos\packages\ti\dpl\lib\
dpl_cc26x0r2.arm3 C:\ti\simplelink_cc2640r2_sdk_1_35_00_33\examples\rtos\CC2640R2_LAUNCHXL\ble5stack\simple_peripheral\tirtos\iar\app/../../../../../../../..\source\ti\drivers\lib\drivers_cc26x0r2.arm3 C:\ti\
simplelink_cc2640r2_sdk_1_35_00_33\examples\rtos\CC2640R2_LAUNCHXL\ble5stack\simple_peripheral\tirtos\iar\app/../../../../../../../..\source\ti\drivers\rf\lib\rf_singleMode_cc26x0r2.arm3 C:\ti\
simplelink_cc2640r2_sdk_1_35_00_33\examples\rtos\CC2640R2_LAUNCHXL\ble5stack\simple_peripheral\tirtos\iar\app/../../../../../../../..\source\ti\display\lib\display.arm3 --entry __iar_program_start --vfe --text_out locale" --profile
release --projFile "C:\ti\simplelink_cc2640r2_sdk_1_35_00_33\examples\rtos\CC2640R2_LAUNCHXL\ble5stack\simple_peripheral\tirtos\iar\app\cc2640r2lp_app.ewp" --cfgArgs NO_ROM=0OAD_IMG_E=1

Total number of errors: 1
Total number of warnings: 0

- kel

  • Never mind the above error message. There needs to be a comma "," separator between NO_ROM=0 and OAD_IMG_E=1. At the guide the comma "," separator cannot be seen. Anyway I got this new error following the guide.

    Error[Lc037]: ambiguous section match: "ro data section .intvec in app_ble_prm3.orm3 symbols: [__vector_table]" matches more than one pattern
    "ro section .intvec" (at line 267 of "C:\ti\simplelink_cc2640r2_sdk_1_35_00_33\examples\rtos\CC2640R2_LAUNCHXL\ble5stack\simple_peripheral\tirtos\iar\
    app/../../../../../../../../source/ti/ble5stack/common/cc26xx/iar/cc26xx_app_and_stack.icf")
    "ro section .intvec" (at line 283 of "C:\ti\simplelink_cc2640r2_sdk_1_35_00_33\examples\rtos\CC2640R2_LAUNCHXL\ble5stack\simple_peripheral\tirtos\iar\
    app/../../../../../../../../source/ti/ble5stack/common/cc26xx/iar/cc26xx_app_and_stack.icf")
    Error while running Linker

    Here are my code changes based from the guide:

    ////////////////////////////////////////////////////////////////////////////////
    // Memory Regions
    ////////////////////////////////////////////////////////////////////////////////
    
    define memory mem with size = 4G;
    
    define region RAM                 = mem:[from RAM_START   to RAM_END];
    define region FLASH_LAST_PAGE     = mem:[from(FLASH_SIZE) - PAGE_SIZE to FLASH_SIZE-1];
    define region FLASH               = mem:[from FLASH_START to FLASH_END];
    define region FLASH_ALL           = mem:[from FLASH_START to FLASH_END] |
                                             FLASH_LAST_PAGE;
    if ( isdefinedsymbol(CACHE_AS_RAM) )
    {
       define region GPRAM               = mem:[from GPRAM_START to GPRAM_END];
    }
    
    ////////////////////////////////////////////////////////////////////////////////
    // Memory Placement
    ////////////////////////////////////////////////////////////////////////////////
    
    // Code and RO Data
    // added by markel
    place in FLASH { readonly };
    
    define symbol INT_VEC_SIZE    = 64;
    define symbol OAD_HDR_START   = FLASH_START;
    // OAD specific
    define symbol OAD_HDR_SIZE  = 16; // Size of metadata vector
    define symbol INT_VEC_START   = OAD_HDR_START + OAD_HDR_SIZE;
    define symbol OAD_FLASH_START = INT_VEC_START + INT_VEC_SIZE;
    define symbol INT_VEC_END     = INT_VEC_START + INT_VEC_SIZE - 1;
    
    define region INT_VEC   = mem:[from INT_VEC_START to INT_VEC_END];
    
    // Interrupt Vector Table
    place at start of INT_VEC       { readonly section .intvec };
    keep                            { readonly section .intvec };
    
    define symbol OAD_HDR_END     = OAD_HDR_START + OAD_HDR_SIZE - 1;
    
    //added by markel end
    
    // CCFG
    //place at end of FLASH_LAST_PAGE { readonly section .ccfg };
    //keep { section .ccfg };
    
    // Interrupt Vector Table
    place at address mem:FLASH_START { readonly section .intvec };
    keep                             { readonly section .intvec };
    
    // SNV Area
    define block SNVSECT with alignment=PAGE_SIZE { ro section .snvSectors };
    place at end of FLASH { block SNVSECT };

    
    

    When I click the error messages the mouse cursor goes to these code lines below

    place at start of INT_VEC       { readonly section .intvec };
    
    define block SNVSECT with alignment=PAGE_SIZE { ro section .snvSectors };

    - kel

  • I commented out the second "Interrupt Vector Table" code lines and the error was resolved. But, I am not entirely sure if that is the right solution.

    // Interrupt Vector Table
    //place at address mem:FLASH_START { readonly section .intvec };
    //keep { readonly section .intvec };

    Then I add the post build steps to generate production bin and I get this error below. I copy the post build steps from the document guide.

    Error while running C:\ti\simplelink_cc2640r2_sdk_1_35_00_33\examples\rtos\CC2640R2_LAUNCHXL\ble5stack\simple_peripheral\tirtos\iar\app/../../../../../../../../tools/ble5stack\oad\oad_image_tool.exe C:\ti\
    simplelink_cc2640r2_sdk_1_35_00_33\examples\rtos\CC2640R2_LAUNCHXL\ble5stack\simple_peripheral\tirtos\iar\app\FlashROM_OAD_Offchip\Exe\ble5_simple_peripheral_cc2640r2lp_app_FlashROM_StackLibrary.hex -t offchip
    -i app --imgVer 0 -ob C:\ti\simplelink_cc2640r2_sdk_1_35_00_33\examples\rtos\CC2640R2_LAUNCHXL\ble5stack\simple_peripheral\tirtos\iar\app\FlashROM_OAD_Offchip\Exe\
    ble5_simple_peripheral_cc2640r2lp_app_FlashROM_StackLibrary.bin -m 0x0000 --r 0x0000

    How do I solve this error. I installed the SDK v1.35 at default c:\ti

    - kel

  • Hi TI,

        I modified the paths at post build steps and able to generate .bin file even if If there is still error.

        Using SmartRF Flash Programmer 2 I program the hex files of bim oad off chip and my application. I set this BD Address below at my application so I can see the BD Address at BTool.

    // Hard code the BD Address

       uint8 bdAddress[B_ADDR_LEN] = { 0xAD, 0xD0, 0x0A, 0xAD, 0xD0, 0x0A };

       HCI_EXT_SetBDADDRCmd(bdAddress);

       After scanning for device at BTool, I am not able to see the above BD Address. I think I followed the guide correctly. I am not that confident though with my fix at linker file as mentioned in this post.

       Is it correct to just program the hex files of bim oad off chip and my application? Can anyone re-confirm the guide at the document and see if it works for the current SDK v1.35?

       Also, after applying all the changes, I am not able to debug anymore. I get a "Failed to clear break error".

    - kel

    - kel

  • Hello,

    Are you setting the BDADDR before starting ADV? Are you seeing the TI-default BDADDR?

    Best wishes
  • Hi JXS,

    I set the BDADDR after ICall_registerApp. I do not see the default TI CC2640R2F BDADDR. I think the procedure is not updated for the current linker file, because I get an error. At the moment I am abandoning this approach to implement the OAD at our CC2640R2F product. I am using the Off-Chip OAD Split Type Example instead. But, I would like to know if the procedure works or not for current SDK v1.35.

    - kel