Спроектировать и настроить систему сборки

e
Заказчик
Отзывы фрилансеров: + 2 - 0
Зарегистрирован на сайте 11 месяцев
Бюджет: 20 000 руб
248.82 $ — 212.43 €
Исполнитель определен: Никита Халявин  
# Объект работы
Система сборки – весь софт, который нужен, чтоб получать из исходных кодов *.bin файлы с корректным отслеживанием зависимостей

Исходные коды и документация этого софта

# Требования
1. Позволяет собрать *.bin и *.elf файлы указанной прошивки
2. Позволяет залить бинарь на контроллер
3. Позволяет разбить исходники разных прошивок на несколько директорий с произвольной глубиной иерархии
4. Учитывает модули pnet/master и pnet/slave (разделяемые модули, которые могут быть подключены в прошивки без существенного изменения Makefile)
5. Учитывает util директорию (разделяемые модули, которые могут быть подключены в любые программы без существенного изменения Makefile)
6. Учитывает генерацию файла с хэшем залитой прошивки (заголовочник, создаваемый внешним скриптом; должен перегенерироваться при каждой сборке)
7. Учитывает тестовые стенды (отдельная директория, в которой лежат вспомогательные прошивки; прошивки в ней могут подключать utils)
8. Отслеживает зависимости заголовочников, в т.ч. транзитивные
9. Стек и окружение:
    – ОСь: debian 12
    – интерпретатор bash: 5.2.15
    – система сборки: make 4.3
    – библиотека периферии: libopencm3
    – тулчейн: arm-none-eabi
    – прошивка/отладка: openocd

# Ожидаемый результат
1. Прописан Makefile
2. Определена структура директорий (где лежит libopencm3, где pnet, где utils, где прошивки, где тестовые стенды)
3. Описание системы задокументировано (какие есть правила и ограничения; структура директорий; как добавить ещё узел, какие файлы для этого нужно актуализировать)
4. Архив с заглушечным кодом для проверки сборки, включающий:
    – произвольный код в utils (какой-нибудь разделяемый модуль, с любой функцией)
    – моковая прошивка тестового стенда (использует libopencm3 и utils); прошивка собирается и прошивается через make
    – моковая прошивка узла (использует libopencm3, pnet и utils); прошивка собирается и прошивается через make

# Приёмка
На машине с debian 12:
1. Распаковали архив с заглушечным кодом
2. из инструкции дали команду для сборки прошивки – получили *.elf и *.bin файлы для указанной прошивки
3. Изменили main.c файл прошивки, повторили команду – файлы *.elf и *.bin обновились
4. Добавили модуль (.h + .c файлы), подключили модуль в main.c, повторили команду – файлы *.elf и *.bin обновились
5. Сделали так, что скрипт генерирует другой файл с хэшем, повторили команду – файлы *.elf и *.bin обновились
6. Пересобрали библиотеку libopencm3, повторили команду – файлы *.elf и *.bin обновились
7. Изменили .h файл в модуле pnet, повторили команду – файлы *.elf и *.bin обновились
8. Изменили .c файл в модуле pnet, повторили команду – файлы *.elf и *.bin обновились

# Пожелания к реализации
Основаны на статье aegis.sourceforge.net/auu...

1. Предпочитать include рекурсивному make (исключение – сборка libopencm3)
2. Скорее всего, в каждом модуле должен быть файл с перечнем исходников, входящих в этот модуль
3. Скорее всего, удобнее будет организовать это в виде монорепозитория
Разделы:
Опубликован:
01.04.2025 | 10:16

Теги: нужен программист, ищу программиста, резюме программиста

Наши партнеры
Сведения об ООО «Ваан» внесены в реестр аккредитованных организаций, осуществляющих деятельность в области информационных технологий. ООО «Ваан» осуществляет деятельность, связанную с использованием информационных технологий, по разработке компьютерного программного обеспечения, предоставлению доступа к программе для ЭВМ и является правообладателем программы для ЭВМ «Платформа FL.ru (версия 2.0)».