• Resolved

[FAQ] I cannot get UIA, RTOS Analyzer, System Analyzer or Execution Graph to work

Guru 88030 points

Replies: 1

Views: 196

I'm trying to get UIA to work with TI-RTOS (also called SYS/BIOS). Nothing comes out on RTOS Analyzer, System Analyzer or Execution Graph...what's wrong?

  • 1. RTOS and System Analyzer requires the loggers that are in ti.uia. For example, you cannot use LoggerBuf that is in XDCtools. UIA is bundled into the Processors SDK, SimpleLink SDK and TI-RTOS for <Tiva/CC3200/MSP430/Concerto> and no work is required (and can skip to step 2). For users that are using the SYS/BIOS stand-alone product, they can obtain the stand-alone UIA product from here: http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/uia/index.html. Please pick the UIA version that is compatible with your version of SYS/BIOS. Then include the UIA package into the application For example

    2. Confirm that a logger is present in the application. The easiest was to confirm this is to halt the target and open Tools->ROV in CCS (ROV is also available in IAR). This is ROV Classic, but you can use "Tools->Runtime Object View" if you are using ELF and XDCtools 3.50 or higher.

    If you do not see a logger, add the following into your .cfg file:

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

    Including LoggingSetup is an easy way to setup basic logging. It enables logging for main kernel modules. By default it adds 3 LoggerStopMode instances. It was some basic configuration to allow you to change the internal buffer sizes of the logger instances. You can increase the sizes if you are not getting enough log records or decrease the sizes if you are tight on RAM. Please refer to the LoggingSetup documentation for more details.

    3. If you see a logger in ROV, also confirm you are actually logging records. For example in the above picture, you see lots of kernel records (which are used to make the Execution Graph in RTOS Analyzer in CCS). 

    If you do not see records, there are couple things to look at

    a. If you are on a CC13xx or CC26xx device, you need to check three things

       i. Make sure you are not using the kernel in ROM. The kernel in the ROM has logging disabled. To build a kernel in the flash instead, remove the ROM lines from the .cfg file. For example

     * To use BIOS in flash, comment out the code block below.
    var ROM = xdc.useModule('ti.sysbios.rom.ROM');
    ROM.romName = ROM.CC26X2V2;

       ii. Make sure you are not disabling logging in the .cfg. For example, if you have this, set it to true.

    BIOS.logsEnabled = false;

       iii. Check you project settings to make sure there is not a defined symbol that disables logging

    b. All other devices...

    Confirm that you have not explicitly disabled the kernel logging in the .cfg file.

    BIOS.logsEnabled = false;

    If you still cannot see any records, please open a new E2E thread and we'll help you figure it out (and then update this FAQ).

    4. You see records in ROV, so why aren't you seeing anything in System Analyzer or RTOS Analyzer?

    a. If you are using LoggerStopMode, you must halt the target to get either of these to work.

    b. If your target is a C2000 device, there is a System/RTOS Analyzer bug in CCS 8.3 and 9.0. It does not handle the byte size properly for C2000. Use a newer (or older) CCS release.

    If you still cannot get System/RTOS Analyzer to work, please open a new E2E thread and we'll help you figure it out (and then update this FAQ).