той ошибки что у меня была. Решил её локализовать. Убрал DMA. И ошибка осталась.
Появяляется она когда есть чтение из UART в тот момент когда триггерится софтварная таска с приоритетом выше, чем хардварная UART таска. Стоит заметить что софтварная таска оч тяжёлая, если она легче, то проблемы нет.
Как тестирую - запускаю программу и начинаю отправлять данные в UART. Всё ок. Потом начинаю отправлять именно в тот момент когда срабатывает софтварная таска - получаю ‘byte read ERROR’.
Если сделать приоритет у UART таски выше чем у софтварной, то ошибок нет.
Вот откуда корни растут? Хочу разобраться в этих корнях, чтобы потом не наступить случайно.
код тут: https://github.com/pronvis/drawer-robot/blob/81d91ed64654e3cd28689e3da0c244e7d9cd231a/src/main.rs#L313
эээ, а это зачем? https://github.com/pronvis/drawer-robot/blob/81d91ed64654e3cd28689e3da0c244e7d9cd231a/src/main.rs#L316C15-L316C15
тестил поможет или нет от ошибок
лол, у тебя ртик как раз для того чтобы в гаренных ресурсах брать мьютекс
Обсуждают сегодня