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.

How to add OAD to Project Zero

Other Parts Discussed in Thread: BLE-STACK, CC2640, CC2650

I repeated OAD on simple_peripheral cc2650lp how explained in Over-the-Air Download User’s Guide For BLE-Stack™ Version: 2.2.0 and it works.
But when I try use OAD in Project zero I get an error

<Linking>
"c:/ti/simplelink/ble_sdk_2_02_00_31/src/common/cc26xx/ccs/cc26xx_app.cmd", line 98: error #10264: FLASH memory range overlaps existing memory range IMAGE_HEADER
"c:/ti/simplelink/ble_sdk_2_02_00_31/src/common/cc26xx/ccs/cc26xx_app.cmd", line 98: error #10263: FLASH memory range has already been specified
"c:/ti/simplelink/ble_sdk_2_02_00_31/src/common/cc26xx/ccs/cc26xx_app.cmd", line 98: error #10264: FLASH memory range overlaps existing memory range FLASH
"c:/ti/simplelink/ble_sdk_2_02_00_31/src/common/cc26xx/ccs/cc26xx_app.cmd", line 109: error #10263: SRAM memory range has already been specified
"c:/ti/simplelink/ble_sdk_2_02_00_31/src/common/cc26xx/ccs/cc26xx_app.cmd", line 109: error #10264: SRAM memory range overlaps existing memory range SRAM
"c:/ti/simplelink/ble_sdk_2_02_00_31/src/common/cc26xx/ccs/cc26xx_app.cmd", line 146: warning #10190-D: absolute symbol "__STACK_TOP" being redefined
"c:/ti/simplelink/ble_sdk_2_02_00_31/src/common/cc26xx/ccs/cc26xx_app.cmd", line 139: warning #10190-D: absolute symbol "heapStart" being redefined
"c:/ti/simplelink/ble_sdk_2_02_00_31/src/common/cc26xx/ccs/cc26xx_app.cmd", line 141: warning #10190-D: absolute symbol "heapEnd" being redefined
"c:/ti/simplelink/ble_sdk_2_02_00_31/src/common/cc26xx/ccs/cc26xx_app.cmd", line 146: warning #10190-D: absolute symbol "__STACK_TOP" being redefined
"c:/ti/simplelink/ble_sdk_2_02_00_31/src/common/cc26xx/ccs/cc26xx_app.cmd", line 139: warning #10190-D: absolute symbol "heapStart" being redefined
"c:/ti/simplelink/ble_sdk_2_02_00_31/src/common/cc26xx/ccs/cc26xx_app.cmd", line 141: warning #10190-D: absolute symbol "heapEnd" being redefined
"C:/ti/simplelink/ble_sdk_2_02_00_31/src/common/cc26xx/ccs/cc26xx_app_oad.cmd", line 125: error #10099-D: program will not fit into available memory. placement with alignment fails for section ".const" size 0x1c10 . Available memory ranges:
FLASH size: 0xf000 unused: 0x1bee max hole: 0x1010
"c:/ti/simplelink/ble_sdk_2_02_00_31/src/common/cc26xx/ccs/cc26xx_app.cmd", line 146: warning #10190-D: absolute symbol "__STACK_TOP" being redefined
"c:/ti/simplelink/ble_sdk_2_02_00_31/src/common/cc26xx/ccs/cc26xx_app.cmd", line 139: warning #10190-D: absolute symbol "heapStart" being redefined
"c:/ti/simplelink/ble_sdk_2_02_00_31/src/common/cc26xx/ccs/cc26xx_app.cmd", line 141: warning #10190-D: absolute symbol "heapEnd" being redefined
error #10010: errors encountered during linking; "project_zero_app_cc2650launchxl.out" not built
gmake: *** [project_zero_app_cc2650launchxl.out] Error 1

This error in the "cc26xx_app.cmd" file, but I exclude the file from the compilation.
p.s. I'm sorry for my English
  • The problem was solved when I selected Project→Properties→Build→ARM Linker→File Search Patch and deleted "${TI_BLE_SDK_BASE}/src/common/cc26xx/ccs/cc26xx_app.cmd"

  • Good to hear your solved the issue!

    Just for people who find this thread in the future - the issues Roman got were due to the linker including the cc26xx_app.cmd file multiple times.

    Regards,
    -Rebel
  • Thank you, Rebel

    Now I have another problem, when I start my application I have an error: "Undefined Hwi: 117", Maybe I made a mistake when working with BIM? How I can check the interrupt vector tables?

  • Obviously, I have problems with linker, because when I build and download app+stack without OAD I get:

    But when I build and download bim+app+stack I get:

    Where i should find mistake?

  • I forgot noted I use external memory Macronics MX25R1635F
    Anybody can help me?
  • If you already success on making the OAD with simple_peripheral project. Why not just move the new profile you want from project_zero to your simple_peripheral?
  • Thank you for your interest, Christin.
    I'm sorry but not only I work under this project. I want to know how add new mode in existing project.

  •  Project→Properties→Build→Link Order

    Here is important the order of files: 1)TOOLS/ccs_linker_defines.cmd 2) TOOLS/cc26xx_app_oad.cmd

  • Hi Roman,

    To enable OAD at Project Zero, did you also Un-check the "Exclude From Build" oad.c and oad_target_external.h? If I do that I get this error below.

    #1965 cannot open source file "oad_constants.h" oad.c /project_zero_app_cc2650launchxl/PROFILES line 65 C/C++ Problem

    - kel
  • Hi, Markel!

    Yes, you should  un-check the "Exclude From Build" oad.c and oad_target_external.h.

    Read "Over-the-Air Download User’s Guide" -> 8.4.3.2 Building the Application Image using CCS if you use CCS

  • Hi Roman,

        I followed that part of the guide. I had to change "${SRC_EX}/profiles/oad/cc26xx" to "${TI_BLE_SDK_BASE}/src/profiles/oad/cc26xx". After that it build without errors. Then I proceeded to add the changes you mentioned in this post. After that I got all this build errors and warnings. Any ideas what could have caused this? My initial guess is that I should exclude cc26xx_app.cmd from build.

    Description Resource Path Location Type
    #10263 FLASH memory range has already been specified cc26xx_app.cmd /project_zero_app_cc2650launchxl/TOOLS line 98 C/C++ Problem
    #10263 SRAM memory range has already been specified cc26xx_app.cmd /project_zero_app_cc2650launchxl/TOOLS line 109 C/C++ Problem
    #10264 FLASH memory range overlaps existing memory range FLASH cc26xx_app.cmd /project_zero_app_cc2650launchxl/TOOLS line 98 C/C++ Problem
    #10264 FLASH memory range overlaps existing memory range IMAGE_HEADER cc26xx_app.cmd /project_zero_app_cc2650launchxl/TOOLS line 98 C/C++ Problem
    #10264 SRAM memory range overlaps existing memory range SRAM cc26xx_app.cmd /project_zero_app_cc2650launchxl/TOOLS line 109 C/C++ Problem
    error limit reached; 100 errors detected error limit reached; 100 errors detected project_zero_app_cc2650launchxl C/C++ Problem

    Description Resource Path Location Type
    #10190-D absolute symbol "__STACK_TOP" being redefined cc26xx_app.cmd /project_zero_app_cc2650launchxl/TOOLS line 146 C/C++ Problem
    #10190-D absolute symbol "heapEnd" being redefined cc26xx_app.cmd /project_zero_app_cc2650launchxl/TOOLS line 141 C/C++ Problem
    #10190-D absolute symbol "heapStart" being redefined cc26xx_app.cmd /project_zero_app_cc2650launchxl/TOOLS line 139 C/C++ Problem

    - kel

  • Hi,

        I exclude to build src folder and cc26xx_app.cmd and the errors go away. I will test OAD when I receive my TI BLE USB Dongle next week.

    -kel

  • Hi,

    Regarding the bim_extflash project that need to be built according to the CC2640 OAD User's Guide. Did you need to change the Device Variant to CC2650 at Project Properties?

    - kel
  • Hi Roman,

    Did you exclude from build cc26xx_app.cmd? Because, at OAD User's Guide the instruction is to add it. However if I add it, is going to result in build errors?

    How did you exactly test the OAD for CC2650 Launchpad? I am doing this procedure below. But when I try to add app hex BLE Device Monitor OAD, it says no OAD header found.

    1. Using SmartRF Flash Programmer Erase and Program, bim_extflash.hex.
    2. Using BLE Device Monitor OAD program "project_zero_app_cc2650launchxl.hex" and also "project_zero_stack_cc2650.hex"

    I am reading E2E posts and it seems I would need to combine hex of app and stack, using post build steps.

    - kel