Как сделать встроенную систему настраиваемой без обновления всей прошивки - PullRequest
0 голосов
/ 27 мая 2020

Я совершенно новичок ie во встроенном ПО. В настоящее время я работаю над проектом, который реализует конвейер обработки изображений на MCU на базе ARM Cortex-M4 (модель платы: STM32F446RE).

Я хотел бы иметь возможность настраивать параметры конвейера на летать без фактического обновления всей прошивки, поскольку мы используем LoRa с низкой пропускной способностью.

Я искал в Google несколько часов и не смог найти никакого действительного решения. Не могли бы вы указать мне направление? Большое спасибо.

Кстати, я не знаю, актуально ли это, но я использую ядро ​​FreeRTOS с CMSIS RTOS API v2.

1 Ответ

0 голосов
/ 04 июня 2020

Если вы задаете этот вопрос, я надеюсь, что либо:

  1. Плата все еще находится в разработке, либо
  2. У вас есть доска, созданная кем-то, кто подумал об этих проблемах.

Если # 2, поговорите с тем, кто разработал доску, и узнайте, какие ресурсы были вложены для решения этих проблем.

Если # 1, вероятно, вы внесли свой вклад в дизайн.

Необходимые ресурсы:

  1. Энергонезависимая память: fla sh, eeprom, et c.
  2. Один или несколько способов записи параметров в это энергонезависимое хранилище

Желаемый ресурс: линия связи для ввода / вывода во время работы (часто используется последовательный порт).

Получив эти ресурсы, вы делаете следующее:

  1. Разработка переменных, структур данных и т. Д. c. для хранения параметров
  2. Спроектируйте свое энергонезависимое хранилище с учетом:

    a. Особенности / ограничения вашего носителя (например, память fla sh обычно требует стирания перед записью. Стирание требует времени и должно выполняться по секторам, а не по отдельным байтам.

    b. Проверка: ваша программа должна есть способ проверить, что энергонезависимое хранилище имеет допустимые значения, а не мусор, не все 0xFF, и либо не работает, либо использует значения по умолчанию или что-то подобное, если оно недопустимо

Затем вы можете написать программу, используя это.

Необходимо продумать, как вы будете записывать значения в энергонезависимую память

  • во время разработки
  • в производстве

Они вряд ли будут одинаковыми.

В процессе разработки вы хотите иметь возможность легко изменять значения. У вас может быть способ записать свой чип fla sh через JTAG. У вас может быть коммуникационный порт, который запускает какой-то простой интерфейс командной строки, принимает команды через какой-либо протокол, задает вопросы и считывает ответы через эмулятор терминала и т. д. c. Программа Затем m может записать значения в энергонезависимую память.

В производстве вы, вероятно, захотите записать «правильные» значения один раз, при настройке системы, без особого участия оператора.

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

...