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: ROV - can't get swiLoad and hwiLoad enabled

Other Parts Discussed in Thread: SYSBIOS

Tool/software: Code Composer Studio

Hello,

I've tried many things, but can't quite get the hwiLoad and swiLoad enabled, for ROV.  Attached is a picture that shows, and below my .cfg entries that I thought would do it.

Please advise,

Robert


var Load = xdc.useModule( 'ti.sysbios.utils.Load' );

Load.updateInIdle = true;
Load.windowInMs = 250;
Load.taskEnabled = true;
Load.swiEnabled = true;
Load.hwiEnabled = true;

  • Hi Robert,

    Are you using LoggingSetup also? If so, what is its configuration? I'm thinking it might be overriding your explicit settings.

    Todd
  • ToddMullanix said:
    Hi Robert,

    Are you using LoggingSetup also? If so, what is its configuration? I'm thinking it might be overriding your explicit settings.

    Todd

    I am

    var LoggingSetup = xdc.useModule( 'ti.uia.sysbios.LoggingSetup' );

    LoggingSetup.loadLoggerSize = 2048;
    LoggingSetup.mainLoggerSize = 16384;
    LoggingSetup.sysbiosLoggerSize = 16384;
    LoggingSetup.loadLogging = true;
    LoggingSetup.loadTaskLogging = true;
    LoggingSetup.enableTaskProfiler = true;
    LoggingSetup.benchmarkLogging = true;
    LoggingSetup.sysbiosSwiLogging = true;
    LoggingSetup.sysbiosHwiLogging = true;
    LoggingSetup.sysbiosHwiLoggingRuntimeControl = true;

  • another unknown is why the cpuLoad reads 0%, when i know it's not!
  • Can you set the following also.
    LoggingSetup.loadSwiLogging = true;
    LoggingSetup.loadHwiLogging = true;

    The default setting of false above is whacking the following you are doing
    Load.swiEnabled = true;
    Load.hwiEnabled = true;
  • Now I just get an undefined, and still 0% cpu load

  • Robert,

    Could you try manually getting the CPU load at run time. After running for some time and pausing, could you check the value in the Memory Browser?

    #include <ti/sysbios/utils/Load.h>
    
    uint32_t testCPULoad = (~0);
    
    void someTask()
    {
        testCPULoad = Load_getCPULoad();
    }

    There is a section in the ti.sysbios.utils.Load documentation titled CAVEATS. Could you verify none of those cases apply to you?

    Thanks,
    Derrick

  • From my limited knowledge at this point, it didn't appear that any of those caveats applied to me. I'm still getting zero load, even when doing it manually, according to the code snippet you provided above. Here are related entries in my .cfg file, for review


    var Load = xdc.useModule( 'ti.sysbios.utils.Load' );

    Load.updateInIdle = true;
    Load.windowInMs = 500;
    Load.taskEnabled = true;
    Load.swiEnabled = true;
    Load.hwiEnabled = true;


    thanks,
    Robert
  • I tried to set breakpoints for some of the routines in Load.c, just to try and debug ... but the breakpoint indicator immediately changes from blue to grey'd out ... breakpoint not possible.  That might just be because debugging symbols are not turned for the bios code? (they are for my general application).

    Robert

  • I've confirmed that the Load_getCPULoad is not running, unless I manually call it (and attempt to set breakpoint in Load.c is grey'd out), as you described with that code snippet. Supposedly that should be running without the manual code, so somehow my configuration is not accomplishing that.
  • I had this set to false, which I guess is the way the Load_getCPULoad would normally be called

    Task.enableIdleTask = true

    But when setting it to true, I now get an abort when running. I traced it so far to this line in the bios startup, in task.c

    /* start first task by way of enter() */
    Task_SupportProxy_swap((Ptr)&prevTask->context,
    (Ptr)&Task_module->curTask->context);

    Is there a way to build the sys-bios files like this with symbolic debugging turned on, so that I can get more info?

  • Robert,

    Try adding or modifying the following code in your application.cfg. This may help you get more meaningful output when the application aborts.

    var Text = xdc.useModule('xdc.runtime.Text');
    /*
    * These strings are placed in the .const section. Setting this parameter to
    * false will save space in the .const section. Error, Assert and Log messages
    * will print raw ids and args instead of a formatted message.
    *
    * Pick one:
    * - true (default)
    * This option loads test string into the .const for easier debugging.
    * - false
    * This option reduces the .const footprint.
    */
    Text.isLoaded = true;

    Thanks,
    Derrick

  • I needed to increase the idle task stack size.  After doing so, no more crash, and I see the load values!

    For future reference, here were the fixes

    Task.enableIdleTask = true

    in the .cfg file, which may be true by default ( I had set it to false early on)

    and make sure there is a big enough idle task stack, to handle the diagnostic functionality run from there

    Task.idleTaskStackSize                              = 0x800;

    Thanks All,

    Robert

  • Robert,

    Excellent, I am glad you were able to resolve your issue.

    Derrick