\chapter{Обзор {\ttfamily Extended\+Libs} } \hypertarget{index}{}\label{index}\index{Обзор $<$tt$>$ExtendedLibs$<$/tt$>$@{Обзор $<$tt$>$ExtendedLibs$<$/tt$>$}} \label{index_md__e_1_2_8_w_o_r_k_2_s_t_m32_2_s_t_m___libs_2_s_t_m32___extended_libs_2_r_e_a_d_m_e}% \Hypertarget{index_md__e_1_2_8_w_o_r_k_2_s_t_m32_2_s_t_m___libs_2_s_t_m32___extended_libs_2_r_e_a_d_m_e}% Extended\+Libs -\/ это набор библиотек для удобной работы с STM32. Данный субмодуль подключается напрямую из Git и содержит набор вспомогательных библиотек для работы МК, в частности STM32 и SEGGER RTT.\hypertarget{index_основные-возможности}{}\doxysection{\texorpdfstring{Основные возможности}{Основные возможности}}\label{index_основные-возможности} \hypertarget{index_общие-утилиты-mylibs-ref-mylibs_tools}{}\doxysubsubsection{\texorpdfstring{Общие утилиты My\+Libs (\protect\doxylink{group___m_y_l_i_b_s___t_o_o_l_s}{General Tools})}{Общие утилиты My\+Libs ({General Tools})}}\label{index_общие-утилиты-mylibs-ref-mylibs_tools} \begin{DoxyItemize} \item Макросы для задержек (\doxylink{group___d_e_l_a_y_s___d_e_f_i_n_e_s}{Delays defines}) \item Утилиты для работы с всяким (\doxylink{group___u_t_i_l_s___d_e_f_i_n_e_s}{Utils defines}) \item Битовый доступ к регистрам через union (\doxylink{group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s}{Bit access defines}) \end{DoxyItemize}\hypertarget{index_отладка-ref-mylibs_debug_tools}{}\doxysubsubsection{\texorpdfstring{Отладка\texorpdfstring{$\ast$}{*} (\protect\doxylink{group___m_y_l_i_b_s___d_e_b_u_g___t_o_o_l_s}{Debug Tools})}{Отладка\texorpdfstring{$\ast$}{*} ({Debug Tools})}}\label{index_отладка-ref-mylibs_debug_tools} \begin{DoxyItemize} \item Трассировка (\doxylink{group___t_r_a_c_e}{Trace defines}) \item Измерение временных интервалов (\doxylink{group___b_e_n_c_h___t_i_m_e}{Time measurement}) \item Генетический алгоритм для оптимизации параметров (\doxylink{group___g_e_n___o_p_t_i_m_i_z_e_r}{Genetic optimizer}) \item Трекеры для статистики и отладки (\doxylink{group___t_r_a_c_k_e_r_s}{Trackers defines}) \end{DoxyItemize} {\itshape \texorpdfstring{$\ast$}{*}Модули отладки независимы от My\+Libs и могут быть использованы отдельно}\hypertarget{index_структура-библиотеки}{}\doxysection{\texorpdfstring{Структура библиотеки}{Структура библиотеки}}\label{index_структура-библиотеки} \texorpdfstring{$\ast$}{*}\+Note\+: Файлы начинающиеся с {\ttfamily \+\_\+\+\_\+} и которых нет в этом дереве являются \texorpdfstring{$\ast$}{*}\texorpdfstring{$\ast$}{*}внутренними/непротестированными/недокументированными\texorpdfstring{$\ast$}{*}\texorpdfstring{$\ast$}{*}\texorpdfstring{$\ast$}{*} \begin{DoxyCode}{0} \DoxyCodeLine{ProjectRoot/} \DoxyCodeLine{├──\ MyLibs/\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \#\ Общие\ библиотеки,\ независимые\ от\ платформы\ (или\ почти)} \DoxyCodeLine{│\ \ \ ├──\ inc/} \DoxyCodeLine{│\ \ \ │\ \ \ ├──\ \_\_mylibs\_include.h\ \ \ \#\ Главный\ include\ файл} \DoxyCodeLine{│\ \ \ │\ \ \ ├──\ \_\_mylibs\_config.h\ \ \ \ \#\ Конфигурация\ библиотек} \DoxyCodeLine{│\ \ \ │\ \ \ ├──\ mylibs\_defs.h\ \ \ \ \ \ \ \ \#\ Общие\ определения\ и\ макросы} \DoxyCodeLine{│\ \ \ │\ \ \ ├──\ bit\_access.h\ \ \ \ \ \ \ \ \ \#\ Битовый\ доступ\ к\ регистрам} \DoxyCodeLine{│\ \ \ │\ \ \ ├──\ gen\_optimizer.h\ \ \ \ \ \ \#\ Оптимизатор\ (генетический\ алгоритм)} \DoxyCodeLine{│\ \ \ │\ \ \ ├──\ trackers.h\ \ \ \ \ \ \ \ \ \ \ \#\ Трекеры\ для\ отладки} \DoxyCodeLine{│\ \ \ │\ \ \ └──\ trace.h\ \ \ \ \ \ \ \ \ \ \ \ \ \ \#\ Трассировка\ и\ логирование} \DoxyCodeLine{│\ \ \ └──\ src/} \DoxyCodeLine{│} \DoxyCodeLine{└──RTT\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \#\ Библиотека\ RTT} \DoxyCodeLine{\ \ \ \ ├──\ \_\_SEGGER\_RTT\_Conf.h\ \ \ \ \ \ \#\ Конфигурационный\ файл\ RTT} \DoxyCodeLine{\ \ \ \ ├──\ SEGGER\_RTT.c\ \ \ \ \ \ \ \ \ \ \ \ \ \#\ Основной\ модуль\ RTT} \DoxyCodeLine{\ \ \ \ ├──\ SEGGER\_RTT.h\ \ \ \ \ \ \ \ \ \ \ \ \ \#\ Основной\ заголовок\ RTT} \DoxyCodeLine{\ \ \ \ ├──\ SEGGER\_RTT\_ASM\_ARMv7M.S\ \ \#\ Ассемблерная\ оптимизация\ для\ ARMv7M} \DoxyCodeLine{\ \ \ \ └──\ SEGGER\_RTT\_printf.c\ \ \ \ \ \ \#\ Реализация\ printf()\ через\ RTT} \end{DoxyCode} \hypertarget{index_инструкция-по-подключению}{}\doxysection{\texorpdfstring{Инструкция по подключению}{Инструкция по подключению}}\label{index_инструкция-по-подключению} \begin{DoxyEnumerate} \item {\bfseries{Склонируйте субмодуль}} в ваш проект\+: \end{DoxyEnumerate} \begin{DoxyCode}{0} \DoxyCodeLine{git\ submodule\ add\ https://git.arktika.cyou/Razvalyaev/STM32\_ExtendedLibs\ path/to/ExtendedLibs} \DoxyCodeLine{git\ submodule\ update\ -\/-\/init\ -\/-\/recursive} \end{DoxyCode} \begin{DoxyEnumerate} \item {\bfseries{Скопируйте файлы конфигурации и главный include}} в отдельную папку в вашем проекте (вне субмодуля) и удалите {\ttfamily \+\_\+\+\_\+}\+: \end{DoxyEnumerate} \begin{DoxyCode}{0} \DoxyCodeLine{ProjectRoot/} \DoxyCodeLine{├──\ Configs/} \DoxyCodeLine{│\ \ \ ├──\ mylibs\_include.h} \DoxyCodeLine{│\ \ \ └──\ mylibs\_config.h} \DoxyCodeLine{│\ \ \ └──\ SEGGER\_RTT\_Conf.h} \end{DoxyCode} \begin{DoxyEnumerate} \item {\bfseries{Настройте конфигурацию}} под ваш проект\+: \end{DoxyEnumerate} \begin{DoxyItemize} \item {\ttfamily mylibs\+\_\+config.\+h} — задайте нужные параметры библиотек. \item {\ttfamily mylibs\+\_\+include.\+h} — укажите пути к вашим заголовочным файлам и подключаемым модулям. \item {\ttfamily SEGGER\+\_\+\+RTT\+\_\+\+Conf.\+h} — настройки RTT. \end{DoxyItemize} \begin{DoxyEnumerate} \item {\bfseries{Подключайте библиотеки в вашем коде}} через главный include файл\+: \end{DoxyEnumerate} \begin{DoxyCode}{0} \DoxyCodeLine{\textcolor{preprocessor}{\#include\ "{}mylibs\_include.h"{}}} \end{DoxyCode} \begin{DoxyEnumerate} \item {\bfseries{Обновление библиотеки}}\+: \end{DoxyEnumerate} После обновления субмодуля из Git, исходные файлы библиотеки будут обновлены, но ваши конфиги останутся в целевой папке и не перезапишутся\+: \begin{DoxyCode}{0} \DoxyCodeLine{git\ submodule\ update\ -\/-\/remote} \end{DoxyCode}