This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

eZDSP c5515 USb stick - DSP code will only respond to one interrupt 'event'

HI,

 

  I have a bizarre issue with CCS running code on the ezDSP C5515 usb stick. I have 2 interrupt sources. Both I believe setup properly . Code takne mostly from CSL and other ezDsp example code. I've setup a simple 1 mSec timer (gpt0) which simply incs. a timer variable, does the proper clearing vie IRQ_clear() and a write of 0x0001 to the agregate reg.  I also have a one-shot SAR conversion ISR . A start of convert  generates an interrupt when conversion is complete. Within the SAR isr , I change the SAR channel and do another start of convert. The ISR and the conversion process continues in definitely. The timer is setup for autoload so it also runs indefinitely. Both ISR have 'interrupt' keywords and disassembly shows good save and restore. If enable each seperately and run some loop test code both appear to work properly. i do have alot of experience so I'm pretty sure the ssetup, servicing, etc are clean. The weirdness starts when I enable both interrupts and run some test code. In debug, I only get one interrupt consistantly, normally the timer, but it has been opposite of that. Now I may get a few seconds worth of SAR samples then It suddeny freezes up. I can look in the IERx regs to make sure both timer and sar are still enabled (0x2010). I can also look in the IFEx regs and see that there is a pending SAR (or timer) pending but I can never get both 'events' to get sensed and have the DSP vector to the ISR. If can manually go into the IEx reg, disable the timer bit. Then manually go to the SARcontrol and force a adcstart bit hi. Then when I resume the code I suddenly get all the SAR ISR to fire and it inititaites another conversion and goes on forever. If the timer is frozen I can disable the SAR and the timer will start interrupting. HELP... any suggestions. Is this a debug/emulator thing?

 

Regards,


Steve

  •   I could have chosen a little better wording ..

     

    In a nutshell it appears I can only get Interrupts from one of my enabled sources at a time. Don't know if it's the highest priority source. (only have 2 at the moment). I know both do get serviced for a very short period of time after start-up and 'go'. After a few seconds, it appears all sources are ignored except for one. The one that does get acknowledge doesn't appear to drop any events. I beleive they all get through. (I have some simple counts getting incremented within each).

     

    Thanks,

     

    Steve V