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.

CCS/LAUNCHXL-CC1352R1: ROV generally does not show much, most things have errors

Part Number: LAUNCHXL-CC1352R1
Other Parts Discussed in Thread: SYSBIOS

Tool/software: Code Composer Studio

Using CCS Version  8.0.0.00016 

Using SDK: simplelink_cc13x2_sdk_2_10_00_48

Import the project named: ble5_simple_central_cc13x2r1lp_app - out of the box- no modifications.

or any of the other BLE projects, this is my example project for discussion

Note: the "clock example" under sysbios just works.

Build and load the ble project, click RUN - the project is running - now click PAUSE

And try to view things using the ROV button - lots and lots of things just don't work. I would expect, using the out of box demo programs, to be able to view thing when running the BLE examples just like the Clock example.

Either I'm doing something very wrong, or something is broke.  Using this app as an example - can you explain how to see these things:

See the screen shot below for an example I tried to arrange them so most if/not all are visible

  • Hi Duane,

    I can verify this is an issue.

    I've raised this issue in the ROV developer team. I'll come back to you when I've heard from them.
  • Duane,

    The ROV team has resolved the issue and has the following explanation and workaround:

    • ROV requires a "valid memory map" for the application to prevent it from accessing addresses that don't exist; ROV reports this as a possible memory corruption (to avoid unbounded following of corrupted pointer values)
    • the valid memory map is obtained from two sources:
      • memory sections defined in the app.out file itself, and
      • memory sections explicitly added by TI-RTOS memory managers
    • this particular application, ble5_simple_central_cc13x2rlp_app, uses a memory manager (HeapCallback) that does not add the region of memory used by TI-RTOS
    • as a result, ROV is reports accesses to this memory as invalid.

    It appears that all BLE examples in simplelink_cc13x2_sdk_2_10_00_48 use the same heap configuration and, as with the example above, will cause ROV to fail. However, it appears that a common workaround should work for all examples: simply configure HeapMem.primaryHeapBaseAddr and HeapMem.primaryHeapEndAddr to delimit the "missing" memory region that's being managed by HeapCallback.

    NOTE: The following workaround will add about 128 bytes to the used flash, but should otherwise have no adverse effect.

    Specifically, edit the TOOLS/ble_release.cfg script to add the following lines:

    var HeapMem = xdc.module("ti.sysbios.heaps.HeapMem");
    HeapMem.primaryHeapBaseAddr = "&heapStart";
    HeapMem.primaryHeapEndAddr = "&heapEnd";

    immediately after the lines that configure HeapCallback and rebuild the application. At this point, ROV should work as expected. For the specific example that fails, add the lines in the following IF clause:

    else if (HEAPMGR_CONFIG === 0 || HEAPMGR_CONFIG === 0x80)
    {
        var HeapCallback = xdc.useModule('ti.sysbios.heaps.HeapCallback');
        // ... Code omitted
        Memory.defaultHeapInstance = Program.global.heap0;
    
        // Workaround to ensure ROV can read all of the app's memory
        var HeapMem = xdc.module("ti.sysbios.heaps.HeapMem");
        heapMem.primaryHeapBaseAddr = "&heapStart";
        HeapMem.primaryHeapEndAddr = "&heapEnd";