Обновить

Реализация модульной архитектуры прошивки методом ручной динамической линковки на примере STM32

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели15K
Всего голосов 13: ↑12 и ↓1+13
Комментарии15

Комментарии 15

Уфф ... до чего прогресс дошёл ))) до оверлеев. А ещё можно в асме головой накрячить )))

Интереснее была бы реализация обновления частей прошивки в ROM без перегрузки. Например, обновления версии WEB-интерфейса без прерывания работы realtime-функций так, чтобы на время перепрошивки ROM вызовы обновляемой части прошивки безопасно подменялись заглушками.

Есть ли где инструкция как на микроконтроллере запустить java virtual machine?

Ведь именно на java достигалась погрузка бинарей на кнопочных мобилках 20 лет назад

Не знаю кто заминусил Ваши вопросы и за что

У меня тоже есть текст про

Пуск функций из ram памяти.

https://habr.com/ru/articles/935360/

ARM Cortex-M: Исполнение кода из RAM памяти / Хабр https://share.google/lGO3gjowzfDpyMyJH

Посмотрю, спасибо!

В принципе патчи можно закидывать на SD карту или загружать по uart shell.

Мне нравится этот текст.

Да, хотел бы загрузчик, который бы сам искал на sd карте самую свежую прошивку и сам её подгружал, потому что у текущего проекта нет возможности каждый раз подключаться к swd разъему

Как вариант можно на MCU реализовать интерпретатор Basic или интерпретировать команды через UART(RTT)-shell.

Почему нам нужен интерфейс командной строки? 
https://habr.com/ru/articles/694408/

Медленно, зато нет проблем с бинарной совместимостью.

Зачем сразу USB Serial?
Разве у ST-link отладчиков нет CLI команд, чтобы bat скриптом по SWD/JTAG прописать на лету bin файл в RAM по фиксированному адресу?

Концепция модулей на МК интересная, однако чтобы это было эффективно на практике надо выпускать миллионы однотипных устройств, чтобы подгружать в них эти модули.

Собственно так и происходило в случае с кнопочными мобильными устройствами.

Для мелкосерийных проектов достаточно сложно придумать ситуацию, когда проще подключать модули нежели обновить всю прошивку.

На самом деле существует много устройств, которые должны работать постоянно, без перезагрузок, если не 24/7, то по крайней мере в рабочее время, когда удобно обновлять прошивку. Это и оборудование связи, и производственное оборудование, и энергическое. При этом часто можно выделить необязательные функции, которые можно обновить или расширьте без перезагрузки, путём замены модулей. Более того, нередко объём некритических модулей существенно больше, чем критических, а значит, даже если требуется их перепрошивка с остановкой работы критических функций, то она может быть выполнена существенно быстрее. В пределе перепрошивку критических модулей можно сделать малозаметной с точки зрения работы оборудования, если всё подхватится на лету.

Как вариант можно реализовать виртуальную машину и писать модули на ассемблере

Пишем собственную виртуальную машину / Хабр https://share.google/1QfwwNVPPTmMCcSVD

Предложите разработчикам Малахит DSP3 добавить модули в их SDR приемник.
Мне кажется это тот самый случай, когда функционал можно подгружать без замены прошивки.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации