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.

if idle task is disable, is it OK?

Other Parts Discussed in Thread: SYSBIOS, TMS320F28069

Hi,Sir!

I read idle thread in CCS Help, it said:

It said that if task is enable, and idle task will be created with lowest priority. but in Task configuration, idle task can be disable.

and it seems OK, those log_info() in myIdleFxn() doesn't appear again while idle task is disable.

But I had read some document about SYS BIOS, it said some log tools, such like CPU load or task load statistics will rely on idle task.

So, I want to know

1: if Idle task is disable while task configuration,all features that sys bios provide are OK?

Thanks.

  • Hi,Sir!

    I want to view my CPU and task load, so I enable realtime analysis, CPU and tasK  load .and idle task.

    But, when I view ROV while debugging, there is no any log_info any more, of course , no ROV info is displayed.

    How wrong is it? if they are disable, my log_info display is OK.

  • I know ROV is not supported later. I want to use System Analyser,(UIA) to view CPU or task Load,etc. but how to configure SYSBIOS .cfg and how to config UIA ?

  • Hi,Sir!

    I delete Log,logbuf,Agent from my .cfg and add UIA loggingsetup step by step, but when I build my project, it said error(.cfg file is error indicated).

    What's wrong with my configuration?

    Thanks.

  • My project is based on CCS5.4(or CCS5.3),

    This is my .cfg script:

    var Defaults = xdc.useModule('xdc.runtime.Defaults');
    var Diags = xdc.useModule('xdc.runtime.Diags');
    var Error = xdc.useModule('xdc.runtime.Error');
    //var LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');
    var Main = xdc.useModule('xdc.runtime.Main');
    var SysMin = xdc.useModule('xdc.runtime.SysMin');
    var System = xdc.useModule('xdc.runtime.System');
    var Text = xdc.useModule('xdc.runtime.Text');

    var BIOS = xdc.useModule('ti.sysbios.BIOS');
    var Task = xdc.useModule('ti.sysbios.knl.Task');
    var Event = xdc.useModule('ti.sysbios.knl.Event');
    var Mailbox = xdc.useModule('ti.sysbios.knl.Mailbox');
    var Boot = xdc.useModule('ti.catalog.c2800.init.Boot');
    var Timer = xdc.useModule('ti.sysbios.hal.Timer');
    var ti_sysbios_family_c28_Timer = xdc.useModule('ti.sysbios.family.c28.Timer');
    var Hwi = xdc.useModule('ti.sysbios.family.c28.Hwi');
    var ti_sysbios_hal_Hwi = xdc.useModule('ti.sysbios.hal.Hwi');
    var Memory = xdc.useModule('xdc.runtime.Memory');
    var Load = xdc.useModule('ti.sysbios.utils.Load');
    var LoggingSetup = xdc.useModule('ti.uia.sysbios.LoggingSetup');

    /*
    * Program.argSize sets the size of the .args section.
    * The examples don't use command line args so argSize is set to 0.
    */
    Program.argSize = 0x0;

    /*
    * Uncomment this line to globally disable Asserts.
    * All modules inherit the default from the 'Defaults' module. You
    * can override these defaults on a per-module basis using Module.common$.
    * Disabling Asserts will save code space and improve runtime performance.
    Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF;
    */

    /*
    * Uncomment this line to keep module names from being loaded on the target.
    * The module name strings are placed in the .const section. Setting this
    * parameter to false will save space in the .const section. Error and
    * Assert messages will contain an "unknown module" prefix instead
    * of the actual module name.
    Defaults.common$.namedModule = false;
    */

    /*
    * Minimize exit handler array in System. The System module includes
    * an array of functions that are registered with System_atexit() to be
    * called by System_exit().
    */
    System.maxAtexitHandlers = 4;

    /*
    * Uncomment this line to disable the Error print function.
    * We lose error information when this is disabled since the errors are
    * not printed. Disabling the raiseHook will save some code space if
    * your app is not using System_printf() since the Error_print() function
    * calls System_printf().
    Error.raiseHook = null;
    */

    /*
    * Uncomment this line to keep Error, Assert, and Log strings from being
    * loaded on the target. These strings are placed in the .const section.
    * Setting this parameter to false will save space in the .const section.
    * Error, Assert and Log message will print raw ids and args instead of
    * a formatted message.
    Text.isLoaded = false;
    */

    /*
    * Uncomment this line to disable the output of characters by SysMin
    * when the program exits. SysMin writes characters to a circular buffer.
    * This buffer can be viewed using the SysMin Output view in ROV.
    SysMin.flushAtExit = false;
    */

    /*
    * The BIOS module will create the default heap for the system.
    * Specify the size of this default heap.
    */
    BIOS.heapSize = 1024;

    /*
    * System stack size (used by main(), ISRs and Swis)
    * We need to make it bigger for this example since main() creates a bunch
    * of objects and uses more stack than in other examples. Check ROV for
    * stack usage at end of main().
    */
    Program.stack = 4096;

    /* Circular buffer size for System_printf() */
    SysMin.bufSize = 0x200;

    /*
    * Create and install logger for the whole system
    */
    //var loggerBufParams = new LoggerBuf.Params();
    //loggerBufParams.numEntries = 32;
    //var logger0 = LoggerBuf.create(loggerBufParams);
    //Defaults.common$.logger = logger0;
    Main.common$.diags_INFO = Diags.ALWAYS_ON;

    System.SupportProxy = SysMin;

    /*
    * Build a custom BIOS library.
    *
    * Setting Semaphore.supportsEvents = true requires a custom library.
    * The "instrumented" and "non-instrumented" libraries are built with
    * Semaphore.supportsEvents = false.
    *
    * The custom library will also be smaller than the pre-built "instrumented"
    * (default) and "non-instrumented" libraries.
    */
    BIOS.libType = BIOS.LibType_Custom;
    Boot.disableWatchdog = true;
    Boot.bootFromFlash = true;
    Boot.pllcrDIV = 18;
    BIOS.cpuFreq.lo = 90000000;
    Boot.pllstsDIVSEL = 2;
    var ti_sysbios_family_c28_Timer0Params = new ti_sysbios_family_c28_Timer.Params();
    ti_sysbios_family_c28_Timer0Params.instance.name = "timer0";
    ti_sysbios_family_c28_Timer0Params.period = 1000;
    ti_sysbios_family_c28_Timer0Params.startMode = xdc.module("ti.sysbios.interfaces.ITimer").StartMode_AUTO;
    Program.global.timer0 = ti_sysbios_family_c28_Timer.create(-1, "&myTimer0Fxn", ti_sysbios_family_c28_Timer0Params);
    var task0Params = new Task.Params();
    task0Params.instance.name = "task0";
    task0Params.stackSize = 512;
    task0Params.priority = 2;
    Program.global.task0 = Task.create("&myShellTask", task0Params);
    var task1Params = new Task.Params();
    task1Params.instance.name = "task1";
    task1Params.priority = 4;
    task1Params.stackSize = 512;
    Program.global.task1 = Task.create("&myPollingTask", task1Params);
    var task2Params = new Task.Params();
    task2Params.instance.name = "task2";
    task2Params.priority = 6;
    task2Params.stackSize = 512;
    Program.global.task2 = Task.create("&myMainTask", task2Params);
    var task3Params = new Task.Params();
    task3Params.instance.name = "task3";
    task3Params.priority = 8;
    task3Params.stackSize = 512;
    Program.global.task3 = Task.create("&myFilamentTask", task3Params);
    var task4Params = new Task.Params();
    task4Params.instance.name = "task4";
    task4Params.priority = 10;
    task4Params.stackSize = 512;
    Program.global.task4 = Task.create("&myRotorTask", task4Params);
    var task5Params = new Task.Params();
    task5Params.instance.name = "task5";
    task5Params.priority = 12;
    task5Params.stackSize = 512;
    Program.global.task5 = Task.create("&myConsoleTask", task5Params);
    var task6Params = new Task.Params();
    task6Params.instance.name = "task6";
    task6Params.priority = 14;
    task6Params.stackSize = 512;
    Program.global.task6 = Task.create("&myCANTask", task6Params);
    var task7Params = new Task.Params();
    task7Params.instance.name = "task7";
    task7Params.priority = 5;
    task7Params.stackSize = 512;
    Program.global.task7 = Task.create("&myNotifyTask", task7Params);
    var event0Params = new Event.Params();
    event0Params.instance.name = "NotifyEvent";
    Program.global.NotifyEvent = Event.create(event0Params);
    var mailbox0Params = new Mailbox.Params();
    mailbox0Params.instance.name = "MainTaskMBX";
    Program.global.MainTaskMBX = Mailbox.create(14, 10, mailbox0Params);
    var hwi0Params = new Hwi.Params();
    hwi0Params.instance.name = "hwi0";
    hwi0Params.maskSetting = xdc.module("ti.sysbios.interfaces.IHwi").MaskingOption_BITMASK;
    Program.global.hwi0 = Hwi.create(35, "&myXINT1ISR", hwi0Params);
    var hwi1Params = new Hwi.Params();
    hwi1Params.instance.name = "hwi1";
    hwi1Params.maskSetting = xdc.module("ti.sysbios.interfaces.IHwi").MaskingOption_BITMASK;
    Program.global.hwi1 = Hwi.create(36, "&myXINT2ISR", hwi1Params);
    var hwi2Params = new Hwi.Params();
    hwi2Params.instance.name = "hwi2";
    hwi2Params.maskSetting = xdc.module("ti.sysbios.interfaces.IHwi").MaskingOption_BITMASK;
    Program.global.hwi2 = Hwi.create(120, "&myXINT3ISR", hwi2Params);
    var hwi3Params = new Hwi.Params();
    hwi3Params.instance.name = "hwi3";
    hwi3Params.maskSetting = xdc.module("ti.sysbios.interfaces.IHwi").MaskingOption_BITMASK;
    Program.global.hwi3 = Hwi.create(96, "&mySCIARxISR", hwi3Params);
    var event1Params = new Event.Params();
    event1Params.instance.name = "SCIARxEvent";
    Program.global.SCIARxEvent = Event.create(event1Params);
    var mailbox1Params = new Mailbox.Params();
    mailbox1Params.instance.name = "RotorTaskMBX";
    Program.global.RotorTaskMBX = Mailbox.create(14, 10, mailbox1Params);
    var mailbox2Params = new Mailbox.Params();
    mailbox2Params.instance.name = "FilamentTaskMBX";
    Program.global.FilamentTaskMBX = Mailbox.create(14, 10, mailbox2Params);
    Program.heap = 1024;
    BIOS.swiEnabled = true;
    Task.idleTaskStackSize = 512;
    Task.defaultStackSize = 512;
    Task.idleTaskVitalTaskFlag = true;
    Task.enableIdleTask = true;
    Memory.defaultHeapSize = 1024;
    Load.swiEnabled = true;
    Load.hwiEnabled = true;
    BIOS.logsEnabled = false;
    LoggingSetup.sysbiosHwiLogging = true;
    LoggingSetup.sysbiosSwiLogging = true;
    LoggingSetup.sysbiosHwiLoggingRuntimeControl = true;
    LoggingSetup.sysbiosSwiLoggingRuntimeControl = true;

  • I search E2E forum and found another same question  as me.

    http://e2e.ti.com/support/development_tools/code_composer_studio/f/81/t/232301.aspx?pi199176=2

    it seem TI expert suggested to upgrade CCS version to CCS5.3 or CCS5.4 and no confirmed answer.

    But I build my project on CCS5.3 or CCS5.4, both of these two verison have the same error. 

    So, what's wrong with my project?

    Thanks!

  • The following is buidling error info:


    **** Build of configuration Release for project HVGP_FRAMEWORK ****

    "C:\\tinew\\ccsv5\\utils\\bin\\gmake" -k all
    'Building file: ../hvgp.cfg'
    'Invoking: XDCtools'
    "C:/ti/xdctools_3_24_06_63/xs" --xdcpath="C:/ti/bios_6_34_02_18/packages;C:/ti/uia_1_01_01_14/packages;C:/tinew/ccsv5/ccs_base;" xdc.tools.configuro -o configPkg -t ti.targets.C28_float -p ti.platforms.tms320x28:TMS320F28069 -r release -c "C:/tinew/ccsv5/tools/compiler/c2000_6.1.3" --compileOptions "-g --optimize_with_debug" "../hvgp.cfg"
    making package.mak (because of package.bld) ...
    generating interfaces for package configPkg (because package/package.xdc.inc is older than package.xdc) ...
    configuring hvgp.x28FP from package/cfg/hvgp_p28FP.cfg ...
    js: "C:/ti/uia_1_01_01_14/packages/ti/uia/runtime/UIAMetaData.xs", line 128: XDC runtime error: ti.platforms.tms320x28.Platform.Instance#0: 'dataMemory' is sealed
    "C:/ti/uia_1_01_01_14/packages/ti/uia/sysbios/LoggingSetup.xs", line 59
    gmake.exe: *** [package/cfg/hvgp_p28FP.xdl] Error 1
    js: "C:/ti/xdctools_3_24_06_63/packages/xdc/tools/Cmdr.xs", line 51: Error: xdc.tools.configuro: configuration failed due to earlier errors (status = 2); 'linker.cmd' deleted.
    making ../src/sysbios.a28FP ...
    cl28FP C:/ti/bios_6_34_02_18/packages/ti/sysbios/BIOS.c ...
    gmake[1]: *** Access is denied.

    . Stop.
    gmake[1]: *** Waiting for unfinished jobs....

    **** Build of configuration Release for project HVGP_FRAMEWORK ****

    !CommandLauncher.error.commandCanceled!
    Error: Program "C:/tinew/ccsv5/utils/bin/gmake" is not found in PATH

    PATH=[C:/tinew/ccsv5/eclipse/jre/bin/client;C:/tinew/ccsv5/eclipse/jre/bin;C:/tinew/ccsv5/eclipse/jre/lib/i386;C:\Program Files\NVIDIA Corporation\PhysX\Common;C:\Program Files\RSA SecurID Token Common;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\system32\WindowsPowerShell\v1.0;C:\Program Files\Windows Imaging\;C:\Program Files\QuickTime\QTSystem\;C:\Program Files\TortoiseSVN\bin;;C:\tinew\ccsv5\eclipse;]

    **** Build Finished ****

  • I import UIA demo and it is OK, you have to set SYS BIOS,XDC tool and UIA version as the figure:

    XDCTool: 3.35.0.48

    SYSBIOS:6.35.1.29

    System Analyser:1.3.0.02 // 1.1.1.14 will cause this error.

  • Attention:

    Even all setting are same with above,

    XDCTool 3.35.0.48

    SYSBIOS:6.35.1.29

    SystemAnalyser: 1.3.0.02

    It cannot be built successful in CCS5.3 , but in CCS5.4  it is built successfully.

    Why?

     

  • We’re closing out this old thread. If you feel there is more discussion on the topic, please feel free to "Reply".