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.

SWI/HWI Logging

Other Parts Discussed in Thread: SYSBIOS, AM3359

I have a simple application that uses a HWI on DMTimer3 that posts a SWI to blink an led.  The application works and the LED blinks as suspected. My problem is with the Raw Logs and Execution graph. If i enable HWI, everything works as expected.  If I enable SWI and not HWI, again I can see SWI information just fine.  When I enable both, the HWI only shows and I see no information about the HWI.  Anyone have any ideas? Is timing a problem? Because the Swi_post is in the HWI does the log not enough time to grab both?

A second issue I am experiencing is when I go into the Raw Logs or Execution Graph after halting the program, the console opens with the below error.  If I click back into Raw Logs everything works just fine.  Anyone know about this issue?

CortxA8: Trouble Reading Memory Block at 0x80014178 on Page 0 of Length 0x4: (Error -2030 @ 0xF4) Attempted to access an unknown or invalid register. Confirm the register is valid and accessible, and retry the operation. (Emulation package 5.1.232.0) 

CCSv5.5, SysBios 6.35.4.50, System Analyzer 1.3.1.08, AM3359 (BBB)

Any help is appreciated.

-Anthony

 

  • Anthony,

    When you say, everything works as suspected, can I see screen shots of what you're seeing for all the cases (execution graphs and logs)?

    For the second issue, when you halt your processor some part of memory that the execution graph or logs needs cannot be accessed. Can you enter that address (0x80014178) in the memory browser to see what's there?

    Let me know how it goes

    Moses

  • Moses,

    After looking back again, I don't think the HWI's are working correctly even by themselves.  Here is the setup I used for the HWI-only test.

    Here is the log for that setup

    I thought that was correct but after looking back I realized that the HWI that was logging was 68 or DMTimer2.  Which I remember is used for SYS/BIOS's ticks. 

    Here is the execution graph

    Here is the setup for SWI-only.

    SWI's log and graph correctly by themselves

    Lastly I setup both SWIs and HWIs

    The raw logs and execution graph only show the HWIs.  And again doesn't show my HWI (69 DMTimer3)


    As per the memory browser, here is what is there

    Maybe all of the problems with logging stem from this memory error.

    Thank you for your help,

    Anthony

  • Anthony,

    If you can confirm that the application works fine as expected and the LED blinks based on DMTimer3, then you can be sure that the Hwi works. 

    With regards to logging, the Kernel timer (DMTimer2) has a lot of activity as expected and that's why when you enable the Hwi module, it is flooded with the timer Hwi log entries. Say your LED blinks every second, your DMTimer2 will have an entry every second. Now looking at the timer Hwi timestamps, the log entries are flooding in milliseconds, that's why the chances of seeing your Timer entries is greatly reduced. The log buffer is circular, so entries will get overwritten and that's what's happening to your Hwi log entries. 

    This is why enabling the Hwi module for logs makes it hard to see any other module entries (like your Swi) because of the high activity of the system timer which uses a Hwi.

    And the memory comment you're seeing doesn't have anything to do with your application. It's the IDE complaining that it cannot read a particular address on the target. I believe it's because you have the processor halted while System Analyzer is running.

    Let me know what you think

    Moses

  • Moses,


    My apologies for not getting back sooner.  I completely agree with what you said.  I didn't really think about the timing differences.  Thank you for your help!

    Anthony