84 lines
4.5 KiB
Markdown
84 lines
4.5 KiB
Markdown
# Инструкция по подключению релиза библиотеки `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) и просто комментариями в коде. |