реклама на сайте
подробности

 
 
> EFR32MG12 Прерывание по завершению LDMA
Aleksandr Barano...
сообщение Aug 13 2017, 22:39
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 169
Регистрация: 31-08-05
Из: New York
Пользователь №: 8 118



Здравствуйте.
Я начал работать с 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  
}


Увидел, что байты передаются на терминал, принимаются LDMA и записываются в буфер rxdma. Но прерывания по завершению ДМА не происходит. Вернее, в функцию LDMA_IRQHandler( void ) управление не передается.
Где та таблица векторов, которая содержит имя функции " LDMA_IRQHandler( void )" ? Что я вообще мог по неопытности упустить?
Спасибо.
PS. Драйвера установились, когда я установил Simplicity Studio.

Сообщение отредактировал Aleksandr Baranov - Aug 13 2017, 22:45


--------------------
ASB
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Aleksandr Barano...
сообщение Aug 20 2017, 23:17
Сообщение #2


Частый гость
**

Группа: Участник
Сообщений: 169
Регистрация: 31-08-05
Из: New York
Пользователь №: 8 118



Как выяснилось, проблема не в DMA, а в переходе на любую ISR. Точно так же не происходит переход на handler Uart Receive. Причем, я вижу в отладчике, как взводится бит "pending" в NVIC, и вижу, что в нужном месте таблицы векторов - адрес нужной ISR, а VTOR правильно указывает на начало таблицы векторов.
Я сделал достаточно много проектов на STM32, и там не встречал подобных проблем. Нет ли чего-то специфичного в EFR32, что я упускаю?


--------------------
ASB
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Aug 21 2017, 00:07
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(Aleksandr Baranov @ Aug 21 2017, 02:17) *
Я сделал достаточно много проектов на STM32, и там не встречал подобных проблем. Нет ли чего-то специфичного в EFR32, что я упускаю?

Ничего специфичного нет - такой же CM с таким же NVIC. Может, глобально прерывания запрещены?
Go to the top of the page
 
+Quote Post
Aleksandr Barano...
сообщение Aug 21 2017, 12:13
Сообщение #4


Частый гость
**

Группа: Участник
Сообщений: 169
Регистрация: 31-08-05
Из: New York
Пользователь №: 8 118



Цитата(aaarrr @ Aug 20 2017, 20:07) *
Ничего специфичного нет - такой же CM с таким же NVIC. Может, глобально прерывания запрещены?

Если бы они были запрещены, ничего бы не происходило вообще, а так программа переходит неизвестно куда. Буду дальше копать, спасибо.

Сообщение отредактировал Aleksandr Baranov - Aug 21 2017, 12:18


--------------------
ASB
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 03:30
Рейтинг@Mail.ru


Страница сгенерированна за 0.01536 секунд с 7
ELECTRONIX ©2004-2016