src | ||
src_tests | ||
tools | ||
.gitignore | ||
Makefile | ||
README.md |
Программная часть проекта
Кроме cmsis и xpintf.h всё написано руками.
Код в процессе, нужно много дописывать и переписывать. Архитектура прошивки крайне проста, после инициализации мы попадаем в бесконечный цикл где обрабатываем модас трафик, производим измерения, и т.д. uart и i2c работают по DMA и не блокируют цикл. Все временные интервалы измеряются о системному таймеру.
Система сборки поддерживает разные сценарии:
make all #сборка прошивки
make check #пройти статическим анализатором
make doc #собрать doxygen
make test #сборка тестов
make flash #записать прошивку
make gdb #запуск отладчика
Структура проекта:
.
├── Makefile - ссылается на файлы в ./tools/makefiles
├── src
│ ├── core - cmsis, ld, startup
│ ├── lib - код в котором нет обращения к регистрам
│ ├── plib - код в отором идёт работа с регистрами
│ └── main.c - main прошики
├── src_tests
│ ├── tests - тесты
│ ├── mock_file - обёртки для тестов
│ └── main.cpp - main тестов
└── tools
├── cppcheck_conf - файлы статического анализатора
├── dockerfile - для запуска в контейнере
├── doxygen_conf - настройки для doxygen
├── Jenkinsfile - попытка в CI-CD
└── makefiles
├── mc_firmware.mk - сборка прошивка
├── settings.mk - все настройки, ключи файлы, директории
└── utests.mk - сборка тестов