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.

system analyzer missing events

Other Parts Discussed in Thread: SYSBIOS

trying to get a handle on a problem in a real-time system with system analyzer. but, there are way too many events. I tried increasing the buffer size, we have 128Mb of DDR!!!, but when I enter a value that is too large, anything over 4Mb, then my program locks up during load and does not run to main().

I could turn UIA on and off in code but the documentation is confusing and incomplete. How do I turn analysis on and off globally?

 

  • Hi Kurt,

    What device are you on? Also what version of UIA are you using?

    Which events are too plentiful? SYS/BIOS?

    Can you attach your .cfg file?

    Todd

  • c6748 - just ran check, everything is up to date.  UIA=v1.1.0.04

    Which events are too plentiful? SYS/BIOS?
    yes..this is all SYS/BIOS isn't it? are there others? not sure what you mean. I have USB SOF HWI every 5us or so, two of my HWI, one runs every 278us, the other every 100ms, a task, and a couple SWI.

    the problem does not occur until the system has fully started - i.e. USB enumeratrion, HW startup, etc. Seems like the log fills then ignores events.  Is there any way to make the buffer circular? I just want to look at the last xxxxx events. I don't care about the first xxxx events.

    NanoScan2.cfg attached

    NanoScan2.cfg
  • Kurt,

    The application can make Log calls also. If you are using ti.uia.sysbios.LoggingSetup, like you are, these events go into the "Main" logger. From looking at your configuration, you have disable the "Main" logger.

    Since you are enabling Hwi logging in LoggingSetup "(LoggingSetup.sysbiosHwiLogging = true;"), you get lots of Hwi log events. I expect you are seeing lots of LM_begin and LD_end events.

    For your board, the ti.sysbios.family.c64p.Hwi module is brought in by the ti.sysbios.hal.Hwi module. SYS/BIOS supports many families, so instead of putting tons of #ifdef in the hal.Hwi source file, we put family specific implementations into the family directories.

    By looking at the CDOC description for LM_begin, you can see that it is controlled by  Diags mask USER1or USER2

    Since you are using Stopmode in LoggingSetup, you get LoggerStopmode loggers. These loggers do overwrite when full.

    Similarly, LM_END is controlled by USER2. So if you turn off Hwi.common$.diags_USER2, you will not get the LM_END events, but still get the LM_BEGIN events. If you do not explicitly set the Hwi diags masks, LoggingSetup will enable both USER1 and USER2. If you turn off either of these, LoggingSetup does not change them. Note: you can configure the ti.sysbios.hal.Hwi's diags masks and it will push those settings down to the family implementation. You can either add the following line in your .cfg file "Hwi.common$.diags_USER2 = Diags.ALWAYS_OFF;", or you can do it graphically as shown:

    You are using Stopmode in LoggingSetup, so you are getting LoggerStopmode loggers. These wrap when full. Are you sure you are getting the first N events and not the last N? Are you looking at the events in System Anaylzer or ROV? Note: you do not get additional events in CCS until you stop the target.

    Todd

  • Thank you.

    Yes, I get lots of events.  That is where the problem lies.

    I have disabled Main logging for now.  Will add applications entries as needed.

    How do I enable/disable HWI logging from my app?

    Any idea why the debugger does not run to main() I set a large LoggingSetup Buffer size?

  • The Diags_setMask() API can be used to enable and disable the diags masks. Refer to the xdc.runtime.Diags documentation for more details on the API.

    I'll try to reproduce the problem with a large buffer...it should work. When you halt the processor, where is the program?

    Todd