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