STM32_ExtendedLibs/README.md

82 lines
4.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Обзор `ExtendedLibs`
ExtendedLibs - это набор библиотек для удобной работы с STM32. Данный субмодуль подключается напрямую из Git и содержит набор вспомогательных библиотек для работы МК, в частности STM32 и SEGGER RTT.
## Основные возможности
#### Общие утилиты MyLibs (@ref MYLIBS_TOOLS)
- Макросы для задержек (@ref DELAYS_DEFINES)
- Утилиты для работы с всяким (@ref UTILS_DEFINES)
- Битовый доступ к регистрам через union (@ref BIT_ACCESS_DEFINES)
#### Отладка* (@ref MYLIBS_DEBUG_TOOLS)
- Трассировка (@ref TRACE)
- Измерение временных интервалов (@ref BENCH_TIME)
- Генетический алгоритм для оптимизации параметров (@ref GEN_OPTIMIZER)
- Трекеры для статистики и отладки (@ref TRACKERS)
_*Модули отладки независимы от MyLibs и могут быть использованы отдельно_
## Структура библиотеки
*Note: Файлы начинающиеся с `__` и которых нет в этом дереве являются **внутренними/непротестированными/недокументированными***
```
ProjectRoot/
├── MyLibs/ # Общие библиотеки, независимые от платформы (или почти)
│ ├── inc/
│ │ ├── __mylibs_include.h # Главный include файл
│ │ ├── __mylibs_config.h # Конфигурация библиотек
│ │ ├── mylibs_defs.h # Общие определения и макросы
│ │ ├── bit_access.h # Битовый доступ к регистрам
│ │ ├── gen_optimizer.h # Оптимизатор (генетический алгоритм)
│ │ ├── trackers.h # Трекеры для отладки
│ │ └── trace.h # Трассировка и логирование
│ └── src/
└──RTT # Библиотека RTT
├── __SEGGER_RTT_Conf.h # Конфигурационный файл RTT
├── SEGGER_RTT.c # Основной модуль RTT
├── SEGGER_RTT.h # Основной заголовок RTT
├── SEGGER_RTT_ASM_ARMv7M.S # Ассемблерная оптимизация для ARMv7M
└── SEGGER_RTT_printf.c # Реализация printf() через RTT
```
## Инструкция по подключению
1. **Склонируйте субмодуль** в ваш проект:
```bash
git submodule add https://git.arktika.cyou/Razvalyaev/STM32_ExtendedLibs path/to/ExtendedLibs
git submodule update --init --recursive
```
2. **Скопируйте файлы конфигурации и главный include** в отдельную папку в вашем проекте (вне субмодуля) и удалите `__`:
```
ProjectRoot/
├── Configs/
│ ├── mylibs_include.h
│ └── mylibs_config.h
│ └── SEGGER_RTT_Conf.h
```
3. **Настройте конфигурацию** под ваш проект:
* `mylibs_config.h` — задайте нужные параметры библиотек.
* `mylibs_include.h` — укажите пути к вашим заголовочным файлам и подключаемым модулям.
* `SEGGER_RTT_Conf.h` — настройки RTT.
4. **Подключайте библиотеки в вашем коде** через главный include файл:
```c
#include "mylibs_include.h"
```
5. **Обновление библиотеки**:
После обновления субмодуля из Git, исходные файлы библиотеки будут обновлены, но ваши конфиги останутся в целевой папке и не перезапишутся:
```bash
git submodule update --remote
```