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/TMS320C6678: Module xdc.runtime.LoggerBuf is not present in ROV: ark_cpplab.out - C66xx_0

Part Number: TMS320C6678
Other Parts Discussed in Thread: SYSBIOS

Tool/software: Code Composer Studio

Hi,

I am trying to monitor the heap size via ROV but I get to see the below error message ...

Please let me know how to fix this ...

Regards

  • Hi,

    Please provide the detailed tools for this issue:

    - SYSBIOS version

    - XDC version

    - CCS version

    Also provide the .cfg file for the project. And, if you use ROV viewer classic can resolve the issue?

    Regards, Eric

  • Hi Eric,

    Below are more details ... the other thing is that I don't how to set the heap size for an OpenMP application but first thing first ...

    Thanks in advance ...

    lding said:

    Please provide the detailed tools for this issue:

    - SYSBIOS version

    - XDC version

    - CCS version

    - SYSBIOS : C:/ti/bios_6_76_02_02/packages

    - XDC C:/ti/ccs920/xdctools_3_60_01_27_core/

    - CCS : 9.2

    More details on package version follows: 

    Invoking: XDCtools
    "C:/ti/ccs920/xdctools_3_60_01_27_core/xs" --xdcpath="C:/ti/openmp_dsp_c667x_2_06_03_00/packages;C:/ti/pdk_c667x_2_0_15/packages;C:/ti/ctoolslib_2_2_0_0/packages;C:/ti/linalg_1_2_0_0/packages;C:/ti/edma3_lld_2_12_05_30C/packages;C:/ti/ipc_3_50_04_07/packages;C:/ti/libarch_1_0_0_0/packages;C:/ti/ndk_3_61_01_01/packages;C:/ti/bios_6_76_02_02/packages;C:/ti/uia_2_30_01_02/packages;C:/ti/xdais_7_24_00_04/packages;C:/ti/xdais_7_24_00_04/examples;C:/ti/openmp_dsp_c667x_2_06_03_00/packages/ti/runtime/openmp/platforms/evm6678;" xdc.tools.configuro  -o Debug/configPkg -t ti.targets.elf.C66 -p ti.runtime.openmp.platforms.evm6678 -r release -c "C:/ti/ccs920/ccs/tools/compiler/ti-cgt-c6000_8.3.6" "./omp_config.cfg"
    making package.mak (because of package.bld) ...
    generating interfaces for package configPkg (because package/package.xdc.inc is older than package.xdc) ...
    configuring omp_config.xe66 from package/cfg/omp_config_pe66.cfg ...
    Configuring OpenMP runtime for device: TMS320C6678
    generating custom ti.sysbios library makefile ...
    generating custom ti.sdo.utils library makefile ...
    generating custom ti.sdo.ipc library makefile ...
            Linking with library ti.drv.qmss:./lib/c66/ti.drv.qmss.ae66
            Linking with library ti.csl:./lib/c6678/c66/release/ti.csl.ae66
    Starting build of library sources ...
    making C:/Users/Mehdi-laptop/workspace_v9_2/ark_cpplab/src/ipc.ae66 ...
    making C:/Users/Mehdi-laptop/workspace_v9_2/ark_cpplab/src/utils.ae66 ...
    making C:/Users/Mehdi-laptop/workspace_v9_2/ark_cpplab/src/sysbios/sysbios.ae66 ...
    Build of libraries done.

    lding said:

    Also provide the .cfg file for the project. And, if you use ROV viewer classic can resolve the issue?

    Regards, Eric

    /*
     * Copyright (c) 2012-2015, Texas Instruments Incorporated
     * All rights reserved.
     *
     * Redistribution and use in source and binary forms, with or without
     * modification, are permitted provided that the following conditions
     * are met:
     *
     * *  Redistributions of source code must retain the above copyright
     *    notice, this list of conditions and the following disclaimer.
     *
     * *  Redistributions in binary form must reproduce the above copyright
     *    notice, this list of conditions and the following disclaimer in the
     *    documentation and/or other materials provided with the distribution.
     *
     * *  Neither the name of Texas Instruments Incorporated nor the names of
     *    its contributors may be used to endorse or promote products derived
     *    from this software without specific prior written permission.
     *
     * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
     * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
     * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
     * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
     * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
     * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
     * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
     * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
     * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
     * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
     * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     */
    
    
    /***************************/
    /* SECTION MAPPING         */
    /***************************/
    var program = xdc.useModule('xdc.cfg.Program');
    var BIOS = xdc.useModule('ti.sysbios.BIOS');
    var Memory = xdc.useModule('xdc.runtime.Memory');
    program.sectMap[".args"]        = new Program.SectionSpec();
    program.sectMap[".bss"]         = new Program.SectionSpec();
    program.sectMap[".cinit"]       = new Program.SectionSpec();
    program.sectMap[".cio"]         = new Program.SectionSpec();
    program.sectMap[".const"]       = new Program.SectionSpec();
    program.sectMap[".data"]        = new Program.SectionSpec();
    program.sectMap[".far"]         = new Program.SectionSpec();
    program.sectMap[".fardata"]     = new Program.SectionSpec();
    program.sectMap[".neardata"]    = new Program.SectionSpec();
    program.sectMap[".rodata"]      = new Program.SectionSpec();
    program.sectMap[".stack"]       = new Program.SectionSpec();
    program.sectMap[".switch"]      = new Program.SectionSpec();
    program.sectMap[".sysmem"]      = new Program.SectionSpec();
    program.sectMap[".text"]        = new Program.SectionSpec();
    Program.sectMap["systemHeap"]	= new Program.SectionSpec();
    
    // Must place these sections in core local memory 
    program.sectMap[".args"].loadSegment        = "L2SRAM";
    program.sectMap[".cio"].loadSegment         = "L2SRAM";
    
    // Variables in the following data sections can potentially be 'shared' in
    // OpenMP. These sections must be placed in shared memory.
    program.sectMap[".bss"].loadSegment         = "DDR3";
    program.sectMap[".cinit"].loadSegment       = "DDR3";
    program.sectMap[".const"].loadSegment       = "DDR3";
    program.sectMap[".data"].loadSegment        = "DDR3";
    program.sectMap[".far"].loadSegment         = "DDR3";
    program.sectMap[".fardata"].loadSegment     = "DDR3";
    program.sectMap[".neardata"].loadSegment    = "DDR3";
    program.sectMap[".rodata"].loadSegment      = "DDR3";
    program.sectMap[".sysmem"].loadSegment      = "DDR3";
    Program.sectMap["systemHeap"].loadSegment	= "DDR3";
    
    // Code sections shared by cores - place in shared memory to avoid duplication
    program.sectMap[".switch"].loadSegment      = program.platform.codeMemory;
    program.sectMap[".text"].loadSegment        = program.platform.codeMemory;
    
    // Size the default stack and place it in L2SRAM 
    var deviceName = String(Program.cpu.deviceName);
    if  (deviceName.search("DRA7XX") == -1) { program.stack = 0x20000; } 
    else                                    { program.stack = 0x8000;  }
    program.sectMap[".stack"].loadSegment       = "L2SRAM";
    
    // Since there are no arguments passed to main, set .args size to 0
    program.argSize = 0;
    
    
    // set heap system size
    //BIOS.heapSize = null;
    //BIOS.heapSection = "systemHeap";
    //BIOS.heapSize = 200*1024*1024;
    
    /********************************/
    /* OPENMP RUNTIME CONFIGURATION */
    /********************************/
    
    // Include OMP runtime in the build
    var ompSettings = xdc.useModule("ti.runtime.openmp.Settings");
    
    // Set to true if the application uses or has dependencies on BIOS components
    ompSettings.usingRtsc = true;
    
    if (ompSettings.usingRtsc)
    {
        /* Configure OpenMP for BIOS
         * - OpenMP.configureCores(masterCoreId, numberofCoresInRuntime)
         *       Configures the id of the master core and the number of cores
         *       available to the runtime.
         */
    
        var OpenMP = xdc.useModule('ti.runtime.ompbios.OpenMP');
    
        // Configure the index of the master core and the number of cores available
        // to the runtime. The cores are contiguous.
        OpenMP.masterCoreIdx = 0;
    
        // Setup number of cores based on the device
        if      (deviceName.search("DRA7XX") != -1) { OpenMP.numCores = 2; }
        else if (deviceName.search("6670")   != -1) { OpenMP.numCores = 4; }
        else if (deviceName.search("6657")   != -1) { OpenMP.numCores = 2; }
        else if (deviceName.search("K2L")    != -1) { OpenMP.numCores = 4; }
        else                                        { OpenMP.numCores = 8; }
    
        // Pull in memory ranges described in Platform.xdc to configure the runtime
        var ddr3       = Program.cpu.memoryMap["DDR3"];
        var ddr3_nc    = Program.cpu.memoryMap["DDR3_NC"];
        var msmc       = Program.cpu.memoryMap["MSMCSRAM"];
        var msmcNcVirt = Program.cpu.memoryMap["OMP_MSMC_NC_VIRT"];
        var msmcNcPhy  = Program.cpu.memoryMap["OMP_MSMC_NC_PHY"];
    
     	// BIOS.heapSize = 0x18;
    	// BIOS.heapSection = "systemHeap";
    
        // Initialize the runtime with memory range information
        if (deviceName.search("DRA7XX") == -1) {
           OpenMP.msmcBase = msmc.base
           OpenMP.msmcSize = msmc.len;
    
           OpenMP.msmcNoCacheVirtualBase  = msmcNcVirt.base;
           OpenMP.msmcNoCacheVirtualSize  = msmcNcVirt.len;
    
           OpenMP.msmcNoCachePhysicalBase  = msmcNcPhy.base;
        }
        else
        {
           OpenMP.allocateStackFromHeap = true;
           OpenMP.allocateStackFromHeapSize = 0x010000;
    
           OpenMP.hasMsmc = false;
           OpenMP.ddrNoCacheBase = ddr3_nc.base;
           OpenMP.ddrNoCacheSize = ddr3_nc.len;
        }
    	
        OpenMP.ddrBase          = ddr3.base;
        OpenMP.ddrSize          = ddr3.len;
    
        // Configure memory allocation using HeapOMP
        // HeapOMP handles 
        // - Memory allocation requests from BIOS components (core local memory)
        // - Shared memory allocation by utilizing the IPC module to enable 
        //   multiple cores to allocate memory out of the same heap - used by malloc
        if (deviceName.search("DRA7XX") == -1) {
           var HeapOMP = xdc.useModule('ti.runtime.ompbios.HeapOMP');
    
           // Shared Region 0 must be initialized for IPC 
           var sharedRegionId = 0;
    
           // Size of the core local heap
           var localHeapSize  = 0x8000;
    
           // Size of the heap shared by all the cores
           // var sharedHeapSize = 0x08000000;
           // var sharedHeapSize = 1024*1024*380;
           var sharedHeapSize = 0x08000;
    
           // Initialize a Shared Region & create a heap in the DDR3 memory region
           var SharedRegion   = xdc.useModule('ti.sdo.ipc.SharedRegion');
           SharedRegion.setEntryMeta( sharedRegionId,
                                      {   base: ddr3.base,
                                          len:  sharedHeapSize,
                                          ownerProcId: OpenMP.masterCoreIdx,
                                          cacheEnable: true,
                                          createHeap: true,
                                          isValid: true,
                                          name: "DDR3_SR0",
                                      });
    
           // Configure and setup HeapOMP
           HeapOMP.configure(sharedRegionId, localHeapSize);
        }
        else
        {
           OpenMP.useIpcSharedHeap = false;
           OpenMP.allocateLocalHeapSize = 0x8000
           OpenMP.allocateSharedHeapSize = 0x00800000
        }
    
        
        var Startup = xdc.useModule('xdc.runtime.Startup');
        Startup.lastFxns.$add('&__TI_omp_initialize_rtsc_mode');
    }
    else
    {
        /* Size the heap. It must be placed in shared memory */
        program.heap = sharedHeapSize;
    }
    
    BIOS.libType = BIOS.LibType_Custom;
    BIOS.customCCOpts = "-mv6600 --abi=eabi -q -mi10 -mo -pdr -pden -pds=238 -pds=880 -pds1110  --program_level_compile -o3 -g";
    BIOS.runtimeCreatesEnabled = true;
    BIOS.heapTrackEnabled = true;
    
    
    /* Create heap as global variable so it can be used in C code */
    var HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');
    var heapMemParams = new HeapMem.Params();
    heapMemParams.size = 1024*1024*(512-180);
    heapMemParams.instance.name = "myHeap";
    heapMemParams.sectionName = "systemHeap";
    Program.global.myHeap = HeapMem.create(heapMemParams);
    Program.sectMap["myHeap"] = "DDR3";
    Program.sectMap["systemHeap"].loadSegment	= "DDR3";
    Memory.defaultHeapInstance = Program.global.myHeap;
    
    
    

  • Hi Mike,

    It looks like you had LoggerBuf in your application (e.g. it was in the .cfg file). You had ROV open and was viewing it. Then you removed LoggerBuf from your application, rebuilt it, abd reloaded it (or loaded a different application that did not have LoggerBuf). When ROV tried to restore the environment, it saw that LoggerBuf is not in the application, so it gave the warning. You can just close the warning.

    Todd