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

 
 
 
Reply to this topicStart new topic
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
x893
сообщение Aug 13 2017, 23:25
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 333
Регистрация: 27-10-08
Из: Планета Земля
Пользователь №: 41 226



Там же где и всегда, или в
startup_...c
или в
startup_...s
от компилятора зависит.
Go to the top of the page
 
+Quote Post
Aleksandr Barano...
сообщение Aug 20 2017, 23:17
Сообщение #3


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

Группа: Участник
Сообщений: 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
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 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
Сообщение #5


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

Группа: Участник
Сообщений: 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
jcxz
сообщение Aug 21 2017, 14:43
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(Aleksandr Baranov @ Aug 21 2017, 15:13) *
Если бы они были запрещены, ничего бы не происходило вообще, а так программа переходит неизвестно куда. Буду дальше копать, спасибо.

Попробуйте возбудить нужный IRQ (или другой) программно через соответствующий регистр NVIC.
Go to the top of the page
 
+Quote Post
Aleksandr Barano...
сообщение Aug 24 2017, 15:53
Сообщение #7


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

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



Как оказалось, файл конфигурации векторов прерываний, используемый в проекте, был неправильным. Когда я в нем усомнился и заменил - все заработало. Никому нельзя верить biggrin.gif
Большое спасибо за участие.


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

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

 


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


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