Asm_lock 0 30 марта, 2016 Опубликовано 30 марта, 2016 · Жалоба Поставил пере инициализацию уарта если UART_HAL_GetRxDataRegFullIntCmd(baseAddr) == false. Не помогло.... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ataradov 0 30 марта, 2016 Опубликовано 30 марта, 2016 · Жалоба Не помогло.... Если "выключается прерывание" - это действительно не "пропадает флаг разрешения в регистре", а "вообще ничего не работет", то нужно действительно настраивать MPU и ловить левые обращения. Не важно что для чего предназначено, для отладки любое MPU подойдет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Asm_lock 0 30 марта, 2016 Опубликовано 30 марта, 2016 (изменено) · Жалоба Если "выключается прерывание" - это действительно не "пропадает флаг разрешения в регистре", а "вообще ничего не работет", то нужно действительно настраивать MPU и ловить левые обращения. Не важно что для чего предназначено, для отладки любое MPU подойдет. Ну как это ничего ?? LWIP работает, таймеры все работают....UART который весит на USB работает... Не работает только прерывание UART который весит на 485-м интерфейсе.... Изменено 30 марта, 2016 пользователем asm_lock Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ataradov 0 30 марта, 2016 Опубликовано 30 марта, 2016 · Жалоба Не работает только прерывание UART который весит на 485-м интерфейсе.... Ну так что говорит бит в регистре разрешения прерываний? Гадать на кофе тут не выйдет, нужно отлаживать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AlexandrY 3 30 марта, 2016 Опубликовано 30 марта, 2016 · Жалоба Ну как это ничего ?? LWIP работает, таймеры все работают....UART который весит на USB работает... Не работает только прерывание UART который весит на 485-м интерфейсе.... С LwIP так понимаю работаете из под FreeRTOS и все взято из примеров которые идут с SDK? Судя по тому что в SDK нет примеров LwIP совместно с USB, то вы наверно совершили рискованное скрещивание. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Asm_lock 0 31 марта, 2016 Опубликовано 31 марта, 2016 · Жалоба С LwIP так понимаю работаете из под FreeRTOS и все взято из примеров которые идут с SDK? Судя по тому что в SDK нет примеров LwIP совместно с USB, то вы наверно совершили рискованное скрещивание. Никакого FreeRTOS'а нету... у Frescale примеры есть в KSDK_1.0.0 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AlexandrY 3 31 марта, 2016 Опубликовано 31 марта, 2016 · Жалоба Никакого FreeRTOS'а нету... у Frescale примеры есть в KSDK_1.0.0 Староватый SDK. Теперь 2.0 актуальный и поддерживаемый. Но кто мешает взять там пример под IAR и отлаживать с нормальным перехватом обращений к регистрам? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Asm_lock 0 31 марта, 2016 Опубликовано 31 марта, 2016 · Жалоба Ну так что говорит бит в регистре разрешения прерываний? Гадать на кофе тут не выйдет, нужно отлаживать. В осовном цикле UART3_C2 = 0x2C; В обработчике UART3_C2 = 0x8C; Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AlexandrY 3 31 марта, 2016 Опубликовано 31 марта, 2016 · Жалоба В осовном цикле UART3_C2 = 0x2C; В обработчике UART3_C2 = 0x8C; TIE зависит от наличия процесса передачи и может быть любой и в обработчике и в цикле. RIE должен быть всегда установлен. Однако при переполнении прием запрещается. RIE устанавливается в 0, так написано в драйвере fsl_uart_driver.c Поэтому проверьте переполнение. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Asm_lock 0 31 марта, 2016 Опубликовано 31 марта, 2016 (изменено) · Жалоба TIE зависит от наличия процесса передачи и может быть любой и в обработчике и в цикле. RIE должен быть всегда установлен. Однако при переполнении прием запрещается. RIE устанавливается в 0, так написано в драйвере fsl_uart_driver.c Поэтому проверьте переполнение. В самом начале обработчика прерывания стоит опрос функции UART_HAL_GetRxDataRegFullIntCmd(baseAddr). Когда перестаю приниматься данные , он всегда false . Как это переполнение очистить то ? Изменено 31 марта, 2016 пользователем asm_lock Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AlexandrY 3 31 марта, 2016 Опубликовано 31 марта, 2016 · Жалоба В самом начале обработчика прерывания стоит опрос функции UART_HAL_GetRxDataRegFullIntCmd(baseAddr). Когда перестаю приниматься данные , он всегда false . Как это переполнение очистить то ? Так эта функция всего лишь возвращает значение RIE. В новом SDK от нее уже отказались. Поставьте просто UART3_C2 |= 0x20; после этой функции. Но будьте готовы к потере данных. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Asm_lock 0 31 марта, 2016 Опубликовано 31 марта, 2016 (изменено) · Жалоба UART3_C2 |= 0x20; после этой функции. Но будьте готовы к потере данных. попробую... ЗЫ: не помогло... Изменено 31 марта, 2016 пользователем asm_lock Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AlexandrY 3 31 марта, 2016 Опубликовано 31 марта, 2016 · Жалоба попробую... ЗЫ: не помогло... А какая установка глубины FIFO стоит? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Asm_lock 0 31 марта, 2016 Опубликовано 31 марта, 2016 · Жалоба А какая установка глубины 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 0 1 апреля, 2016 Опубликовано 1 апреля, 2016 · Жалоба Увеличил размер FIFO в регистре UARTx_PFIFO до 64 слов.... И начал чистить его как только выползал флаг OR в регистре UARTx_S1. Уже два часа работает без глюков... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться