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.

LAUNCHXL-CC2640R2: TI-RTOS Remote Object Viewer using IAR plug-in with Simple_peripheral app fails to display task information

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

I am trying to use the TI-RTOS plug-in with IAR to view task information  on the simple_peripheral example project running on a LAUNCHXL_CC2640R2.

After selecting the basic task view ( TI_RTOS -> Tasks ->Basic), the following error message is displayed:

Target memory read failed at address: 0x20002044, length: 76

This read is at an INVALID address according to the application's section map. The application is likely either uninitialized or corrupt.

If there a way to view task information on IAR Embedded Workbench?

Version info:

BLE Stack Version 3.20.00.21

IAR Version 8.32.4

Custom Argument variable for XDC_ROOT  is $SIMPLELINK_CORE_SDK_INSTALL_DIR$\..\xdctools_3_51_03_28_core

  • The fix from the ROV chapter addressed the issue.  I chose the solution where the package file was modified.

    From the link:

    1. Apply the fix below to \kernel\tirtos\packages\ti\sysbios\heaps\package.xs
    2. function init()
      {
        /* Add HeapMem's primaryHeap addresses range to ROV's memory sections */
        if (xdc.om.$name == "rov") {
            var HeapMem = xdc.module('ti.sysbios.heaps.HeapMem');
      //        if (xdc.om['ti.sysbios.heaps'].HeapMem.$used) {
                var Program = xdc.useModule('xdc.rov.Program');
                var HeapMemCfg =  Program.getModuleConfig(HeapMem.$name);
                if  (HeapMemCfg.primaryHeapBaseAddr != null) {
                    var base = Program.getSymbolValue(HeapMemCfg.primaryHeapBaseAddr.substr(1));
                    var end = Program.getSymbolValue(HeapMemCfg.primaryHeapEndAddr.substr(1));
                    /* Retrieve the MemoryImage java object. */
                    var Model = xdc.module("xdc.rov.Model");
                    var memReader = Model.getMemoryImageInst();
      
                    /* retrieve the sections list and add a new section */
                    var sections = memReader.getSections();
                    sections.addSection(base, end-base);
                }
      //        }
                /* Retrieve the MemoryImage java object. */
                var Model = xdc.module("xdc.rov.Model");
                var memReader = Model.getMemoryImageInst();
      
                /* retrieve the sections list and add a new section */
                var sections = memReader.getSections();
      
                /* The follow variable is set to the end address of SRAM
                 *
                 * For CC2640R2 or CC26x0/CC13x0 this should be 0x20005000
                 * For CC13x2/CC26x2 this should be 0x20014000
                 */
                var memEnd = 0x20005000;
                sections.addSection(0x20000000, memEnd);
        }
      }