Jump to content

Alex D

Newcomers
  • Posts

    1
  • Joined

  • Last visited

Alex D's Achievements

Newbie

Newbie (1/4)

0

Reputation

  1. Sadly, Xilinx drivers and examples almost never work. In this case, I think you are missing the GIC setup code. You must setup the GIC before any interrupts can be handled. Here is the GIC setup function from my application. Once setup, you must install the correct interrupt handlers. This is not done for you, and must be done as part of the UART setup sequence. xStatus = XScuGic_Connect( &xInterruptController, XPAR_XUARTPS_1_INTR, (Xil_ExceptionHandler) prvUART_Handler, (void *) &xUARTInstance ); configASSERT( xStatus == XST_SUCCESS ); XScuGic xInterruptController; static s32 initGIC() { XScuGic_Config *pxGICConfig; /* Ensure no interrupts execute while the scheduler is in an inconsistent state. Interrupts are automatically enabled when the scheduler is started. */ portDISABLE_INTERRUPTS(); /* Obtain the configuration of the GIC. */ pxGICConfig = XScuGic_LookupConfig( XPAR_SCUGIC_SINGLE_DEVICE_ID ); /* Sanity check the FreeRTOSConfig.h settings are correct for the hardware. */ configASSERT( pxGICConfig ); configASSERT( pxGICConfig->CpuBaseAddress == ( configINTERRUPT_CONTROLLER_BASE_ADDRESS + configINTERRUPT_CONTROLLER_CPU_INTERFACE_OFFSET ) ); configASSERT( pxGICConfig->DistBaseAddress == configINTERRUPT_CONTROLLER_BASE_ADDRESS ); /* Install a default handler for each GIC interrupt. */ return XScuGic_CfgInitialize( &xInterruptController, pxGICConfig, pxGICConfig->CpuBaseAddress ); }
×
×
  • Create New...