В нашем случае программное обеспечение работает под управлением трёхканальной мажоритарной RTOS. Поверх неё расположено системное ПО, реализующее драйверы, протоколы обмена (UDP, RS-485), а также межканальный обмен.
Технологическое ПО взаимодействует с системным уровнем и RTOS через чётко определённые интерфейсы, преимущественно в виде массивов данных (чанков) и callback-функций. Само технологическое ПО напрямую не участвует в сетевом взаимодействии.
Существуют жёсткие архитектурные ограничения:
Отсутствие энергонезависимой памяти — все данные должны храниться и обрабатываться в ОЗУ.
Разделение памяти на секции: • ROM — область только для чтения, где размещаются все объектные модули, классы, статические структуры и т.д. Любые изменения этой области во время выполнения запрещены. (объем его строго не ограничен, оперативной памяти в целом достаточно) • RAM — изменяемая память, которая должна быть минимального объёма. Используется в том числе в межканальном обмене.
Для хранения изменяемых данных используются специальные обёртки — ссылки или константные указатели, указывающие на переменные, размещённые в RAM-секции.
Инициализация выполняется до закрытия ROM-секции контрольными суммами. Это включает: • Выделение памяти под неизменяемые объекты; • Вызов конструкторов; • Полную инициализацию и верификацию (максимально возможную).
После завершения инициализации ROM-секция считается зафиксированной, и любые попытки её изменения приводят к автоматической перезагрузке устройства.
ПО загружается единожды и функционирует весь срок службы устройства без перезапуска. В связи с этим: • Деструкторы не применяются; • Аллокация памяти разрешена только на этапе инициализации, в процессе работы динамическое выделение памяти строго запрещено. Поэтому динамически объекты не создаются (разве что на стеке).
Информация
В рейтинге
Не участвует
Откуда
Санкт-Петербург, Санкт-Петербург и область, Россия
В нашем случае программное обеспечение работает под управлением трёхканальной мажоритарной RTOS. Поверх неё расположено системное ПО, реализующее драйверы, протоколы обмена (UDP, RS-485), а также межканальный обмен.
Технологическое ПО взаимодействует с системным уровнем и RTOS через чётко определённые интерфейсы, преимущественно в виде массивов данных (чанков) и callback-функций. Само технологическое ПО напрямую не участвует в сетевом взаимодействии.
Существуют жёсткие архитектурные ограничения:
Отсутствие энергонезависимой памяти — все данные должны храниться и обрабатываться в ОЗУ.
Разделение памяти на секции: • ROM — область только для чтения, где размещаются все объектные модули, классы, статические структуры и т.д. Любые изменения этой области во время выполнения запрещены. (объем его строго не ограничен, оперативной памяти в целом достаточно) • RAM — изменяемая память, которая должна быть минимального объёма. Используется в том числе в межканальном обмене.
Для хранения изменяемых данных используются специальные обёртки — ссылки или константные указатели, указывающие на переменные, размещённые в RAM-секции.
Инициализация выполняется до закрытия ROM-секции контрольными суммами. Это включает:
• Выделение памяти под неизменяемые объекты;
• Вызов конструкторов;
• Полную инициализацию и верификацию (максимально возможную).
После завершения инициализации ROM-секция считается зафиксированной, и любые попытки её изменения приводят к автоматической перезагрузке устройства.
ПО загружается единожды и функционирует весь срок службы устройства без перезапуска. В связи с этим:
• Деструкторы не применяются;
• Аллокация памяти разрешена только на этапе инициализации, в процессе работы динамическое выделение памяти строго запрещено. Поэтому динамически объекты не создаются (разве что на стеке).