Forums

DMA ISR Debug Problem! ( C5510 XDS510pp, CCS2.2 )

Started by James November 18, 2003
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
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
"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
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
"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