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.

SysBios RTA on c28346

Other Parts Discussed in Thread: SYSBIOS

Hi,

I spend a lot of time trying to figure out what I am doing wrong with the integration of SYS/BIOS 6 in my project. The issue comes when I want to use the RTA agent; everything sounds OK when I run my application and I get the RAW logs from RTA in real time. But the Exec Graph is showing that the CPU is spending most of its time in an unknown Thread. So I decided to build a simple project where I throw in all the necessary Sys/Bios modules for a "do nothing" application and I ended up with the same issue. Using ROV I could find an error in ti.sdo.io.converters.DriversAdapter.

Any Idea of what I am doing wrong here?

I am working on CCS 4.2.1.00004, IPC 1.21.02.23, SYSBIOS 3.30.02.42 and XDCtools 3.20.03.63

Thanks in advance.

Regards.

Pascal

 

Here are some screen shots of the Exec Graph, the corresponding RAW Logs and the ROV.

Here is the cfg file: 6064.SYSBIOS_Mini.zip

  • Hi Pascal,

    In short, there's not an "unknown thread" in your system, that red line just means that RTA doesn't know what's currently running in your application at that time.The red "Unknown" line in RTA seems to be a common source of confusion, I'll add a bit to the RTA troubleshooting article about it.

    This line simply tells you that RTA does not know the current state of the system at that time. This happens whenever there is a gap in the data received by RTA. 

    If you look at your RTA screenshot, though, you'll notice that there is data available at this point, but that you're still seeing that red line. This is because RTA does not know what Task is currently running. In order for RTA to know what Task is running, it must receive an event which indicates that a switch from one Task to another has occurred.

    If you scroll up through your Raw Logs view all the way to the last break in records, I think you won't find any Task switch events in there. This means that RTA doesn't know what Task is running because there was a gap in the data, and now that it's receiving data it still doesn't know what Task is running because it hasn't received a new Task switch event yet. In your screenshot, RTA is receiving Hwi and Swi begin and end events, so it is able to plot those, but when those exit, RTA doesn't know what Task the system is switching back to, so it displays the state as "Unknown".

    Hope that helps! 

    Chris

  • Hi Chris,

     

    thanks for your reply.

    Ok, I made some more tests and I can see the gaps. I guess one way to get rid of those gaps is to increase the number of entries in the log buffer, isn't it? Or may be my USB connected emulator is not fast enough.

    In my attempts to solve what I thought it was an issue, I also tried to build my own Platform using the RTSC wizard. I did all the steps shown in the RTSC demo guide, actually I just deleted the external memory from the c28346 import, but the platform I get does not work at all. So I tried again and this time I did import the c28346 platform and made no modifications: same result the code does not make it to main and is stuck in pinit section. ROV is saying that the SP is outside stack for all the tasks. Sounds to me like if something was not correctly imported by the RTSC tool.

    I hope you can help me on that one too.

    Regards.

    Pascal

  • Yes, you can increase the size via Agent.numSystemRecords. There's not a lot of bandwidth on the USB emulator, so that is probably limiting you as well. You can also save some bandwidth by choosing not to log all of the system events (you could omit Hwi and Swi logging, for example), but then of course the execution graph wouldn't display those. 

    For help configuring logging using xgconf, this article may be helpful:

    http://processors.wiki.ti.com/index.php/Adding_RTA_to_Your_BIOS_6_Application

    I've forwarded your platform question on to some people who are more knowledgable in that area.

    Thanks,

    Chris

     

  • Pascal,
    when you say you imported c28346, are you refering to the platform ti.platforms.control28346? Is that the platform you were using before trying to build your own platform?
    The platform ti.platforms.control28346 disables watchdog timer, while a platform generated by the Platform Wizard probably does not include any such code.

  • Many thanks to both of you.

     

    Regards.

    Pascal