Я начал работать с UART EFR32. Инициализировал UART, вызвав функции из UARTDRV:
Код
void XmodemCommInit(USART_TypeDef *usart)
{
UARTDRV_HandleData_t UARTHandleData;
UARTDRV_Handle_t UARTHandle = &UARTHandleData;
UARTDRV_Init_t init = XMODEM_USART_INIT; //#-template defined in header
UARTDRV_Init(UARTHandle, &init); //UART initialization
UARTDRV_Receive(UARTHandle, rxdma, 4, rxCallback); //LDMA initialization
}
{
UARTDRV_HandleData_t UARTHandleData;
UARTDRV_Handle_t UARTHandle = &UARTHandleData;
UARTDRV_Init_t init = XMODEM_USART_INIT; //#-template defined in header
UARTDRV_Init(UARTHandle, &init); //UART initialization
UARTDRV_Receive(UARTHandle, rxdma, 4, rxCallback); //LDMA initialization
}
Увидел, что байты передаются на терминал, принимаются LDMA и записываются в буфер rxdma. Но прерывания по завершению ДМА не происходит. Вернее, в функцию LDMA_IRQHandler( void ) управление не передается.
Где та таблица векторов, которая содержит имя функции " LDMA_IRQHandler( void )" ? Что я вообще мог по неопытности упустить?
Спасибо.
PS. Драйвера установились, когда я установил Simplicity Studio.