Reply by James November 21, 20032003-11-21
"Hemant Hariyani" <hemanthariyani@ti.com> wrote in message news:<bphiic$3f2$1@home.itg.ti.com>...
> If you can send me some working code to test with DMA configurations etc, I > can try it out here. I have used DMA on 55x a lot but have never encountered > such a problem except once when it was due to an instruction not being > pipeline protected. But in that case, the code used to crash. > > hemant
Hellow! My problem has been solved :) I added MOV port(#DMA_CSRn), #some_null_memory_space in DMA_ISR() to reset DMS_CSRn . The DMA_ISR seem to work fine now. Maybe I missed some docs related to the issue. BTW, thanks you very much! Best Regards, James
Reply by Hemant Hariyani November 20, 20032003-11-20
If you can send me some working code to test with DMA configurations etc, I
can try it out here. I have used DMA on 55x a lot but have never encountered
such a problem except once when it was due to an instruction not being
pipeline protected. But in that case, the code used to crash.

hemant


"James" <sfchen.cm88g@nctu.edu.tw> wrote in message
news:7c0e8ea3.0311191748.5fe9b8fb@posting.google.com...
> "Hemant Hariyani" <hemanthariyani@ti.com> wrote in message
news:<bpfvoi$b9p$1@home.itg.ti.com>...
> > What is the status of the corresponding bit in Interrupt Flag Register.
If
> > it is 1, can you reset it runtime and see if k gets incremented by 1
again?
> > > > Hemant > Thanks for your reply :) > In my case, we use DMA5, (the most left bit of IER0/IFR0). > After program running, stopping it, the IFR0 remain '0', and k gets > incremented by JUST '1'. > > I wonder There may be no DMA interrupt generated when DSP free > running? > > To my confuse is that why setting breakpoint at DMA_ISR then > everything is OK!? > > Have someone try the code before themself and find this situation!? > > sincerely! > > James
Reply by James November 19, 20032003-11-19
"Hemant Hariyani" <hemanthariyani@ti.com> wrote in message news:<bpfvoi$b9p$1@home.itg.ti.com>...
> What is the status of the corresponding bit in Interrupt Flag Register. If > it is 1, can you reset it runtime and see if k gets incremented by 1 again? > > Hemant
Thanks for your reply :) In my case, we use DMA5, (the most left bit of IER0/IFR0). After program running, stopping it, the IFR0 remain '0', and k gets incremented by JUST '1'. I wonder There may be no DMA interrupt generated when DSP free running? To my confuse is that why setting breakpoint at DMA_ISR then everything is OK!? Have someone try the code before themself and find this situation!? sincerely! James
Reply by Hemant Hariyani November 19, 20032003-11-19
What is the status of the corresponding bit in Interrupt Flag Register. If
it is 1, can you reset it runtime and see if k gets incremented by 1 again?

Hemant

"James" <sfchen.cm88g@nctu.edu.tw> wrote in message
news:7c0e8ea3.0311181840.6fa09c1a@posting.google.com...
> Hello there! > We've encountered some problem while debugging DMA ISR. > (TI TMS320VC5510, Spectrum XDS510pp Emulator, CCS 2.2 ) > > /*main.c*/ > .................... > 1 interrupt DMAISR() > 2 { > 3 k++; > 4 expression 1; > 5 expression 2; > 6 ........... > 7 } > > Timer_Function > { > Generate DMAISR(); /* DMAISR() execute periodly */ > > } > > ..................... > ..................... */ > > When we SET breakpoint at line 4 and run the program, > DSP will halt at the breakpoint(line 4) and k will be added by 1 as > expect. > > Our problem is: > Each time we START running program without setting any breakpoints, > halt DSP, then, k still be added by 1. No matter how many time pass!! > > If we want set breakpoint at line 4 after program running, DSP will > NOT enter the breakpoint anymore. > > In other words, k won't countinue increasing unless we pause it, run, > pause it, run........ > > Did We missed something? > > Best Regard, > > James
Reply by James November 18, 20032003-11-18
Hello there!
We've encountered some problem while debugging DMA ISR.
(TI TMS320VC5510, Spectrum XDS510pp Emulator, CCS 2.2 )

/*main.c*/
....................
1  interrupt DMAISR()
2  {
3 	k++;
4       expression 1;
5	expression 2;
6	...........
7 }

   Timer_Function
{
    Generate DMAISR();    /* DMAISR() execute periodly */

}

.....................
..................... */

When we SET breakpoint at line 4 and run the program,
DSP will halt at the breakpoint(line 4) and k will be added by 1 as
expect.

Our problem is:
Each time we START running program without setting any breakpoints,
halt DSP, then, k still be added by 1. No matter how many time pass!!

If we want set breakpoint at line 4 after program running, DSP will
NOT enter the breakpoint anymore.

In other words, k won't countinue increasing unless we pause it, run,
pause it, run........

Did We missed something?

Best Regard,

		James