Hi I am working on a project where we are using the TMS320C5510 DSP. I have started to simulate the code using the C55xx simulator. When I add a variable to the watch window to see if it is changed as expected it does not change the value at once after an instruction is executed. example: unsigned int uiTest; float fTest; uiTest = 10; fTest = 10; The value of uiTest does not change before the second line is executed. I have also other situations where I have to step through severeal C-code instructions before the variable in the watch window is correct. It seems like my code is correct, but I do not know why this is happening. This did never happen when using the C5000 simulator. Best regards Torgeir Jakobsen |
|
C55xx simulator
Started by ●December 13, 2000
Reply by ●December 14, 20002000-12-14
At 09:33 AM 12/13/00, you wrote: >Hi > >I am working on a project where we are using the TMS320C5510 DSP. >I have started to simulate the code using the C55xx simulator. >When I add a variable to the watch window to see if it is changed as >expected it does not change the value at once after an instruction >is executed. > >example: > >unsigned int uiTest; >float fTest; > >uiTest = 10; >fTest = 10; > >The value of uiTest does not change before the second line is >executed. I have also other situations where I have to step through >severeal C-code instructions before the variable in the watch window >is correct. It seems like my code is correct, but I do not know why >this is happening. This did never happen when using the C5000 >simulator. > >Best regards >Torgeir Jakobsen Torgeir, I am not currently using the C55 simulator, so I can't be sure, but I believe you are seeing the effect of the pipeline in the chip. This should be simulated if you are to believe the results compared to the real chip. But there is an issue with single stepping or breakpoints. In the real chip, if it is like the C50 that I have used, when the chip is stopped by the emulator, the pipeline is flushed. So the simulator could work either way. When you single step it, it could either work like the chip and flush the pipeline to complete all calculations, or it could hold off the completion of the instructions in the pipeline to allow you to inspect the interaction and timing of the instructions so assist you in debugging. You should be able to dig this out of the documentation. BTW, I have been told that the C5510 won't be in production until late next year. Are you planning on building prototypes using the TMX version of the chip before then? Rick Collins Arius - A Signal Processing Solutions Company Specializing in DSP and FPGA design Arius http://www.arius.com 4 King Ave 301-682-7772 Voice Frederick, MD 21701-3110 301-682-7666 FAX |
Reply by ●December 14, 20002000-12-14
I have this effect also when working with my 54x emulator (which makes debugging sometimes really hard). This latency is not a bug - its a problem (or better said an effect) of pipelining. When I have to debug critical parts I normally add some nops as inline assembler into my source code to avoid those pipelining effects. Regards Hupp Thomas > -----Ursprungliche Nachricht----- > Von: Torgeir Jakobsen [mailto:] > Gesendet: Mittwoch, 13. Dezember 2000 15:34 > An: > Betreff: [code-comp] C55xx simulator > Hi > > I am working on a project where we are using the TMS320C5510 DSP. > I have started to simulate the code using the C55xx simulator. > When I add a variable to the watch window to see if it is changed as > expected it does not change the value at once after an instruction > is executed. > > example: > > unsigned int uiTest; > float fTest; > > uiTest = 10; > fTest = 10; > > The value of uiTest does not change before the second line is > executed. I have also other situations where I have to step through > severeal C-code instructions before the variable in the watch window > is correct. It seems like my code is correct, but I do not know why > this is happening. This did never happen when using the C5000 > simulator. > > Best regards > Torgeir Jakobsen > > -------------------------- eGroups Sponsor > -------------------------~-~> > eGroups eLerts > It's Easy. It's Fun. Best of All, it's Free! > http://click.egroups.com/1/9698/0/_/10680/_/976726023/ > -------------------------- > -------_-> > > To Join: > > To Post: > > To Leave: > > Archives: http://www.egroups.com/group/code-comp > > More Groups: http://www.dsprelated.com > |
Reply by ●December 14, 20002000-12-14
I've seen the same things on my DSP system (CCS 1.20 and C5410).
When debugging my target, the CPU-registers are not updated on my PC until I have single-stepped through 1-3 assembly lines after the instruction affecting the CPU-register in question. I do not know why this is happening. Regards, Carsten -----Original Message----- From: Torgeir Jakobsen [mailto:] Sent: 13. december 2000 15:34 To: Subject: [code-comp] C55xx simulator Hi I am working on a project where we are using the TMS320C5510 DSP. I have started to simulate the code using the C55xx simulator. When I add a variable to the watch window to see if it is changed as expected it does not change the value at once after an instruction is executed. example: unsigned int uiTest; float fTest; uiTest = 10; fTest = 10; The value of uiTest does not change before the second line is executed. I have also other situations where I have to step through severeal C-code instructions before the variable in the watch window is correct. It seems like my code is correct, but I do not know why this is happening. This did never happen when using the C5000 simulator. Best regards Torgeir Jakobsen To Join: To Post: To Leave: Archives: http://www.egroups.com/group/code-comp More Groups: http://www.dsprelated.com |
|
Reply by ●December 15, 20002000-12-15
Hi folks, I am trying to transfer data from DSK board TMS320C5402 to PC host and back to DSK using RTDX. I've got it all work but the data transfer is very slow. It took 29500 ms to transfer 50 times of 192 data (16 bit) = 590 for each transfer. I can say that I can have only 5206 kbps, which is very slow. It took only 5.6 ms to send 192 data (16 bit) from PC host to DSK. I am using Visual C++ 6.0. I got the time profile from Visual C++. The slowest part is calling GotoNextMsg, which is 580 ms for each transfer. Anyone know how can I speed up data transfer from DSK to PC host ? My PC configuration is : Mainboard : DFI K6BV3+ with 1 MB cache Processor : AMD K6-2 400 MHz Memory : SDRAM 64 MB @ 100 MHz Hardisk : 8.4 GB, Quantum I am using Windows98 operating system with Code Composer C5000 ver. 1.21 connect to DSK using XDS510PP. Best regards, Hendryk Budhi Nugraha DSP Research and Technology Group PPAU Mikroelektronika Institut Teknologi Bandung Jl. Ganesha 10 Bandung 40132 INDONESIA |
Reply by ●December 15, 20002000-12-15
Hello, I am new in CCS so I am not quite sure. Maybe the latency is generated by the pipeline. When I was using simulator of Hitachi SH-DSP, the problem was some alike. In the simulator, cursor stops at the assemble instruction where present PC indicates. However, when this instruction (I1) is "executed", the cursor moves to next line (I2), but the (I1) is not really executed. It is only just fetched from memory or cache or been decoded by the program controller. When cursor moves to (I3), some kinds of assemble instructions could get their results during this pipeline step. Now we can say this instruction is really executed. But more kinds of instructions need more steps to been finished. It depends on the complexity of the instruction, and the memory wait-state, and so on. I wish it could explain your C example. You could try it in disassembly style and maybe you can deem your modification in wathch window as an extra instruction executed by the emulator or simulator. I guess so. Furthermore, it is same as what I see in CCS 1.20, 5409 JTAG. Best Regards Xiaodong Zhu Ericsson Enterprise AB -----Original Message----- From: Torgeir Jakobsen [mailto:] Sent: Wednesday, December 13, 2000 3:34 PM To: Subject: [code-comp] C55xx simulator Hi I am working on a project where we are using the TMS320C5510 DSP. I have started to simulate the code using the C55xx simulator. When I add a variable to the watch window to see if it is changed as expected it does not change the value at once after an instruction is executed. example: unsigned int uiTest; float fTest; uiTest = 10; fTest = 10; The value of uiTest does not change before the second line is executed. I have also other situations where I have to step through severeal C-code instructions before the variable in the watch window is correct. It seems like my code is correct, but I do not know why this is happening. This did never happen when using the C5000 simulator. Best regards Torgeir Jakobsen To Join: To Post: To Leave: Archives: http://www.egroups.com/group/code-comp More Groups: http://www.dsprelated.com |
Reply by ●January 2, 20012001-01-02
Hi Here is the answer from EPIC: There are some known issues with watch variables. Sometimes the simulator will display an address one or two memory locations away from the actual variable you are trying to watch. A workaround is to use: wa *(&variable) instead of: wa variable Best regards Torgeir Jakobsen Senior Engineer, Technology Department Aanderaa Instruments AS e-mail: web: www.aanderaa.com phone; +47 55 10 99 00 direct: +47 55 10 99 77 fax: +47 55 10 99 10 ----- Original Message ----- From: "Torgeir Jakobsen" <> To: <> Sent: Wednesday, December 13, 2000 3:33 PM Subject: [code-comp] C55xx simulator > Hi > > I am working on a project where we are using the TMS320C5510 DSP. > I have started to simulate the code using the C55xx simulator. > When I add a variable to the watch window to see if it is changed as > expected it does not change the value at once after an instruction > is executed. > > example: > > unsigned int uiTest; > float fTest; > > uiTest = 10; > fTest = 10; > > The value of uiTest does not change before the second line is > executed. I have also other situations where I have to step through > severeal C-code instructions before the variable in the watch window > is correct. It seems like my code is correct, but I do not know why > this is happening. This did never happen when using the C5000 > simulator. > > Best regards > Torgeir Jakobsen > > > To Join: > > To Post: > > To Leave: > > Archives: http://www.egroups.com/group/code-comp > > More Groups: http://www.dsprelated.com > |
Reply by ●October 4, 20012001-10-04
hi all , i will tell what i do for watching the variables. before i reach the variable to be watched i switch to mixed source/asm. then watch the registers. it gives me proper results. bye sachin -----Original Message----- From: Torgeir Jakobsen [mailto:torgeir.jakobsen@a...] Sent: Wednesday, December 13, 2000 3:34 PM To: Subject: [code-comp] C55xx simulator Hi I am working on a project where we are using the TMS320C5510 DSP. I have started to simulate the code using the C55xx simulator. When I add a variable to the watch window to see if it is changed as expected it does not change the value at once after an instruction is executed. example: unsigned int uiTest; float fTest; uiTest = 10; fTest = 10; The value of uiTest does not change before the second line is executed. I have also other situations where I have to step through severeal C-code instructions before the variable in the watch window is correct. It seems like my code is correct, but I do not know why this is happening. This did never happen when using the C5000 simulator. Best regards Torgeir Jakobsen |