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.
Hi,
I am using Code Composer version 5.1.1, and DSP BIOS version 5.41.11.38. I am using the C5515 DSP on the USBSTK5515 evaluation board. I currently have a DSP BIOS project set up to do absolutely nothing. The Task Manager is disabled, and memory heaps are disabled. I just have some initialization code that runs in main(), that simply just invokes "LOG_printf()" a couple of times. So after main exits, just the idle loop is running. But when I display the CPU load graph, the CPU load holds steady at 36% instead of near 0% utilization. I've used the CPU load function before on older versions of Code Composer and DSP BIOS without any problems. The Statistics Data tab shows that only the Idle loop is running. I am using all default settings, meaning that the system should know that the idle functions are not to be considered part of CPU loading. Does anyone know what's going on with CPU Load? Does this have something to do with using the USBSTK5515 instead of a typical JTAG interface?
Thanks,
Clay
Hi Clay,
I'm trying to reproduce the problem you're seeing. Have you tried the "hello example" from the "New CCS Project" wizard to see it's CPU load?
I don't think it has to do anything with the USBSTK5515 because it still uses the JTAG interface.
Hi Tom,
I haven't had a chance to try the "hello example" project yet, but I do have some interesting information for you. If I set a breakpoint somewhere in main(), and then run from there, then the displayed CPU Load is fine. I see utilization near 0% from then on, which is correct for the current state of my DSP/BIOS project. If I do not set a breakpoint in main(), then the CPU load shows continuously as 36%.
My project now makes use of a periodic timer that is invoked once a second, as well as a Hardware Interrupt routine and a Software Interrupt routine. If I do not set a breakpoint in main(), but rather set a breakpoint in my Hardware Interrupt Routine, the CPU load still displays as 36% from then on. But if I set a breakpoint in main(), and in my Hardware Interrupt routine, everything is fine.
In short, I have a work-around. As long as I set a breakpoint in main() and then run from there, everything with the CPU load is as expected. But if I do not set a breakpoint in main(), then CPU Load never works correctly.
Thanks,
Clay
Hi Clay,
I'm not quite that familiar with the CPU load implementation in DSP/BIOS. It's mostly written in assembly...
I did find a DSP/BIOS 5 CPU Load wiki page that discusses on how its calculated.
This could be related to the problem you're seeing: http://e2e.ti.com/support/embedded/bios/f/355/t/93181.aspx#325167
Hi Tom,
I took a look at the other problem you referenced in your last reply. The issue does look very similar. The circumstances are different, but the bottom line is that there appears to be a bug in DSP/BIOS regarding the correct computation of "CPU Load Minimum Value". Has this issue been reported to the people who fix bugs in DSP/BIOS? I suppose I can close this issue once I know the issue will be addressed by DSP/BIOS developers. Since I now have a work-around by setting a breakpoint in main(), I'm no longer impacted by the problem.
Thanks,
Clay