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 - сборка тестов
|
||
``` |