STM32_ExtendedLibs/README.md

84 lines
4.5 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`
Данный субмодуль подключается напрямую из Git и содержит набор вспомогательных библиотек для работы МК, в частности STM32 и SEGGER RTT.
## Структура библиотеки
*Note: Файлы начинающиеся с `__` и которых нет в этом дереве являются **внутренними/непротестированными/недокументированными***
```
ProjectRoot/
├── MyLibs/ # Общие библиотеки, независимые от платформы (или почти)
│ ├── inc/
│ │ ├── __mylibs_include.h # Главный include файл
│ │ ├── __mylibs_config.h # Конфигурация библиотек
│ │ ├── mylibs_defs.h # Общие определения и макросы
│ │ ├── bit_access.h # Битовый доступ к регистрам
│ │ ├── evolve_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
└── STM32_General # Работа с периферией STM32
├── inc/
│ ├── general_gpio.h # Работа с GPIO
│ ├── general_spi.h # Работа с SPI
│ ├── general_tim.h # Работа с таймерами
│ └── general_uart.h # Работа с UART
└── src/
├── general_gpio.c # Реализация GPIO
├── general_spi.c # Реализация SPI
├── general_tim.c # Реализация TIM
└── general_uart.c # Реализация UART
```
## Инструкция по подключению
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
```
## Документация
Библиотека `MyLibs` и `STM32_General` документирована в формате Doxygen. HTML документацию можно скачать [здесь](https://git.arktika.cyou/Razvalyaev/STM32_ExtendedLibs/archive/0.02.zip)
Библиотека `RTT` документирована в формате [страницы википедии](https://kb.segger.com/RTT) и просто комментариями в коде.