Вопрос: Есть устройство которое при старте шлёт ворох ерунды по uart тем самым не давая его настраивать (ну или dma) если просто вставить задержку то всё работает, но это как-то неспортивно. Собственно как правильно дождаться готовности для настройки uart??(cmsis) Заранее спасибо.
Я делаю функцию uart_flush(), которая при старте вынимает всё из uart "в никуда". Как только по таймауту она не получила ни одного байта, uart считается готовым.
Решил сделать бутлодер с сохранением предыдущей прошивки, для этого решил разбить память по полам и новый принятый образ записывать в отдельные сектора. Что бы при включении по понимало откуда стартовать решил ещё зарезервировать 1 2 сектор под шапку прошивки в них будет храниться crc принятой прошивки и индекс какая прошивка была записанная последней соответственно на какой адрес переносить таблицу прерывания. Сам бутлодер будет находиться в 0 секторе он только проверяет прошивки на валидность и запускает их.
Но тут у меня возник вопрос как сие чудо помешать в пустой процессор, через программатор а не бутлодер.
Тут всё очень сильно зависит от деталей: производительности MCU, FPU, типа сети, её размера. А точность не сильно, поскольку обучение будет произведено явно на более производительном оборудовании.