ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Понедельник
22 июля
1169789 Топик полностью
Oman (31.01.2022 17:35, просмотров: 279) ответил VLLV на Господа, как вы проектируете ПО для семейства приборов с разной функциональностью на разных контроллерах?
Проекты на одном железе в одном воркспайсе, если много - делю по типам. 

Версии железа стараюсь долбить схематехников чтобы определялись в коде.

Конфиг json(пишу)/bson(транслирую и в коде с ним работаю). На нем гуи, система хранения уставок/журнал (ПО просмотра журнала в результате не изменяем, все только в устройстве), модбас (мастер/слейв, сервер/клиент).

Код платформо-, ОС-независимый, работа с модулями через интерфейсы. Конфигурю через define. Выглядит как то так

MOD_DEF( mem_space, MEM_SPACE) - имя модуля, его "класс"

MOD_ADD_INT_CONSTANT( mem_space, wr_at, mod_fm25) - вспомагательный/зависимый модуль (тут где реальное хранение происходит), должна быть реализация wr_at интерфейса

MOD_ADD_INT_CONSTANT( mem_space, title_sz, 512) - констата, размер заголовка

MOD_ADD_INTERFACE(MEM_SPACE, fs) - интерфейс fs, реализация MEM_SPACE (может быть много интерфейсов)

MOD_ADD_PATTERN(mem_space, singleton) - модуль в одном экземпляре, создается при запуске системы

MOD_DEF_END

MOD_DEF(msel4_guard, ARO_GUARD)

MOD_ADD_INT_VARIABLE(msel4_guard, mode, 1) // Тип работы (0 - выкл, 2 - блок)

MOD_ADD_INT_CONSTANT(msel4_guard, max, 0) // режим срабатывания, тут >0, вообще "eq":1 лучше

MOD_ADD_INT_ARRAY_CONSTANT(msel4_guard, check, variable_msel4_crash, variable_msel4_2_crash ) - триггера

MOD_ADD_INTERFACE(ARO_INT_GUARD, execute) - логика работы

MOD_ADD_INTERFACE(ARO_GUARD, switch) - интерфейс включения/выключения

MOD_DEF_END

Автоматом генерю проект-эмулятора на vs. Тестирую, пишу там, даю на сторону АСУшникам и т.д.

По flash дорого выходит, жирно. Но проекты клепаются быстро, зачастую больше отличай в конфигах(json, define'овском) чем в новом коде.