|
Слетает прерывание 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, 06:14
|

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

|
Цитата(AlexandrY @ Mar 31 2016, 00:23)  С LwIP так понимаю работаете из под FreeRTOS и все взято из примеров которые идут с SDK? Судя по тому что в SDK нет примеров LwIP совместно с USB, то вы наверно совершили рискованное скрещивание.  Никакого FreeRTOS'а нету... у Frescale примеры есть в KSDK_1.0.0
|
|
|
|
|
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);
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|