Работа с фреймворком заказчика
Наша часть работы над прошивкой подразумевала создание драйверов – низкоуровневой прослойки ПО, которая отвечает за взаимодействие с конкретными аппаратными узлами. У каждого такого драйвера есть уровень абстракции, называемый контейнером, который обеспечивает взаимодействие с верхнеуровневым ПО, отвечающем за бизнес-логику устройства. Контейнерная система призвана ускорить разработку. Здесь от команды потребовалось использовать фирменный фреймворк заказчика.
Поскольку мы не были с ним знакомы, часть времени пришлось потратить на обучение наших программистов работе с этой платформой. Кроме того, для корректного взаимодействия бизнес-логики с контейнерами для них требовалось вручную создавать специальные файлы описания. И здесь большую роль играл человеческий фактор.
Создание прошивки с помощью фреймворка заказчика означало, что ПО будет хорошо интегрироваться с существующими системами клиента. Это также облегчает дальнейшее сопровождение и обновление ПО. Поэтому перед работой над прошивкой команда быстро освоила этот инструмент.
В процессе работы команда КЕДР Solutions внесла вклад и в улучшение кода, созданного разработчиками заказчика. В частности, мы значительно модифицировали контейнер АЦП, что позволило существенно повысить его производительность. Первоначальный код, разработанный для других продуктов, позволял проводить измерения только с частотой 1000 раз в секунду. Однако для текущего проекта требовалось гораздо более высокая скорость, и команда смогла повысить ее до примерно 80 000 измерений в секунду.