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.

c6205 interrupt

hi,everyone! i used PCI interrupt to c6205 host. The fragment code writted in c like: ------------------volatile int nResult; ------------------ ..... ------------------ nResult = Fuction(); //return is "0" ------------------ if(nResult == -1)// ------------------ {// ------------------ return;// ------------------ }// ------------------ ......// ------------------ do somthing// After complied (CCS3.3 or C6000) i get the assemble code as following: ------------------address ------------------ LDW A4, +*SP[1]; ------------------... NOP 4; ------------------0x6fc CMEQ A4,-1,B0; ------------------0x700 !B0 BR PC+40; ------------------ ... ------------------PC+40 do somthing these code excute well,but if it was be interruptted when the program excute at code CMEQ(The IRP address is 0x700). Function return is "0"(nResult = 0),but the CMEQ result B0 is no zero ,so the code wrong to excute return. Thanks!
  • Who wrote the interrupt service routine?

    How is the ISR implemented from interrupt vector to context save/restore, etc. Is it possible that B0 is not properly saved and restored?

    Regards,
    RandyP

  • thanks  Randyp !

    The problem is fixed.  The ISR jump code in assemble use B0, it is not saved just like you describe.

    There are another problem. I have a PCI card base on C6205.peripheral consist of SDRAM and FPGA.

    How to handle PCI access extend SDRAM and DSP access extend IO at the same time  in C6205?

     

  • It is best to keep each forum thread limited to a single topic. This is to provide you with the most support people looking at your question and also to allow you to associate a meaningful subject line with the thread discussion.

    For your PCI + IO question, when you post the question to a new thread, please include more information. It is not clear to me if you have a problem or expect a problem or exactly what the concern is. My best suggestion from reading the two lines above is to just do the accesses and let the internal peripherals handle the arbitration.

    Regards,
    RandyP