"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