Loading...
Searching...
No Matches
Обзор ExtendedLibs

ExtendedLibs - это набор библиотек для удобной работы с STM32. Данный субмодуль подключается напрямую из Git и содержит набор вспомогательных библиотек для работы МК, в частности STM32 и SEGGER RTT.

# Основные возможности

### Общие утилиты MyLibs (General Tools)

- Макросы для задержек (Delays defines)
- Утилиты для работы с всяким (Utils defines)
- Битовый доступ к регистрам через union (Bit access defines)

### Отладка* (Debug Tools)

- Трассировка (Trace defines)
- Измерение временных интервалов (Time measurement)
- Генетический алгоритм для оптимизации параметров (Genetic optimizer)
- Трекеры для статистики и отладки (Trackers defines)

*Модули отладки независимы от 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. Склонируйте субмодуль в ваш проект:

git submodule add https://git.arktika.cyou/Razvalyaev/STM32_ExtendedLibs path/to/ExtendedLibs
git submodule update --init --recursive

1. Скопируйте файлы конфигурации и главный include в отдельную папку в вашем проекте (вне субмодуля) и удалите __:

ProjectRoot/
├── Configs/
│ ├── mylibs_include.h
│ └── mylibs_config.h
│ └── SEGGER_RTT_Conf.h

1. Настройте конфигурацию под ваш проект:

- mylibs_config.h — задайте нужные параметры библиотек.
- mylibs_include.h — укажите пути к вашим заголовочным файлам и подключаемым модулям.
- SEGGER_RTT_Conf.h — настройки RTT.

1. Подключайте библиотеки в вашем коде через главный include файл:

#include "mylibs_include.h"

1. Обновление библиотеки:

После обновления субмодуля из Git, исходные файлы библиотеки будут обновлены, но ваши конфиги останутся в целевой папке и не перезапишутся:

git submodule update --remote