4.2 KiB
4.2 KiB
Обзор 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
Инструкция по подключению
- Склонируйте субмодуль в ваш проект:
git submodule add https://git.arktika.cyou/Razvalyaev/STM32_ExtendedLibs path/to/ExtendedLibs
git submodule update --init --recursive
- Скопируйте файлы конфигурации и главный include в отдельную папку в вашем проекте (вне субмодуля) и удалите
__:
ProjectRoot/
├── Configs/
│ ├── mylibs_include.h
│ └── mylibs_config.h
│ └── SEGGER_RTT_Conf.h
- Настройте конфигурацию под ваш проект:
mylibs_config.h— задайте нужные параметры библиотек.mylibs_include.h— укажите пути к вашим заголовочным файлам и подключаемым модулям.SEGGER_RTT_Conf.h— настройки RTT.
- Подключайте библиотеки в вашем коде через главный include файл:
#include "mylibs_include.h"
- Обновление библиотеки:
После обновления субмодуля из Git, исходные файлы библиотеки будут обновлены, но ваши конфиги останутся в целевой папке и не перезапишутся:
git submodule update --remote