|
Слетает прерывание UART при работающем LWIP, плата Freescale FRDM-K64F |
|
|
|
 |
Ответов
|
Mar 30 2016, 15:45
|

Частый гость
 
Группа: Участник
Сообщений: 78
Регистрация: 30-01-09
Из: СПб
Пользователь №: 44 178

|
Цитата(ataradov @ Mar 30 2016, 19:36)  Если "выключается прерывание" - это действительно не "пропадает флаг разрешения в регистре", а "вообще ничего не работет", то нужно действительно настраивать MPU и ловить левые обращения.
Не важно что для чего предназначено, для отладки любое MPU подойдет. Ну как это ничего ?? LWIP работает, таймеры все работают....UART который весит на USB работает... Не работает только прерывание UART который весит на 485-м интерфейсе....
Сообщение отредактировал asm_lock - Mar 30 2016, 15:48
|
|
|
|
|
Mar 31 2016, 08:15
|

Частый гость
 
Группа: Участник
Сообщений: 78
Регистрация: 30-01-09
Из: СПб
Пользователь №: 44 178

|
Цитата(ataradov @ Mar 30 2016, 19:55)  Ну так что говорит бит в регистре разрешения прерываний?
Гадать на кофе тут не выйдет, нужно отлаживать. В осовном цикле UART3_C2 = 0x2C; В обработчике UART3_C2 = 0x8C;
|
|
|
|
|
Mar 31 2016, 08:34
|

Ally
     
Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050

|
Цитата(asm_lock @ Mar 31 2016, 11:15)  В осовном цикле UART3_C2 = 0x2C; В обработчике UART3_C2 = 0x8C; TIE зависит от наличия процесса передачи и может быть любой и в обработчике и в цикле. RIE должен быть всегда установлен. Однако при переполнении прием запрещается. RIE устанавливается в 0, так написано в драйвере fsl_uart_driver.c Поэтому проверьте переполнение.
|
|
|
|
|
Mar 31 2016, 09:21
|

Частый гость
 
Группа: Участник
Сообщений: 78
Регистрация: 30-01-09
Из: СПб
Пользователь №: 44 178

|
Цитата(AlexandrY @ Mar 31 2016, 12:34)  TIE зависит от наличия процесса передачи и может быть любой и в обработчике и в цикле. RIE должен быть всегда установлен. Однако при переполнении прием запрещается. RIE устанавливается в 0, так написано в драйвере fsl_uart_driver.c Поэтому проверьте переполнение. В самом начале обработчика прерывания стоит опрос функции UART_HAL_GetRxDataRegFullIntCmd(baseAddr). Когда перестаю приниматься данные , он всегда false . Как это переполнение очистить то ?
Сообщение отредактировал asm_lock - Mar 31 2016, 09:24
|
|
|
|
|
Mar 31 2016, 10:23
|

Ally
     
Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050

|
Цитата(asm_lock @ Mar 31 2016, 12:21)  В самом начале обработчика прерывания стоит опрос функции UART_HAL_GetRxDataRegFullIntCmd(baseAddr). Когда перестаю приниматься данные , он всегда false . Как это переполнение очистить то ? Так эта функция всего лишь возвращает значение RIE. В новом SDK от нее уже отказались. Поставьте просто Код UART3_C2 |= 0x20; после этой функции. Но будьте готовы к потере данных.
|
|
|
|
|
Mar 31 2016, 10:55
|

Частый гость
 
Группа: Участник
Сообщений: 78
Регистрация: 30-01-09
Из: СПб
Пользователь №: 44 178

|
Цитата(AlexandrY @ Mar 31 2016, 14:23)  Код UART3_C2 |= 0x20; после этой функции. Но будьте готовы к потере данных. попробую... ЗЫ: не помогло...
Сообщение отредактировал asm_lock - Mar 31 2016, 11:28
|
|
|
|
|
Mar 31 2016, 13:55
|

Частый гость
 
Группа: Участник
Сообщений: 78
Регистрация: 30-01-09
Из: СПб
Пользователь №: 44 178

|
Цитата А какая установка глубины FIFO стоит? Спасибо что спросили.... в инициализации только вот это прописано... UART_HAL_SetRxFifoWatermark(baseAddr, 1); /* Enable and flush the FIFO prior to enabling the TX/RX */ UART_HAL_SetTxFifoCmd(baseAddr, true); UART_HAL_SetRxFifoCmd(baseAddr, true); UART_HAL_FlushTxFifo(baseAddr); UART_HAL_FlushRxFifo(baseAddr);
|
|
|
|
Сообщений в этой теме
asm_lock Слетает прерывание UART при работающем LWIP Mar 30 2016, 07:51 ataradov Могу предположить случайный проезд по памяти.
То... Mar 30 2016, 08:15 asm_lock Цитата(ataradov @ Mar 30 2016, 12:15) Мог... Mar 30 2016, 08:30  ataradov QUOTE (asm_lock @ Mar 30 2016, 01:30) Как... Mar 30 2016, 08:32   asm_lock Цитата(ataradov @ Mar 30 2016, 12:32) Ну ... Mar 30 2016, 08:35    AlexandrY Цитата(asm_lock @ Mar 30 2016, 11:35) Зап... Mar 30 2016, 08:49 jcxz Цитата(ataradov @ Mar 30 2016, 14:15) Мог... Mar 30 2016, 08:41  asm_lock Цитата(jcxz @ Mar 30 2016, 12:41) Вот и п... Mar 30 2016, 08:48   jcxz Цитата(asm_lock @ Mar 30 2016, 14:48) Бря... Mar 30 2016, 08:52    AlexandrY Цитата(jcxz @ Mar 30 2016, 11:52) Если ес... Mar 30 2016, 08:54     jcxz Цитата(AlexandrY @ Mar 30 2016, 14:54) MP... Mar 30 2016, 08:55      AlexandrY Цитата(jcxz @ Mar 30 2016, 11:55) Раз это... Mar 30 2016, 08:58       jcxz Цитата(AlexandrY @ Mar 30 2016, 14:58) Не... Mar 30 2016, 09:01        AlexandrY Цитата(jcxz @ Mar 30 2016, 12:01) Он устр... Mar 30 2016, 09:16 jcxz Цитата(asm_lock @ Mar 30 2016, 13:51) Есл... Mar 30 2016, 08:29   AlexandrY Цитата(asm_lock @ Mar 30 2016, 18:45) Ну ... Mar 30 2016, 20:23    asm_lock Цитата(AlexandrY @ Mar 31 2016, 00:23) С ... Mar 31 2016, 06:14     AlexandrY Цитата(asm_lock @ Mar 31 2016, 09:14) Ник... Mar 31 2016, 07:10 asm_lock Увеличил размер FIFO в регистре UARTx_PFIFO до 64... Apr 1 2016, 09:09
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|