调试GIC中断代码时出现的2个问题 ZEDBOARD,ZYNQ7000

2 important questions to notify while debuging the GIC interrupt program

   

  • Once your interrupt generated, you should clear the flag bit . Otherwise, the next interrupt would be ignored . you should reset you system while you debug these application without interrupt clear operation.

    If NOT, you will not be able to see the interrupt appears when download the 2th time.

     --This is a false conclusion!!!

  • Why the printf function have no effect at all in the interrupt handler function, like this:

    void DeviceDriverHandler(void *CallbackRef)

    {

        InterruptProcessed = TRUE;

        printf("DeviceDriverHandler running ...");

    }

    • You should use Xil_printf instead of printf as follows:

void DeviceDriverHandler(void *CallbackRef)

{

    /*

     * Indicate the interrupt has been processed using a shared variable

     */

    InterruptProcessed = TRUE;

    xil_printf("DeviceDriverHandler running..\n");

}

As the printf is a function of stdio.h and why it does NOT work?

  • XScuGic_SetPriorityTriggerType(&InterruptController, INTC_DEVICE_INT_ID,0xa0, 0x3);    //####

    What's the meaning of 0xa0 and 0x3???

原文地址:https://www.cnblogs.com/dragen/p/3132164.html