ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Понедельник
20 мая
1278785
Dingo (25.01.2023 12:46, просмотров: 4650)
NUC970 BSP. Непонятная ситуация с переменной структуры, которая обновляется в прерывании. Обрабатываю пакеты сети, которым надо отметку времени. Столкнулся с ситуацией, когда время "улетает в прошлое". Раскопки привели к тому, что в прерывании, которое считает время, не обновляется значение регистра сравнения. Основное предположение сейчас - прерывание таймера имеет меньший приоритет, чем обработка сетевого пакета. Работа с сетью взята из примера, в нижний уровень сам не лез 

. Попытка просто уменьшит приоритет сети сломала её работу: даже пинг вешает. Есть мысль в функции взятия времени обрабатывать флаг запроса на прерывание таймера (и хрен с ними, с приоритетами тогда), но какой бит какого регистра AIC отвечает за это - пока не осилил.

Прошу совета у бедуинов, как решить лучше.

https://github.com/OpenNuvoton/NUC970_NonOS_BSP/tree/master/SampleCode/LwIP_httpd