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
DMA ISR Debug Problem! ( C5510 XDS510pp, CCS2.2 )
Started by ●November 18, 2003
Reply by ●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 ●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? > > HemantThanks 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 ●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 messagenews:<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 1again?> > > > 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 ●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. > > hemantHellow! 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