44 lines
2.1 KiB
Markdown
44 lines
2.1 KiB
Markdown
|
|
|||
|
# Программная часть проекта
|
|||
|
|
|||
|
### Кроме 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 - сборка тестов
|
|||
|
```
|