Hi,
Platform: C64+ DSP
CCS 4.2.4
BIOS 5.41
Emulator: 560V2 (without system trace)
I followed the instruction in:
http://processors.wiki.ti.com/index.php/DSP/BIOS_Real-time_Analysis_(RTA)_troubleshooting#Trace_must_be_enabled
Here are the last part of my TCF:
bios.GBL.ENABLEINST = 1;bios.GBL.ENABLEALLTRC = 1;bios.RTDX.ENABLERTDX = 1;bios.HST.HOSTLINKTYPE = "RTDX";bios.enableRealTimeAnalysis(prog);bios.enableRtdx(prog);prog.module("GBL").ENABLEALLTRC = true;
I only see the following figures, but no any data was reported during the DSP runing or after DSP is halted.
Thanks a lot for your help!
Tang
Hi Jianbin,
Any update from your side? Would you like to try to continue to get this working?
Regards,
-Jon
Jon
Sorry for late repsonse! I just came back from vacation.
After apply your suggested modification, the followoing warning was removed:
TMS320C64+: RTDX: Not a valid RTDX program: RTDX protocol (JTAG) does not match CCS setup (SIMULATOR)
And I can see the CPU load like
I can also see the see raw log. But I dont' know why "exec graph" was disabled?
Thank you!
Jianbin
Jon:
Using the same project, I also tried to use other C64+plus simulator they are both fine! It shows that my CCS works normally, right?
Back to my own prj. Not like your project, actually, I build my own project start from a empty BIOS project, not start with a RTA suppotted project. I wonder should I New a project with RTA support? Or can I add the RTA function into my current project?
Thanks!
That's good. We now know that RTA is working with a basic example in your CCS.
The exec graph is only supported in SYS/BIOS 6, not DSP/BIOS 5. That is why it is greyed out.
Is it possible for you to attach the .tcf file from your project to this post so that I can take a look at it. I think we can get RTA working with your project but I need to see what is currently configured.
Go back to my own project, I tried to clean the prj as much as possible. Then I can see Raw Log, like:
But still have 2 problems
1: why I can only see the trace which I printed in the program? I can see them in the ROV also.
2: I still can't the see the CPU load figure. I really want to know the CPU load.
Is it possible for you to attach your tcf file? This file will help me debug your issue.
Is the information from the RTA raw logs in real time or stop mode? For example, is the data showing up when the program runs or does it show up after you halt the program?
CPU load will not show data in stop mode.
If that's the case, you may want to take an alternative approach to get the cpu load. There is a file load.zip that may help you and these two posts explain that approach.
http://e2e.ti.com/support/embedded/bios/f/355/t/84784.aspx
http://e2e.ti.com/support/embedded/bios/f/355/t/52290.aspx
Hi, Jon
Here is the TCF file
0434.Test.zip
I still need to know if you were seeing the RTA for trace in real time or stop mode( i.e., when the program is halted)?
Also, can you please confirm that you are hitting an idle function in your program? Can you put a break point on the idle function, run the program and let me know the results?
In real time, I didn't see anything
When stopped in the breakpoint, I can see the rawlog, which I've already pasted to you before.
In the current BIOS system, I created 2 tasks staticaly, which you can see in my TCF file.
Task structure like:
{
for(;;)
Sem_pend(some semophore);
// process, the process only need 1/3 CPU time
}
I never go into idle function. How to go to idle? Thanks!
In the assembly window search for IDL_F_loop
Put a breakpoint on this symbol:
IDL_F_loop
Then before or after your Sem_pend add a task sleep.
TSK_sleep(6);
You should hit the breakpoint and see RTA output.
Let me know if this works. I think the problem is that you are never hitting the idle loop.
Dear Jon
Actually I only have 3 tasks which will not occupied all the DSP and I always use SEM_pend(&SemObjUlDmaFinished, SYS_FOREVER), which I think could let DSP go to Idle when waiting the SEM, right?As you said, I put a breadpoint in the "IDL_F_loop", you can see it can be hit!
Later I tried only use tsk_sleep in the task, like:
// put to higher priorityVOID UlSlotProcess(){ #if 0
for(;;) { SEM_pend(&SemObjUlDmaFinished, SYS_FOREVER); LOG_printf(&trace, "UL TASK, No %d Symbol DMA finished at %d us",gusTxSeq,TSCL/800);
if ((gcTxSymCnt+1)%3==0) { LOG_printf(&trace, "UL %dth Slot at %d us",gcTxSymCnt/3,TSCL/800); } } #elseTSK_sleep(6);#endif }
The phonomenon is same. I couldn't see CPU load. I can only see the raw log just like what I pasted previously.
Thanks
Jianbin,
At this point, can you try out one of the easy BIOS examples to see if you get RTA information.
I would recommend maybe the stairstep example. Lets first try to see if you can get any RTA from a known example that is working.
Then, if you do, there's something wrong with your example. If you don't then it could be a board issue or something with CCS.
Judah
If my reply answers your question please mark the thread as answered