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.

CCS 3.3 - Problem with Statistics

I am working to benchmark processes so we can understand where we are with the 6437-700 MHz.  We are using CCS 3.3 and very frequently the statistics start acting unreliably forcing me to close CCS and that usually corrects it but wastes time.  A couple of questions:

1) Is this common with CCS 3.3 or do they think I have a software problem causing it?

2) If it is common, does CCS 4.0 improve the situation?

I see quite a few problems that I must assume for now are internal to CCS.  2 or 3 times a day I have to "kill" it with Task Manager and quite often I have to close it to get the statistics to work.  The people at D3 say that they don't use the statistics much for this very reason.  Its not a big deal, just inconvenient.  If 4.0 fixes it then I'll try to change over soon.

  • Hi Daniel,

    Could you explain what you mean by statistics? Do you mean numbers from using the CCS profiler?

    Thanks

    ki

  • Hi Ki,

    You are correct.  Numbers from the profiling.  Here is some additional feedback from the customer after a response we provided to him from John:

    Our initial response:

    Profiling on C64x h/w is inaccurate, in CCSv4 we actually disable it by default.  On h/w we use breakpoints for profiling, this thrashes the cache which on C64x skews the data.  Also it is not possible to set more than one breakpoint in an execution packet so if there is more than one branch in a packet then the data is going to be off.

    On C64x h/w just use the clock and count between two points.

    Customer response after receiving our response:

    It doesn't make a lot of sense to me, but a better explanation would help.  I'm not clear on the distinction between profiling and counting between points.  I am using the methods taught in the class which use an STS object with STS_set and STS_delta to get DSP cycles between 2 points in the program - that is the only way I know to do it.

    Thank you - Dan

  • What John is referring to is that CCS Function Profiler. The difference between using the CCS function profiler and using the clock to count between two points is that the CCS function profiler will set a pair of breakpoint for every branch in your function/range that is being profiled. That could be a lot of breakpoints depending in the number of branches. It is all these extra breakpoints that are the issue. Using the clock to count between two points would only use one breakpoint, hence the impact on accuracy is much less.

    If you are using BIOS, you can use the STS object, which is what the customer is using. This is the best option on HW because it is non intrusive. If the numbers from the STS object are off, there could be a lot of causes, not necessarily CCS IDE related. It is hard to say if v4 will address all the issues. It will most likely fix the issue where CCS hangs, but to get STS view in v4, you have to use BIOS 5.4 (or greater).

    http://tiexpressdsp.com/index.php/DSP/BIOS_Support_in_CCSv4

     

  • Ki, I am the customer that Dan is trying to help.  My experience level is low and I just completed the DSP/BIOS training in Chicago during February.  I am trying to benchmark specific functions using the STS objects.  There is no problem with the accuracy of the cycle counts, only with the reliability of the data transfer from the DSP to the PC.

    In the course it was emphasized that if the IDL thread was starved of time the statistics could not be transferred periodically so I am somewhat sensitive to this and try to monitor the Execution Graph as well.  What I notice is that after 3 or 4 program transfers the Statistics View and Execution Graph stop working and will finally transfer after the DSP is halted - it is very unpredictable.  My concern is that restarting CCS will almost always correct the problem leading me to question whether this is a program issue in my code.  Also, after letting it run for 2 or 3 hours almost always stops the transfer as well.  Another detail is that if I halt the DSP prior to program transfer it seems to improve the situation.

    My question is should this be a concern or have others seen this with CCS 3.3?  I have experienced programmers from another company who indicate they do not use it for this reason so I shouldn't be concerned.

    Thanks, Ed

  • You're right, I do recall known issues in the past where RTA views stopped updating. They might have been fixed in later service release updates to CCS 3.3. What exact version of 3.3 are you using?

  • Does this answer your question?  If not, what else do you need to know?

  • One other comment, I am toggling an LED every 5 times through a function that was added to the Idle Function Manager.  Visually it looks like a constant duty cycle which is what I expect, maybe about 4 or 5 Hz.  This was done to confirm the execution of the IDL thread and rule out starvation of that thread, does that make sense?

    Ed 

  • Yes, thanks Ed. I know I have seen the issue personally myself. And I know that the IDL thread has a chance to run in my case also. 

    I have forwarded this issue to some people who are more familiar with the RTA view in CCS. I'll let you know as soon as I get an update.

    Thanks

    ki

  • Ki, thanks for the excellent support.  I'll wait for a response as its not a critical issue.  This seems like a useful tool that may have a few bugs to work out.

    Ed

  • Hi Edwin,

    The latest world I have is that there are known issues with RTA updating, even with the latest version of 3.3. These issues appear to have been resolved in CCSv4. However, you would need to update to BIOS 5.4 to get it. From what I understand, the difference between 5.32 and 5.4x are very minimal and they are binary compatible. It is up to you if you wish to upgrade to v4 and BIOS 5.4. CCSv4 is a very different environment in terms of look and feel so there will be a learning curve transitioning from v3 to v4.

    ki