Чет работает

This commit is contained in:
2025-12-16 17:57:59 +03:00
commit 260a6416ad
2906 changed files with 982301 additions and 0 deletions

View File

@@ -0,0 +1,42 @@
LATEX_CMD?=pdflatex
MKIDX_CMD?=makeindex
BIBTEX_CMD?=bibtex
LATEX_COUNT?=8
MANUAL_FILE?=refman
all: $(MANUAL_FILE).pdf
pdf: $(MANUAL_FILE).pdf
$(MANUAL_FILE).pdf: clean $(MANUAL_FILE).tex
$(LATEX_CMD) $(MANUAL_FILE) || \
if [ $$? != 0 ] ; then \
\echo "Please consult $(MANUAL_FILE).log to see the error messages" ; \
false; \
fi
$(MKIDX_CMD) $(MANUAL_FILE).idx
$(LATEX_CMD) $(MANUAL_FILE) || \
if [ $$? != 0 ] ; then \
\echo "Please consult $(MANUAL_FILE).log to see the error messages" ; \
false; \
fi
latex_count=$(LATEX_COUNT) ; \
while grep -E -s 'Rerun (LaTeX|to get cross-references right|to get bibliographical references right)' $(MANUAL_FILE).log && [ $$latex_count -gt 0 ] ;\
do \
echo "Rerunning latex...." ;\
$(LATEX_CMD) $(MANUAL_FILE) || \
if [ $$? != 0 ] ; then \
\echo "Please consult $(MANUAL_FILE).log to see the error messages" ; \
false; \
fi; \
latex_count=`expr $$latex_count - 1` ;\
done
$(MKIDX_CMD) $(MANUAL_FILE).idx
$(LATEX_CMD) $(MANUAL_FILE) || \
if [ $$? != 0 ] ; then \
\echo "Please consult $(MANUAL_FILE).log to see the error messages" ; \
false; \
fi
clean:
rm -f *.ps *.dvi *.aux *.toc *.idx *.ind *.ilg *.log *.out *.brf *.blg *.bbl $(MANUAL_FILE).pdf

View File

@@ -0,0 +1,434 @@
\doxysection{E\+:/.WORK/\+STM32/\+STM\+\_\+\+Libs/\+STM32\+\_\+\+Extended\+Libs/\+\_\+\+\_\+\+SEGGER\+\_\+\+RTT\+\_\+\+Conf.h}
\hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source}{}\label{_____s_e_g_g_e_r___r_t_t___conf_8h_source}
\begin{DoxyCode}{0}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00001}00001\ \textcolor{comment}{/*********************************************************************}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00002}00002\ \textcolor{comment}{*\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ SEGGER\ Microcontroller\ GmbH\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00003}00003\ \textcolor{comment}{*\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ The\ Embedded\ Experts\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00004}00004\ \textcolor{comment}{**********************************************************************}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00005}00005\ \textcolor{comment}{*\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00006}00006\ \textcolor{comment}{*\ \ \ \ \ \ \ \ \ \ \ \ (c)\ 1995\ -\/\ 2021\ SEGGER\ Microcontroller\ GmbH\ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00007}00007\ \textcolor{comment}{*\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00008}00008\ \textcolor{comment}{*\ \ \ \ \ \ \ www.segger.com\ \ \ \ \ Support:\ support@segger.com\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00009}00009\ \textcolor{comment}{*\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00010}00010\ \textcolor{comment}{**********************************************************************}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00011}00011\ \textcolor{comment}{*\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00012}00012\ \textcolor{comment}{*\ \ \ \ \ \ \ SEGGER\ RTT\ *\ Real\ Time\ Transfer\ for\ embedded\ targets\ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00013}00013\ \textcolor{comment}{*\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00014}00014\ \textcolor{comment}{**********************************************************************}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00015}00015\ \textcolor{comment}{*\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00016}00016\ \textcolor{comment}{*\ All\ rights\ reserved.\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00017}00017\ \textcolor{comment}{*\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00018}00018\ \textcolor{comment}{*\ SEGGER\ strongly\ recommends\ to\ not\ make\ any\ changes\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00019}00019\ \textcolor{comment}{*\ to\ or\ modify\ the\ source\ code\ of\ this\ software\ in\ order\ to\ stay\ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00020}00020\ \textcolor{comment}{*\ compatible\ with\ the\ RTT\ protocol\ and\ J-\/Link.\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00021}00021\ \textcolor{comment}{*\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00022}00022\ \textcolor{comment}{*\ Redistribution\ and\ use\ in\ source\ and\ binary\ forms,\ with\ or\ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00023}00023\ \textcolor{comment}{*\ without\ modification,\ are\ permitted\ provided\ that\ the\ following\ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00024}00024\ \textcolor{comment}{*\ condition\ is\ met:\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00025}00025\ \textcolor{comment}{*\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00026}00026\ \textcolor{comment}{*\ o\ Redistributions\ of\ source\ code\ must\ retain\ the\ above\ copyright\ \ \ *}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00027}00027\ \textcolor{comment}{*\ \ \ notice,\ this\ condition\ and\ the\ following\ disclaimer.\ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00028}00028\ \textcolor{comment}{*\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00029}00029\ \textcolor{comment}{*\ THIS\ SOFTWARE\ IS\ PROVIDED\ BY\ THE\ COPYRIGHT\ HOLDERS\ AND\ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00030}00030\ \textcolor{comment}{*\ CONTRIBUTORS\ "{}AS\ IS"{}\ AND\ ANY\ EXPRESS\ OR\ IMPLIED\ WARRANTIES,\ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00031}00031\ \textcolor{comment}{*\ INCLUDING,\ BUT\ NOT\ LIMITED\ TO,\ THE\ IMPLIED\ WARRANTIES\ OF\ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00032}00032\ \textcolor{comment}{*\ MERCHANTABILITY\ AND\ FITNESS\ FOR\ A\ PARTICULAR\ PURPOSE\ ARE\ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00033}00033\ \textcolor{comment}{*\ DISCLAIMED.\ IN\ NO\ EVENT\ SHALL\ SEGGER\ Microcontroller\ BE\ LIABLE\ FOR\ *}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00034}00034\ \textcolor{comment}{*\ ANY\ DIRECT,\ INDIRECT,\ INCIDENTAL,\ SPECIAL,\ EXEMPLARY,\ OR\ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00035}00035\ \textcolor{comment}{*\ CONSEQUENTIAL\ DAMAGES\ (INCLUDING,\ BUT\ NOT\ LIMITED\ TO,\ PROCUREMENT\ \ *}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00036}00036\ \textcolor{comment}{*\ OF\ SUBSTITUTE\ GOODS\ OR\ SERVICES;\ LOSS\ OF\ USE,\ DATA,\ OR\ PROFITS;\ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00037}00037\ \textcolor{comment}{*\ OR\ BUSINESS\ INTERRUPTION)\ HOWEVER\ CAUSED\ AND\ ON\ ANY\ THEORY\ OF\ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00038}00038\ \textcolor{comment}{*\ LIABILITY,\ WHETHER\ IN\ CONTRACT,\ STRICT\ LIABILITY,\ OR\ TORT\ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00039}00039\ \textcolor{comment}{*\ (INCLUDING\ NEGLIGENCE\ OR\ OTHERWISE)\ ARISING\ IN\ ANY\ WAY\ OUT\ OF\ THE\ \ *}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00040}00040\ \textcolor{comment}{*\ USE\ OF\ THIS\ SOFTWARE,\ EVEN\ IF\ ADVISED\ OF\ THE\ POSSIBILITY\ OF\ SUCH\ \ \ *}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00041}00041\ \textcolor{comment}{*\ DAMAGE.\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00042}00042\ \textcolor{comment}{*\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00043}00043\ \textcolor{comment}{**********************************************************************}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00044}00044\ \textcolor{comment}{*\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00045}00045\ \textcolor{comment}{*\ \ \ \ \ \ \ RTT\ version:\ 8.10g\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00046}00046\ \textcolor{comment}{*\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00047}00047\ \textcolor{comment}{**********************************************************************}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00048}00048\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00049}00049\ \textcolor{comment}{-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/END-\/OF-\/HEADER-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00050}00050\ \textcolor{comment}{File\ \ \ \ :\ SEGGER\_RTT\_Conf.h}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00051}00051\ \textcolor{comment}{Purpose\ :\ Implementation\ of\ SEGGER\ real-\/time\ transfer\ (RTT)\ which}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00052}00052\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ allows\ real-\/time\ communication\ on\ targets\ which\ support}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00053}00053\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ debugger\ memory\ accesses\ while\ the\ CPU\ is\ running.}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00054}00054\ \textcolor{comment}{Revision:\ \$Rev:\ 24316\ \$}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00055}00055\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00056}00056\ \textcolor{comment}{*/}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00057}00057\ }
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00058}00058\ \textcolor{preprocessor}{\#ifndef\ SEGGER\_RTT\_CONF\_H}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00059}00059\ \textcolor{preprocessor}{\#define\ SEGGER\_RTT\_CONF\_H}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00060}00060\ }
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00061}00061\ \textcolor{preprocessor}{\#ifdef\ \_\_IAR\_SYSTEMS\_ICC\_\_}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00062}00062\ \textcolor{preprocessor}{\ \ \#include\ <intrinsics.h>}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00063}00063\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00064}00064\ }
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00065}00065\ \textcolor{comment}{/*********************************************************************}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00066}00066\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00067}00067\ \textcolor{comment}{*\ \ \ \ \ \ \ Defines,\ configurable}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00068}00068\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00069}00069\ \textcolor{comment}{**********************************************************************}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00070}00070\ \textcolor{comment}{*/}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00071}00071\ }
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00072}00072\ \textcolor{comment}{//}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00073}00073\ \textcolor{comment}{//\ Take\ in\ and\ set\ to\ correct\ values\ for\ Cortex-\/A\ systems\ with\ CPU\ cache}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00074}00074\ \textcolor{comment}{//}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00075}00075\ \textcolor{comment}{//\#define\ SEGGER\_RTT\_CPU\_CACHE\_LINE\_SIZE\ \ \ \ \ \ \ \ \ \ \ \ (32)\ \ \ \ \ \ \ \ \ \ //\ Largest\ cache\ line\ size\ (in\ bytes)\ in\ the\ current\ system}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00076}00076\ \textcolor{comment}{//\#define\ SEGGER\_RTT\_UNCACHED\_OFF\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (0xFB000000)\ \ //\ Address\ alias\ where\ RTT\ CB\ and\ buffers\ can\ be\ accessed\ uncached}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00077}00077\ \textcolor{comment}{//}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00078}00078\ \textcolor{comment}{//\ Most\ common\ case:}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00079}00079\ \textcolor{comment}{//\ Up-\/channel\ 0:\ RTT}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00080}00080\ \textcolor{comment}{//\ Up-\/channel\ 1:\ SystemView}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00081}00081\ \textcolor{comment}{//}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00082}00082\ \textcolor{preprocessor}{\#ifndef\ \ \ SEGGER\_RTT\_MAX\_NUM\_UP\_BUFFERS}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00083}00083\ \textcolor{preprocessor}{\ \ \#define\ SEGGER\_RTT\_MAX\_NUM\_UP\_BUFFERS\ \ \ \ \ \ \ \ \ \ \ \ \ (3)\ \ \ \ \ }\textcolor{comment}{//\ Max.\ number\ of\ up-\/buffers\ (T-\/>H)\ available\ on\ this\ target\ \ \ \ (Default:\ 3)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00084}00084\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00085}00085\ \textcolor{comment}{//}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00086}00086\ \textcolor{comment}{//\ Most\ common\ case:}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00087}00087\ \textcolor{comment}{//\ Down-\/channel\ 0:\ RTT}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00088}00088\ \textcolor{comment}{//\ Down-\/channel\ 1:\ SystemView}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00089}00089\ \textcolor{comment}{//}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00090}00090\ \textcolor{preprocessor}{\#ifndef\ \ \ SEGGER\_RTT\_MAX\_NUM\_DOWN\_BUFFERS}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00091}00091\ \textcolor{preprocessor}{\ \ \#define\ SEGGER\_RTT\_MAX\_NUM\_DOWN\_BUFFERS\ \ \ \ \ \ \ \ \ \ \ (3)\ \ \ \ \ }\textcolor{comment}{//\ Max.\ number\ of\ down-\/buffers\ (H-\/>T)\ available\ on\ this\ target\ \ (Default:\ 3)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00092}00092\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00093}00093\ }
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00094}00094\ \textcolor{preprocessor}{\#ifndef\ \ \ BUFFER\_SIZE\_UP}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00095}00095\ \textcolor{preprocessor}{\ \ \#define\ BUFFER\_SIZE\_UP\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (4096)\ \ }\textcolor{comment}{//\ Size\ of\ the\ buffer\ for\ terminal\ output\ of\ target,\ up\ to\ host\ (Default:\ 1k)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00096}00096\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00097}00097\ }
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00098}00098\ \textcolor{preprocessor}{\#ifndef\ \ \ BUFFER\_SIZE\_DOWN}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00099}00099\ \textcolor{preprocessor}{\ \ \#define\ BUFFER\_SIZE\_DOWN\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (16)\ \ \ \ }\textcolor{comment}{//\ Size\ of\ the\ buffer\ for\ terminal\ input\ to\ target\ from\ host\ (Usually\ keyboard\ input)\ (Default:\ 16)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00100}00100\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00101}00101\ }
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00102}00102\ \textcolor{preprocessor}{\#ifndef\ \ \ SEGGER\_RTT\_PRINTF\_BUFFER\_SIZE}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00103}00103\ \textcolor{preprocessor}{\ \ \#define\ SEGGER\_RTT\_PRINTF\_BUFFER\_SIZE\ \ \ \ \ \ \ \ \ \ \ \ \ (64u)\ \ \ \ }\textcolor{comment}{//\ Size\ of\ buffer\ for\ RTT\ printf\ to\ bulk-\/send\ chars\ via\ RTT\ \ \ \ \ (Default:\ 64)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00104}00104\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00105}00105\ }
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00106}00106\ \textcolor{preprocessor}{\#ifndef\ \ \ SEGGER\_RTT\_MODE\_DEFAULT}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00107}00107\ \textcolor{preprocessor}{\ \ \#define\ SEGGER\_RTT\_MODE\_DEFAULT\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ SEGGER\_RTT\_MODE\_NO\_BLOCK\_TRIM\ }\textcolor{comment}{//\ Mode\ for\ pre-\/initialized\ terminal\ channel\ (buffer\ 0)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00108}00108\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00109}00109\ }
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00110}00110\ \textcolor{comment}{/*********************************************************************}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00111}00111\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00112}00112\ \textcolor{comment}{*\ \ \ \ \ \ \ RTT\ memcpy\ configuration}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00113}00113\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00114}00114\ \textcolor{comment}{*\ \ \ \ \ \ \ memcpy()\ is\ good\ for\ large\ amounts\ of\ data,}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00115}00115\ \textcolor{comment}{*\ \ \ \ \ \ \ but\ the\ overhead\ is\ big\ for\ small\ amounts,\ which\ are\ usually\ stored\ via\ RTT.}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00116}00116\ \textcolor{comment}{*\ \ \ \ \ \ \ With\ SEGGER\_RTT\_MEMCPY\_USE\_BYTELOOP\ a\ simple\ byte\ loop\ can\ be\ used\ instead.}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00117}00117\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00118}00118\ \textcolor{comment}{*\ \ \ \ \ \ \ SEGGER\_RTT\_MEMCPY()\ can\ be\ used\ to\ replace\ standard\ memcpy()\ in\ RTT\ functions.}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00119}00119\ \textcolor{comment}{*\ \ \ \ \ \ \ This\ is\ may\ be\ required\ with\ memory\ access\ restrictions,}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00120}00120\ \textcolor{comment}{*\ \ \ \ \ \ \ such\ as\ on\ Cortex-\/A\ devices\ with\ MMU.}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00121}00121\ \textcolor{comment}{*/}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00122}00122\ \textcolor{preprocessor}{\#ifndef\ \ \ SEGGER\_RTT\_MEMCPY\_USE\_BYTELOOP}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00123}00123\ \textcolor{preprocessor}{\ \ \#define\ SEGGER\_RTT\_MEMCPY\_USE\_BYTELOOP\ \ \ \ \ \ \ \ \ \ \ \ \ \ 0\ }\textcolor{comment}{//\ 0:\ Use\ memcpy/SEGGER\_RTT\_MEMCPY,\ 1:\ Use\ a\ simple\ byte-\/loop}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00124}00124\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00125}00125\ \textcolor{comment}{//}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00126}00126\ \textcolor{comment}{//\ Example\ definition\ of\ SEGGER\_RTT\_MEMCPY\ to\ external\ memcpy\ with\ GCC\ toolchains\ and\ Cortex-\/A\ targets}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00127}00127\ \textcolor{comment}{//}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00128}00128\ \textcolor{comment}{//\#if\ ((defined\ \_\_SES\_ARM)\ ||\ (defined\ \_\_CROSSWORKS\_ARM)\ ||\ (defined\ \_\_GNUC\_\_))\ \&\&\ (defined\ (\_\_ARM\_ARCH\_7A\_\_))}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00129}00129\ \textcolor{comment}{//\ \ \#define\ SEGGER\_RTT\_MEMCPY(pDest,\ pSrc,\ NumBytes)\ \ \ \ \ \ SEGGER\_memcpy((pDest),\ (pSrc),\ (NumBytes))}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00130}00130\ \textcolor{comment}{//\#endif}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00131}00131\ }
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00132}00132\ \textcolor{comment}{//}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00133}00133\ \textcolor{comment}{//\ Target\ is\ not\ allowed\ to\ perform\ other\ RTT\ operations\ while\ string\ still\ has\ not\ been\ stored\ completely.}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00134}00134\ \textcolor{comment}{//\ Otherwise\ we\ would\ probably\ end\ up\ with\ a\ mixed\ string\ in\ the\ buffer.}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00135}00135\ \textcolor{comment}{//\ If\ using\ \ RTT\ from\ within\ interrupts,\ multiple\ tasks\ or\ multi\ processors,\ define\ the\ SEGGER\_RTT\_LOCK()\ and\ SEGGER\_RTT\_UNLOCK()\ function\ here.}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00136}00136\ \textcolor{comment}{//}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00137}00137\ \textcolor{comment}{//\ SEGGER\_RTT\_MAX\_INTERRUPT\_PRIORITY\ can\ be\ used\ in\ the\ sample\ lock\ routines\ on\ Cortex-\/M3/4.}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00138}00138\ \textcolor{comment}{//\ Make\ sure\ to\ mask\ all\ interrupts\ which\ can\ send\ RTT\ data,\ i.e.\ generate\ SystemView\ events,\ or\ cause\ task\ switches.}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00139}00139\ \textcolor{comment}{//\ When\ high-\/priority\ interrupts\ must\ not\ be\ masked\ while\ sending\ RTT\ data,\ SEGGER\_RTT\_MAX\_INTERRUPT\_PRIORITY\ needs\ to\ be\ adjusted\ accordingly.}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00140}00140\ \textcolor{comment}{//\ (Higher\ priority\ =\ lower\ priority\ number)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00141}00141\ \textcolor{comment}{//\ Default\ value\ for\ embOS:\ 128u}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00142}00142\ \textcolor{comment}{//\ Default\ configuration\ in\ FreeRTOS:\ configMAX\_SYSCALL\_INTERRUPT\_PRIORITY:\ (\ configLIBRARY\_MAX\_SYSCALL\_INTERRUPT\_PRIORITY\ <<\ (8\ -\/\ configPRIO\_BITS)\ )}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00143}00143\ \textcolor{comment}{//\ In\ case\ of\ doubt\ mask\ all\ interrupts:\ 1\ <<\ (8\ -\/\ BASEPRI\_PRIO\_BITS)\ i.e.\ 1\ <<\ 5\ when\ 3\ bits\ are\ implemented\ in\ NVIC}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00144}00144\ \textcolor{comment}{//\ or\ define\ SEGGER\_RTT\_LOCK()\ to\ completely\ disable\ interrupts.}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00145}00145\ \textcolor{comment}{//}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00146}00146\ \textcolor{preprocessor}{\#ifndef\ \ \ SEGGER\_RTT\_MAX\_INTERRUPT\_PRIORITY}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00147}00147\ \textcolor{preprocessor}{\ \ \#define\ SEGGER\_RTT\_MAX\_INTERRUPT\_PRIORITY\ \ \ \ \ \ \ \ \ (0x20)\ \ \ }\textcolor{comment}{//\ Interrupt\ priority\ to\ lock\ on\ SEGGER\_RTT\_LOCK\ on\ Cortex-\/M3/4\ (Default:\ 0x20)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00148}00148\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00149}00149\ }
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00150}00150\ \textcolor{comment}{/*********************************************************************}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00151}00151\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00152}00152\ \textcolor{comment}{*\ \ \ \ \ \ \ RTT\ lock\ configuration\ for\ SEGGER\ Embedded\ Studio,}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00153}00153\ \textcolor{comment}{*\ \ \ \ \ \ \ Rowley\ CrossStudio\ and\ GCC}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00154}00154\ \textcolor{comment}{*/}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00155}00155\ \textcolor{preprocessor}{\#if\ ((defined(\_\_SES\_ARM)\ ||\ defined(\_\_SES\_RISCV)\ ||\ defined(\_\_CROSSWORKS\_ARM)\ ||\ defined(\_\_GNUC\_\_)\ ||\ defined(\_\_clang\_\_))\ \&\&\ !defined\ (\_\_CC\_ARM)\ \&\&\ !defined(WIN32))}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00156}00156\ \textcolor{preprocessor}{\ \ \#if\ (defined(\_\_ARM\_ARCH\_6M\_\_)\ ||\ defined(\_\_ARM\_ARCH\_8M\_BASE\_\_))}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00157}00157\ \textcolor{preprocessor}{\ \ \ \ \#define\ SEGGER\_RTT\_LOCK()\ \ \ \{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00158}00158\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ unsigned\ int\ \_SEGGER\_RTT\_\_LockState;\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00159}00159\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \_\_asm\ volatile\ ("{}mrs\ \ \ \%0,\ primask\ \ \(\backslash\)n\(\backslash\)t"{}\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00160}00160\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ "{}movs\ \ r1,\ \#1\ \ \ \ \ \ \ \(\backslash\)n\(\backslash\)t"{}\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00161}00161\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ "{}msr\ \ \ primask,\ r1\ \ \(\backslash\)n\(\backslash\)t"{}\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00162}00162\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ :\ "{}=r"{}\ (\_SEGGER\_RTT\_\_LockState)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00163}00163\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ :\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00164}00164\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ :\ "{}r1"{},\ "{}cc"{}\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00165}00165\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ );}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00166}00166\ }
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00167}00167\ \textcolor{preprocessor}{\ \ \ \ \#define\ SEGGER\_RTT\_UNLOCK()\ \ \ \_\_asm\ volatile\ ("{}msr\ \ \ primask,\ \%0\ \ \(\backslash\)n\(\backslash\)t"{}\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00168}00168\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ :\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00169}00169\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ :\ "{}r"{}\ (\_SEGGER\_RTT\_\_LockState)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00170}00170\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ :\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00171}00171\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ );\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00172}00172\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00173}00173\ \textcolor{preprocessor}{\ \ \#elif\ (defined(\_\_ARM\_ARCH\_7M\_\_)\ ||\ defined(\_\_ARM\_ARCH\_7EM\_\_)\ ||\ defined(\_\_ARM\_ARCH\_8M\_MAIN\_\_)\ ||\ defined(\_\_ARM\_ARCH\_8\_1M\_MAIN\_\_))}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00174}00174\ \textcolor{preprocessor}{\ \ \ \ \#ifndef\ \ \ SEGGER\_RTT\_MAX\_INTERRUPT\_PRIORITY}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00175}00175\ \textcolor{preprocessor}{\ \ \ \ \ \ \#define\ SEGGER\_RTT\_MAX\_INTERRUPT\_PRIORITY\ \ \ (0x20)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00176}00176\ \textcolor{preprocessor}{\ \ \ \ \#endif}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00177}00177\ \textcolor{preprocessor}{\ \ \ \ \#define\ SEGGER\_RTT\_LOCK()\ \ \ \{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00178}00178\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ unsigned\ int\ \_SEGGER\_RTT\_\_LockState;\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00179}00179\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \_\_asm\ volatile\ ("{}mrs\ \ \ \%0,\ basepri\ \ \(\backslash\)n\(\backslash\)t"{}\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00180}00180\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ "{}mov\ \ \ r1,\ \%1\ \ \ \ \ \ \ \(\backslash\)n\(\backslash\)t"{}\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00181}00181\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ "{}msr\ \ \ basepri,\ r1\ \ \(\backslash\)n\(\backslash\)t"{}\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00182}00182\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ :\ "{}=r"{}\ (\_SEGGER\_RTT\_\_LockState)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00183}00183\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ :\ "{}i"{}(SEGGER\_RTT\_MAX\_INTERRUPT\_PRIORITY)\ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00184}00184\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ :\ "{}r1"{},\ "{}cc"{}\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00185}00185\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ );}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00186}00186\ }
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00187}00187\ \textcolor{preprocessor}{\ \ \ \ \#define\ SEGGER\_RTT\_UNLOCK()\ \ \ \_\_asm\ volatile\ ("{}msr\ \ \ basepri,\ \%0\ \ \(\backslash\)n\(\backslash\)t"{}\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00188}00188\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ :\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00189}00189\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ :\ "{}r"{}\ (\_SEGGER\_RTT\_\_LockState)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00190}00190\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ :\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00191}00191\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ );\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00192}00192\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00193}00193\ }
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00194}00194\ \textcolor{preprocessor}{\ \ \#elif\ (defined(\_\_ARM\_ARCH\_7A\_\_)\ ||\ defined(\_\_ARM\_ARCH\_7R\_\_))}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00195}00195\ \textcolor{preprocessor}{\ \ \ \ \#define\ SEGGER\_RTT\_LOCK()\ \{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00196}00196\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ unsigned\ int\ \_SEGGER\_RTT\_\_LockState;\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00197}00197\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \_\_asm\ volatile\ ("{}mrs\ r1,\ CPSR\ \(\backslash\)n\(\backslash\)t"{}\ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00198}00198\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ "{}mov\ \%0,\ r1\ \(\backslash\)n\(\backslash\)t"{}\ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00199}00199\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ "{}orr\ r1,\ r1,\ \#0xC0\ \(\backslash\)n\(\backslash\)t"{}\ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00200}00200\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ "{}msr\ CPSR\_c,\ r1\ \(\backslash\)n\(\backslash\)t"{}\ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00201}00201\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ :\ "{}=r"{}\ (\_SEGGER\_RTT\_\_LockState)\ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00202}00202\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ :\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00203}00203\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ :\ "{}r1"{},\ "{}cc"{}\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00204}00204\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ );}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00205}00205\ }
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00206}00206\ \textcolor{preprocessor}{\ \ \ \ \#define\ SEGGER\_RTT\_UNLOCK()\ \_\_asm\ volatile\ ("{}mov\ r0,\ \%0\ \(\backslash\)n\(\backslash\)t"{}\ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00207}00207\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ "{}mrs\ r1,\ CPSR\ \(\backslash\)n\(\backslash\)t"{}\ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00208}00208\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ "{}bic\ r1,\ r1,\ \#0xC0\ \(\backslash\)n\(\backslash\)t"{}\ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00209}00209\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ "{}and\ r0,\ r0,\ \#0xC0\ \(\backslash\)n\(\backslash\)t"{}\ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00210}00210\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ "{}orr\ r1,\ r1,\ r0\ \(\backslash\)n\(\backslash\)t"{}\ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00211}00211\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ "{}msr\ CPSR\_c,\ r1\ \(\backslash\)n\(\backslash\)t"{}\ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00212}00212\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ :\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00213}00213\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ :\ "{}r"{}\ (\_SEGGER\_RTT\_\_LockState)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00214}00214\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ :\ "{}r0"{},\ "{}r1"{},\ "{}cc"{}\ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00215}00215\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ );\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00216}00216\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00217}00217\ \textcolor{preprocessor}{\ \ \#elif\ defined(\_\_riscv)\ ||\ defined(\_\_riscv\_xlen)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00218}00218\ \textcolor{preprocessor}{\ \ \ \ \#define\ SEGGER\_RTT\_LOCK()\ \ \{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00219}00219\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ unsigned\ int\ \_SEGGER\_RTT\_\_LockState;\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00220}00220\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \_\_asm\ volatile\ ("{}csrr\ \ \%0,\ mstatus\ \ \(\backslash\)n\(\backslash\)t"{}\ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00221}00221\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ "{}csrci\ mstatus,\ 8\ \ \ \(\backslash\)n\(\backslash\)t"{}\ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00222}00222\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ "{}andi\ \ \%0,\ \%0,\ \ 8\ \ \ \(\backslash\)n\(\backslash\)t"{}\ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00223}00223\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ :\ "{}=r"{}\ (\_SEGGER\_RTT\_\_LockState)\ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00224}00224\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ :\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00225}00225\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ :\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00226}00226\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ );}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00227}00227\ }
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00228}00228\ \textcolor{preprocessor}{\ \ \#define\ SEGGER\_RTT\_UNLOCK()\ \ \ \ \_\_asm\ volatile\ ("{}csrr\ \ a1,\ mstatus\ \ \(\backslash\)n\(\backslash\)t"{}\ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00229}00229\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ "{}or\ \ \ \ \%0,\ \%0,\ a1\ \ \ \(\backslash\)n\(\backslash\)t"{}\ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00230}00230\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ "{}csrs\ \ mstatus,\ \%0\ \ \(\backslash\)n\(\backslash\)t"{}\ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00231}00231\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ :\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00232}00232\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ :\ "{}r"{}\ \ (\_SEGGER\_RTT\_\_LockState)\ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00233}00233\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ :\ "{}a1"{}\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00234}00234\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ );\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00235}00235\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00236}00236\ \textcolor{preprocessor}{\ \ \#else}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00237}00237\ \textcolor{preprocessor}{\ \ \ \ \#define\ SEGGER\_RTT\_LOCK()}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00238}00238\ \textcolor{preprocessor}{\ \ \ \ \#define\ SEGGER\_RTT\_UNLOCK()}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00239}00239\ \textcolor{preprocessor}{\ \ \#endif}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00240}00240\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00241}00241\ }
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00242}00242\ \textcolor{comment}{/*********************************************************************}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00243}00243\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00244}00244\ \textcolor{comment}{*\ \ \ \ \ \ \ RTT\ lock\ configuration\ for\ IAR\ EWARM}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00245}00245\ \textcolor{comment}{*/}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00246}00246\ \textcolor{preprocessor}{\#ifdef\ \_\_ICCARM\_\_}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00247}00247\ \textcolor{preprocessor}{\ \ \#if\ (defined\ (\_\_ARM6M\_\_)\ \ \ \ \ \ \ \ \ \ \&\&\ (\_\_CORE\_\_\ ==\ \_\_ARM6M\_\_))\ \ \ \ \ \ \ \ \ \ \ \ \ ||\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00248}00248\ \textcolor{preprocessor}{\ \ \ \ \ \ (defined\ (\_\_ARM8M\_BASELINE\_\_)\ \&\&\ (\_\_CORE\_\_\ ==\ \_\_ARM8M\_BASELINE\_\_))}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00249}00249\ \textcolor{preprocessor}{\ \ \ \ \#define\ SEGGER\_RTT\_LOCK()\ \ \ \{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00250}00250\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ unsigned\ int\ \_SEGGER\_RTT\_\_LockState;\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00251}00251\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \_SEGGER\_RTT\_\_LockState\ =\ \_\_get\_PRIMASK();\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00252}00252\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \_\_set\_PRIMASK(1);}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00253}00253\ }
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00254}00254\ \textcolor{preprocessor}{\ \ \ \ \#define\ SEGGER\_RTT\_UNLOCK()\ \ \ \_\_set\_PRIMASK(\_SEGGER\_RTT\_\_LockState);\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00255}00255\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00256}00256\ \textcolor{preprocessor}{\ \ \#elif\ (defined\ (\_\_ARM7EM\_\_)\ \ \ \ \ \ \ \ \ \&\&\ (\_\_CORE\_\_\ ==\ \_\_ARM7EM\_\_))\ \ \ \ \ \ \ \ \ \ ||\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00257}00257\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ (defined\ (\_\_ARM7M\_\_)\ \ \ \ \ \ \ \ \ \ \&\&\ (\_\_CORE\_\_\ ==\ \_\_ARM7M\_\_))\ \ \ \ \ \ \ \ \ \ \ ||\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00258}00258\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ (defined\ (\_\_ARM8M\_MAINLINE\_\_)\ \&\&\ (\_\_CORE\_\_\ ==\ \_\_ARM8M\_MAINLINE\_\_))\ \ ||\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00259}00259\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ (defined\ (\_\_ARM8M\_MAINLINE\_\_)\ \&\&\ (\_\_CORE\_\_\ ==\ \_\_ARM8M\_MAINLINE\_\_))}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00260}00260\ \textcolor{preprocessor}{\ \ \ \ \#ifndef\ \ \ SEGGER\_RTT\_MAX\_INTERRUPT\_PRIORITY}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00261}00261\ \textcolor{preprocessor}{\ \ \ \ \ \ \#define\ SEGGER\_RTT\_MAX\_INTERRUPT\_PRIORITY\ \ \ (0x20)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00262}00262\ \textcolor{preprocessor}{\ \ \ \ \#endif}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00263}00263\ \textcolor{preprocessor}{\ \ \ \ \#define\ SEGGER\_RTT\_LOCK()\ \ \ \{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00264}00264\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ unsigned\ int\ \_SEGGER\_RTT\_\_LockState;\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00265}00265\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \_SEGGER\_RTT\_\_LockState\ =\ \_\_get\_BASEPRI();\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00266}00266\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \_\_set\_BASEPRI(SEGGER\_RTT\_MAX\_INTERRUPT\_PRIORITY);}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00267}00267\ }
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00268}00268\ \textcolor{preprocessor}{\ \ \ \ \#define\ SEGGER\_RTT\_UNLOCK()\ \ \ \_\_set\_BASEPRI(\_SEGGER\_RTT\_\_LockState);\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00269}00269\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00270}00270\ \textcolor{preprocessor}{\ \ \#elif\ (defined\ (\_\_ARM7A\_\_)\ \&\&\ (\_\_CORE\_\_\ ==\ \_\_ARM7A\_\_))\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ||\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00271}00271\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ (defined\ (\_\_ARM7R\_\_)\ \&\&\ (\_\_CORE\_\_\ ==\ \_\_ARM7R\_\_))}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00272}00272\ \textcolor{preprocessor}{\ \ \ \ \#define\ SEGGER\_RTT\_LOCK()\ \{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00273}00273\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ unsigned\ int\ \_SEGGER\_RTT\_\_LockState;\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00274}00274\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \_\_asm\ volatile\ ("{}mrs\ r1,\ CPSR\ \(\backslash\)n\(\backslash\)t"{}\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00275}00275\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ "{}mov\ \%0,\ r1\ \(\backslash\)n\(\backslash\)t"{}\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00276}00276\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ "{}orr\ r1,\ r1,\ \#0xC0\ \(\backslash\)n\(\backslash\)t"{}\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00277}00277\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ "{}msr\ CPSR\_c,\ r1\ \(\backslash\)n\(\backslash\)t"{}\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00278}00278\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ :\ "{}=r"{}\ (\_SEGGER\_RTT\_\_LockState)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00279}00279\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ :\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00280}00280\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ :\ "{}r1"{},\ "{}cc"{}\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00281}00281\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ );}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00282}00282\ }
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00283}00283\ \textcolor{preprocessor}{\ \ \ \ \#define\ SEGGER\_RTT\_UNLOCK()\ \_\_asm\ volatile\ ("{}mov\ r0,\ \%0\ \(\backslash\)n\(\backslash\)t"{}\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00284}00284\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ "{}mrs\ r1,\ CPSR\ \(\backslash\)n\(\backslash\)t"{}\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00285}00285\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ "{}bic\ r1,\ r1,\ \#0xC0\ \(\backslash\)n\(\backslash\)t"{}\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00286}00286\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ "{}and\ r0,\ r0,\ \#0xC0\ \(\backslash\)n\(\backslash\)t"{}\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00287}00287\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ "{}orr\ r1,\ r1,\ r0\ \(\backslash\)n\(\backslash\)t"{}\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00288}00288\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ "{}msr\ CPSR\_c,\ r1\ \(\backslash\)n\(\backslash\)t"{}\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00289}00289\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ :\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00290}00290\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ :\ "{}r"{}\ (\_SEGGER\_RTT\_\_LockState)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00291}00291\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ :\ "{}r0"{},\ "{}r1"{},\ "{}cc"{}\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00292}00292\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ );\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00293}00293\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00294}00294\ \textcolor{preprocessor}{\ \ \#endif}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00295}00295\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00296}00296\ }
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00297}00297\ \textcolor{comment}{/*********************************************************************}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00298}00298\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00299}00299\ \textcolor{comment}{*\ \ \ \ \ \ \ RTT\ lock\ configuration\ for\ IAR\ RX}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00300}00300\ \textcolor{comment}{*/}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00301}00301\ \textcolor{preprocessor}{\#ifdef\ \_\_ICCRX\_\_}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00302}00302\ \textcolor{preprocessor}{\ \ \#define\ SEGGER\_RTT\_LOCK()\ \ \ \{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00303}00303\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ unsigned\ long\ \_SEGGER\_RTT\_\_LockState;\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00304}00304\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \_SEGGER\_RTT\_\_LockState\ =\ \_\_get\_interrupt\_state();\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00305}00305\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \_\_disable\_interrupt();}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00306}00306\ }
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00307}00307\ \textcolor{preprocessor}{\ \ \#define\ SEGGER\_RTT\_UNLOCK()\ \ \ \_\_set\_interrupt\_state(\_SEGGER\_RTT\_\_LockState);\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00308}00308\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00309}00309\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00310}00310\ }
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00311}00311\ \textcolor{comment}{/*********************************************************************}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00312}00312\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00313}00313\ \textcolor{comment}{*\ \ \ \ \ \ \ RTT\ lock\ configuration\ for\ IAR\ RL78}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00314}00314\ \textcolor{comment}{*/}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00315}00315\ \textcolor{preprocessor}{\#ifdef\ \_\_ICCRL78\_\_}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00316}00316\ \textcolor{preprocessor}{\ \ \#define\ SEGGER\_RTT\_LOCK()\ \ \ \{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00317}00317\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \_\_istate\_t\ \_SEGGER\_RTT\_\_LockState;\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00318}00318\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \_SEGGER\_RTT\_\_LockState\ =\ \_\_get\_interrupt\_state();\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00319}00319\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \_\_disable\_interrupt();}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00320}00320\ }
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00321}00321\ \textcolor{preprocessor}{\ \ \#define\ SEGGER\_RTT\_UNLOCK()\ \ \ \_\_set\_interrupt\_state(\_SEGGER\_RTT\_\_LockState);\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00322}00322\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00323}00323\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00324}00324\ }
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00325}00325\ \textcolor{comment}{/*********************************************************************}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00326}00326\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00327}00327\ \textcolor{comment}{*\ \ \ \ \ \ \ RTT\ lock\ configuration\ for\ KEIL\ ARM}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00328}00328\ \textcolor{comment}{*/}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00329}00329\ \textcolor{preprocessor}{\#ifdef\ \_\_CC\_ARM}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00330}00330\ \textcolor{preprocessor}{\ \ \#if\ (defined\ \_\_TARGET\_ARCH\_6S\_M)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00331}00331\ \textcolor{preprocessor}{\ \ \ \ \#define\ SEGGER\_RTT\_LOCK()\ \ \ \{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00332}00332\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ unsigned\ int\ \_SEGGER\_RTT\_\_LockState;\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00333}00333\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ register\ unsigned\ char\ \_SEGGER\_RTT\_\_PRIMASK\ \_\_asm(\ "{}primask"{});\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00334}00334\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \_SEGGER\_RTT\_\_LockState\ =\ \_SEGGER\_RTT\_\_PRIMASK;\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00335}00335\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \_SEGGER\_RTT\_\_PRIMASK\ =\ 1u;\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00336}00336\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \_\_schedule\_barrier();}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00337}00337\ }
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00338}00338\ \textcolor{preprocessor}{\ \ \ \ \#define\ SEGGER\_RTT\_UNLOCK()\ \ \ \_SEGGER\_RTT\_\_PRIMASK\ =\ \_SEGGER\_RTT\_\_LockState;\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00339}00339\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \_\_schedule\_barrier();\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00340}00340\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00341}00341\ \textcolor{preprocessor}{\ \ \#elif\ (defined(\_\_TARGET\_ARCH\_7\_M)\ ||\ defined(\_\_TARGET\_ARCH\_7E\_M))}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00342}00342\ \textcolor{preprocessor}{\ \ \ \ \#ifndef\ \ \ SEGGER\_RTT\_MAX\_INTERRUPT\_PRIORITY}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00343}00343\ \textcolor{preprocessor}{\ \ \ \ \ \ \#define\ SEGGER\_RTT\_MAX\_INTERRUPT\_PRIORITY\ \ \ (0x20)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00344}00344\ \textcolor{preprocessor}{\ \ \ \ \#endif}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00345}00345\ \textcolor{preprocessor}{\ \ \ \ \#define\ SEGGER\_RTT\_LOCK()\ \ \ \{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00346}00346\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ unsigned\ int\ \_SEGGER\_RTT\_\_LockState;\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00347}00347\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ register\ unsigned\ char\ BASEPRI\ \_\_asm(\ "{}basepri"{});\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00348}00348\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \_SEGGER\_RTT\_\_LockState\ =\ BASEPRI;\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00349}00349\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ BASEPRI\ =\ SEGGER\_RTT\_MAX\_INTERRUPT\_PRIORITY;\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00350}00350\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \_\_schedule\_barrier();}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00351}00351\ }
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00352}00352\ \textcolor{preprocessor}{\ \ \ \ \#define\ SEGGER\_RTT\_UNLOCK()\ \ \ BASEPRI\ =\ \_SEGGER\_RTT\_\_LockState;\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00353}00353\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \_\_schedule\_barrier();\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00354}00354\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00355}00355\ \textcolor{preprocessor}{\ \ \#endif}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00356}00356\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00357}00357\ }
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00358}00358\ \textcolor{comment}{/*********************************************************************}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00359}00359\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00360}00360\ \textcolor{comment}{*\ \ \ \ \ \ \ RTT\ lock\ configuration\ for\ TI\ ARM}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00361}00361\ \textcolor{comment}{*/}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00362}00362\ \textcolor{preprocessor}{\#ifdef\ \_\_TI\_ARM\_\_}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00363}00363\ \textcolor{preprocessor}{\ \ \#if\ defined\ (\_\_TI\_ARM\_V6M0\_\_)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00364}00364\ \textcolor{preprocessor}{\ \ \ \ \#define\ SEGGER\_RTT\_LOCK()\ \ \ \{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00365}00365\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ unsigned\ int\ \_SEGGER\_RTT\_\_LockState;\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00366}00366\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \_SEGGER\_RTT\_\_LockState\ =\ \_\_get\_PRIMASK();\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00367}00367\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \_\_set\_PRIMASK(1);}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00368}00368\ }
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00369}00369\ \textcolor{preprocessor}{\ \ \ \ \#define\ SEGGER\_RTT\_UNLOCK()\ \ \ \_\_set\_PRIMASK(\_SEGGER\_RTT\_\_LockState);\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00370}00370\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00371}00371\ \textcolor{preprocessor}{\ \ \#elif\ (defined\ (\_\_TI\_ARM\_V7M3\_\_)\ ||\ defined\ (\_\_TI\_ARM\_V7M4\_\_))}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00372}00372\ \textcolor{preprocessor}{\ \ \ \ \#ifndef\ \ \ SEGGER\_RTT\_MAX\_INTERRUPT\_PRIORITY}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00373}00373\ \textcolor{preprocessor}{\ \ \ \ \ \ \#define\ SEGGER\_RTT\_MAX\_INTERRUPT\_PRIORITY\ \ \ (0x20)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00374}00374\ \textcolor{preprocessor}{\ \ \ \ \#endif}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00375}00375\ \textcolor{preprocessor}{\ \ \ \ \#define\ SEGGER\_RTT\_LOCK()\ \ \ \{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00376}00376\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ unsigned\ int\ \_SEGGER\_RTT\_\_LockState;\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00377}00377\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \_SEGGER\_RTT\_\_LockState\ =\ \_set\_interrupt\_priority(SEGGER\_RTT\_MAX\_INTERRUPT\_PRIORITY);}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00378}00378\ }
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00379}00379\ \textcolor{preprocessor}{\ \ \ \ \#define\ SEGGER\_RTT\_UNLOCK()\ \ \ \_set\_interrupt\_priority(\_SEGGER\_RTT\_\_LockState);\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00380}00380\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00381}00381\ \textcolor{preprocessor}{\ \ \#endif}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00382}00382\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00383}00383\ }
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00384}00384\ \textcolor{comment}{/*********************************************************************}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00385}00385\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00386}00386\ \textcolor{comment}{*\ \ \ \ \ \ \ RTT\ lock\ configuration\ for\ CCRX}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00387}00387\ \textcolor{comment}{*/}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00388}00388\ \textcolor{preprocessor}{\#ifdef\ \_\_RX}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00389}00389\ \textcolor{preprocessor}{\ \ \#include\ <machine.h>}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00390}00390\ \textcolor{preprocessor}{\ \ \#define\ SEGGER\_RTT\_LOCK()\ \ \ \{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00391}00391\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ unsigned\ long\ \_SEGGER\_RTT\_\_LockState;\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00392}00392\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \_SEGGER\_RTT\_\_LockState\ =\ get\_psw()\ \&\ 0x010000;\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00393}00393\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ clrpsw\_i();}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00394}00394\ }
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00395}00395\ \textcolor{preprocessor}{\ \ \#define\ SEGGER\_RTT\_UNLOCK()\ \ \ set\_psw(get\_psw()\ |\ \_SEGGER\_RTT\_\_LockState);\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00396}00396\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00397}00397\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00398}00398\ }
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00399}00399\ \textcolor{comment}{/*********************************************************************}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00400}00400\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00401}00401\ \textcolor{comment}{*\ \ \ \ \ \ \ RTT\ lock\ configuration\ for\ embOS\ Simulation\ on\ Windows}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00402}00402\ \textcolor{comment}{*\ \ \ \ \ \ \ (Can\ also\ be\ used\ for\ generic\ RTT\ locking\ with\ embOS)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00403}00403\ \textcolor{comment}{*/}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00404}00404\ \textcolor{preprocessor}{\#if\ defined(WIN32)\ ||\ defined(SEGGER\_RTT\_LOCK\_EMBOS)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00405}00405\ }
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00406}00406\ \textcolor{keywordtype}{void}\ OS\_SIM\_EnterCriticalSection(\textcolor{keywordtype}{void});}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00407}00407\ \textcolor{keywordtype}{void}\ OS\_SIM\_LeaveCriticalSection(\textcolor{keywordtype}{void});}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00408}00408\ }
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00409}00409\ \textcolor{preprocessor}{\#define\ SEGGER\_RTT\_LOCK()\ \ \ \ \ \ \ \{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00410}00410\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ OS\_SIM\_EnterCriticalSection();}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00411}00411\ }
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00412}00412\ \textcolor{preprocessor}{\#define\ SEGGER\_RTT\_UNLOCK()\ \ \ \ \ \ \ OS\_SIM\_LeaveCriticalSection();\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00413}00413\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00414}00414\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00415}00415\ }
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00416}00416\ \textcolor{comment}{/*********************************************************************}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00417}00417\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00418}00418\ \textcolor{comment}{*\ \ \ \ \ \ \ RTT\ lock\ configuration\ fallback}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00419}00419\ \textcolor{comment}{*/}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00420}00420\ \textcolor{preprocessor}{\#ifndef\ \ \ SEGGER\_RTT\_LOCK}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00421}00421\ \textcolor{preprocessor}{\ \ \#define\ SEGGER\_RTT\_LOCK()\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }\textcolor{comment}{//\ Lock\ RTT\ (nestable)\ \ \ (i.e.\ disable\ interrupts)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00422}00422\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00423}00423\ }
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00424}00424\ \textcolor{preprocessor}{\#ifndef\ \ \ SEGGER\_RTT\_UNLOCK}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00425}00425\ \textcolor{preprocessor}{\ \ \#define\ SEGGER\_RTT\_UNLOCK()\ \ \ \ \ \ \ \ \ \ \ \ \ \ }\textcolor{comment}{//\ Unlock\ RTT\ (nestable)\ (i.e.\ enable\ previous\ interrupt\ lock\ state)}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00426}00426\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00427}00427\ }
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00428}00428\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{_____s_e_g_g_e_r___r_t_t___conf_8h_source_l00429}00429\ \textcolor{comment}{/***************************\ End\ of\ file\ ****************************/}}
\end{DoxyCode}

View File

@@ -0,0 +1,118 @@
\doxysection{E\+:/.WORK/\+STM32/\+STM\+\_\+\+Libs/\+STM32\+\_\+\+Extended\+Libs/\+\_\+\+\_\+mylibs\+\_\+config.h}
\hypertarget{____mylibs__config_8h_source}{}\label{____mylibs__config_8h_source}
\begin{DoxyCode}{0}
\DoxyCodeLine{\Hypertarget{____mylibs__config_8h_source_l00001}00001\ \textcolor{comment}{/**\ }}
\DoxyCodeLine{\Hypertarget{____mylibs__config_8h_source_l00002}00002\ \textcolor{comment}{**************************************************************************}}
\DoxyCodeLine{\Hypertarget{____mylibs__config_8h_source_l00003}00003\ \textcolor{comment}{*\ @file\ mylibs\_config.h}}
\DoxyCodeLine{\Hypertarget{____mylibs__config_8h_source_l00004}00004\ \textcolor{comment}{*\ @brief\ Конфигурации\ для\ библиотек\ MyLibs}}
\DoxyCodeLine{\Hypertarget{____mylibs__config_8h_source_l00005}00005\ \textcolor{comment}{**************************************************************************}}
\DoxyCodeLine{\Hypertarget{____mylibs__config_8h_source_l00006}00006\ \textcolor{comment}{*\ @defgroup\ MYLIBS\_CONFIG\ \ \ Configs}}
\DoxyCodeLine{\Hypertarget{____mylibs__config_8h_source_l00007}00007\ \textcolor{comment}{*\ @ingroup\ \ MYLIBS\_ALL}}
\DoxyCodeLine{\Hypertarget{____mylibs__config_8h_source_l00008}00008\ \textcolor{comment}{*\ @brief\ \ \ \ Конфигурации\ для\ библиотек\ MyLibs}}
\DoxyCodeLine{\Hypertarget{____mylibs__config_8h_source_l00009}00009\ \textcolor{comment}{*\ @\{}}
\DoxyCodeLine{\Hypertarget{____mylibs__config_8h_source_l00010}00010\ \textcolor{comment}{*************************************************************************/}}
\DoxyCodeLine{\Hypertarget{____mylibs__config_8h_source_l00011}00011\ \textcolor{preprocessor}{\#ifndef\ \_\_MYLIBS\_CONFIG\_H\_}}
\DoxyCodeLine{\Hypertarget{____mylibs__config_8h_source_l00012}00012\ \textcolor{preprocessor}{\#define\ \_\_MYLIBS\_CONFIG\_H\_}}
\DoxyCodeLine{\Hypertarget{____mylibs__config_8h_source_l00013}00013\ }
\DoxyCodeLine{\Hypertarget{____mylibs__config_8h_source_l00014}00014\ \textcolor{preprocessor}{\#include\ "{}stm32f4xx\_hal.h"{}}}
\DoxyCodeLine{\Hypertarget{____mylibs__config_8h_source_l00015}00015\ }
\DoxyCodeLine{\Hypertarget{____mylibs__config_8h_source_l00016}00016\ \textcolor{comment}{//\ user\ includes}}
\DoxyCodeLine{\Hypertarget{____mylibs__config_8h_source_l00017}00017\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{____mylibs__config_8h_source_l00018}00018\ \textcolor{comment}{/**\ }}
\DoxyCodeLine{\Hypertarget{____mylibs__config_8h_source_l00019}00019\ \textcolor{comment}{\ \ *\ @addtogroup\ TRACE\_CONFIG\ \ \ Trace\ configs}}
\DoxyCodeLine{\Hypertarget{____mylibs__config_8h_source_l00020}00020\ \textcolor{comment}{\ \ *\ @ingroup\ \ \ \ MYLIBS\_CONFIG}}
\DoxyCodeLine{\Hypertarget{____mylibs__config_8h_source_l00021}00021\ \textcolor{comment}{\ \ *\ @brief\ \ \ \ \ \ Конфигурация\ трекеров\ и\ трассировки}}
\DoxyCodeLine{\Hypertarget{____mylibs__config_8h_source_l00022}00022\ \textcolor{comment}{\ \ *\ @\{}}
\DoxyCodeLine{\Hypertarget{____mylibs__config_8h_source_l00023}00023\ \textcolor{comment}{\ \ */}}
\DoxyCodeLine{\Hypertarget{____mylibs__config_8h_source_l00024}00024\ }
\DoxyCodeLine{\Hypertarget{____mylibs__config_8h_source_l00025}\mbox{\hyperlink{group___t_r_a_c_e___c_o_n_f_i_g_gac9eaedc31ab023ce7d6403999216e496}{00025}}\ \textcolor{preprocessor}{\#define\ TRACKERS\_ENABLE\ \ \ \ \ \ \ \ \ \ \ }\textcolor{comment}{///<\ Включить\ трекеры}}
\DoxyCodeLine{\Hypertarget{____mylibs__config_8h_source_l00026}\mbox{\hyperlink{group___t_r_a_c_e___c_o_n_f_i_g_ga76936505ca200d2e61226b7ba68f27c6}{00026}}\ \textcolor{preprocessor}{\#define\ SERIAL\_TRACE\_ENABLE\ \ \ \ \ \ \ }\textcolor{comment}{///<\ Включить\ serial\ трассировку}}
\DoxyCodeLine{\Hypertarget{____mylibs__config_8h_source_l00027}\mbox{\hyperlink{group___t_r_a_c_e___c_o_n_f_i_g_ga00ff2175bdc1fb11c8ec970ea3010dd8}{00027}}\ \textcolor{preprocessor}{\#define\ RTT\_TRACE\_ENABLE\ \ \ \ \ \ \ \ \ \ }\textcolor{comment}{///<\ Включить\ serial\ трассировку\ через\ RTT}}
\DoxyCodeLine{\Hypertarget{____mylibs__config_8h_source_l00028}\mbox{\hyperlink{group___t_r_a_c_e___c_o_n_f_i_g_gab8db9704b5d11858aa879689b9d36336}{00028}}\ \textcolor{preprocessor}{\#define\ SWO\_TRACE\_ENABLE\ \ \ \ \ \ \ \ \ \ }\textcolor{comment}{///<\ Включить\ serial\ трассировку\ через\ SWO}\textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{____mylibs__config_8h_source_l00029}00029\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{____mylibs__config_8h_source_l00030}00030\ \textcolor{comment}{\ \ *\ @brief\ Уровень\ log\ serial\ трассировки\ @ref\ log\_printf}}
\DoxyCodeLine{\Hypertarget{____mylibs__config_8h_source_l00031}00031\ \textcolor{comment}{\ \ *\ \ -\/\ LOG\_LEVEL\ ==\ 0\ -\/\ логирование\ отключено\ (макрос\ пустой)}}
\DoxyCodeLine{\Hypertarget{____mylibs__config_8h_source_l00032}00032\ \textcolor{comment}{\ \ *\ \ -\/\ LOG\_LEVEL\ ==\ 1\ -\/\ выводится\ время\ и\ TAG}}
\DoxyCodeLine{\Hypertarget{____mylibs__config_8h_source_l00033}00033\ \textcolor{comment}{\ \ *\ \ -\/\ LOG\_LEVEL\ >=\ 2\ -\/\ выводится\ время,\ TAG,\ имя\ файла\ и\ номер\ строки}}
\DoxyCodeLine{\Hypertarget{____mylibs__config_8h_source_l00034}00034\ \textcolor{comment}{\ \ */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{____mylibs__config_8h_source_l00035}\mbox{\hyperlink{group___t_r_a_c_e___c_o_n_f_i_g_ga0b87e0d3bf5853bcbb0b66a7c48fdc05}{00035}}\ \textcolor{preprocessor}{\#define\ LOG\_LEVEL\ 1}}
\DoxyCodeLine{\Hypertarget{____mylibs__config_8h_source_l00036}00036\ }
\DoxyCodeLine{\Hypertarget{____mylibs__config_8h_source_l00037}\mbox{\hyperlink{group___t_r_a_c_e___c_o_n_f_i_g_ga501312b24e322de4dd6755ad442f0ba3}{00037}}\ \textcolor{preprocessor}{\#define\ RTT\_FLASH\_BUFFER\_SIZE\ \ \ 1024\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }\textcolor{comment}{///<\ Размер\ буфера\ RTT\ в\ Flash}}
\DoxyCodeLine{\Hypertarget{____mylibs__config_8h_source_l00038}\mbox{\hyperlink{group___t_r_a_c_e___c_o_n_f_i_g_ga3bc1b76864e1d32cbdd174d4caae7724}{00038}}\ \textcolor{preprocessor}{\#define\ RTT\_FLASH\_SECTOR\ \ \ \ \ \ \ \ FLASH\_SECTOR\_11\ \ \ \ \ \ \ \ \ }\textcolor{comment}{///<\ Сектор\ FLASH\ куда\ положится\ RTT\ буфер}}
\DoxyCodeLine{\Hypertarget{____mylibs__config_8h_source_l00039}\mbox{\hyperlink{group___t_r_a_c_e___c_o_n_f_i_g_ga8e56f75d3ab8a89ddde1404ae23c3297}{00039}}\ \textcolor{preprocessor}{\#define\ RTT\_FLASH\_SECTOR\_START\ \ 0x080E0000\ \ \ \ \ \ \ \ \ \ \ \ \ \ }\textcolor{comment}{///<\ Начало\ сектора\ RTT\_FLASH\_SECTOR}}
\DoxyCodeLine{\Hypertarget{____mylibs__config_8h_source_l00040}\mbox{\hyperlink{group___t_r_a_c_e___c_o_n_f_i_g_gafeca0be3688dea07ff443f894668003d}{00040}}\ \textcolor{preprocessor}{\#define\ RTT\_FLASH\_SECTOR\_END\ \ \ \ 0x080FFFFF\ \ \ \ \ \ \ \ \ \ \ \ \ \ }\textcolor{comment}{///<\ Конец\ сектора\ RTT\_FLASH\_SECTOR}}
\DoxyCodeLine{\Hypertarget{____mylibs__config_8h_source_l00041}00041\ }
\DoxyCodeLine{\Hypertarget{____mylibs__config_8h_source_l00042}00042\ }
\DoxyCodeLine{\Hypertarget{____mylibs__config_8h_source_l00043}\mbox{\hyperlink{group___t_r_a_c_e___c_o_n_f_i_g_ga47f454f804b4dbc26cae079e8d8641e6}{00043}}\ \textcolor{preprocessor}{\#define\ HARDFAULT\_SERIAL\_TRACE\ \ }\textcolor{comment}{///<\ Включить\ обработку\ и\ serial\ трассировку\ Hardfault}}
\DoxyCodeLine{\Hypertarget{____mylibs__config_8h_source_l00044}\mbox{\hyperlink{group___t_r_a_c_e___c_o_n_f_i_g_gadc960255719c7eff4bdfaa850be9b313}{00044}}\ \textcolor{preprocessor}{\#define\ HF\_RTT\_TAG\_BASE\ \ \ \ \ \ \ \ \ 0xDEAD0000\ \ \ \ \ \ \ \ \ \ \ \ \ \ }\textcolor{comment}{///<\ базовый\ тег\ для\ HardFault}}
\DoxyCodeLine{\Hypertarget{____mylibs__config_8h_source_l00045}\mbox{\hyperlink{group___t_r_a_c_e___c_o_n_f_i_g_gafcc7ea03d4df8f1909e580b519a7f3ca}{00045}}\ \textcolor{preprocessor}{\#define\ HF\_RTT\_TAIL\_SIZE\ \ \ \ \ \ \ \ RTT\_FLASH\_BUFFER\_SIZE\ \ \ }\textcolor{comment}{///<\ Размер\ буфера\ RTT,\ который\ сохранится\ при\ Hardfault}}
\DoxyCodeLine{\Hypertarget{____mylibs__config_8h_source_l00046}\mbox{\hyperlink{group___t_r_a_c_e___c_o_n_f_i_g_gaa31234688b333a505aaa57b8ecdedf5b}{00046}}\ \textcolor{preprocessor}{\#define\ HF\_STACK\_DUMP\_WORDS\ \ \ \ \ 32\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }\textcolor{comment}{///<\ Сколько\ слов\ стека\ будет\ проанализировано\ во\ время\ Hardfault}}
\DoxyCodeLine{\Hypertarget{____mylibs__config_8h_source_l00047}\mbox{\hyperlink{group___t_r_a_c_e___c_o_n_f_i_g_ga0c602733a4a359bf8c095d71cd4d0f63}{00047}}\ \textcolor{preprocessor}{\#define\ HF\_FLASH\_ADDR\ \ \ \ \ \ \ \ \ \ \ ((uint32\_t)0x080FF000)\ \ }\textcolor{comment}{///<\ Адрес\ FLASH\ куда\ положится\ RTT\ буфер}}
\DoxyCodeLine{\Hypertarget{____mylibs__config_8h_source_l00048}\mbox{\hyperlink{group___t_r_a_c_e___c_o_n_f_i_g_ga92d0d14732edb7dfa21d483304bdb051}{00048}}\ \textcolor{preprocessor}{\#define\ HF\_RAM\_END\ \ \ \ \ \ \ \ \ \ \ \ \ \ 0x20030000\ \ \ \ \ \ \ \ \ \ \ \ \ \ }\textcolor{comment}{///<\ Конец\ RAM\ памяти\ (чтобы\ во\ время\ анализа\ стека\ не\ выйти\ за\ пределы)}}
\DoxyCodeLine{\Hypertarget{____mylibs__config_8h_source_l00049}00049\ }
\DoxyCodeLine{\Hypertarget{____mylibs__config_8h_source_l00050}\mbox{\hyperlink{group___t_r_a_c_e___c_o_n_f_i_g_ga4222e0e400ad81737cefcabeb03fd23b}{00050}}\ \textcolor{preprocessor}{\#define\ GPIO\_TRACE\_ENABLE\ \ \ \ \ \ \ \ \ }\textcolor{comment}{///<\ Включить\ GPIO\ трассировку}}
\DoxyCodeLine{\Hypertarget{____mylibs__config_8h_source_l00051}00051\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{____mylibs__config_8h_source_l00052}00052\ \textcolor{comment}{/**\ TRACE\_CONFIG}}
\DoxyCodeLine{\Hypertarget{____mylibs__config_8h_source_l00053}00053\ \textcolor{comment}{\ \ *\ @\}}}
\DoxyCodeLine{\Hypertarget{____mylibs__config_8h_source_l00054}00054\ \textcolor{comment}{\ \ */}}
\DoxyCodeLine{\Hypertarget{____mylibs__config_8h_source_l00055}00055\ }
\DoxyCodeLine{\Hypertarget{____mylibs__config_8h_source_l00056}00056\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{____mylibs__config_8h_source_l00057}00057\ \textcolor{comment}{/**\ }}
\DoxyCodeLine{\Hypertarget{____mylibs__config_8h_source_l00058}00058\ \textcolor{comment}{\ \ *\ @addtogroup\ GEN\_CONFIG\ \ \ Genetic\ configs}}
\DoxyCodeLine{\Hypertarget{____mylibs__config_8h_source_l00059}00059\ \textcolor{comment}{\ \ *\ @ingroup\ \ \ \ MYLIBS\_CONFIG}}
\DoxyCodeLine{\Hypertarget{____mylibs__config_8h_source_l00060}00060\ \textcolor{comment}{\ \ *\ @brief\ \ \ \ \ \ Конфигурация\ генетического\ алгоритма\ обучения}}
\DoxyCodeLine{\Hypertarget{____mylibs__config_8h_source_l00061}00061\ \textcolor{comment}{\ \ *\ @\{}}
\DoxyCodeLine{\Hypertarget{____mylibs__config_8h_source_l00062}00062\ \textcolor{comment}{\ \ */}}
\DoxyCodeLine{\Hypertarget{____mylibs__config_8h_source_l00063}00063\ }
\DoxyCodeLine{\Hypertarget{____mylibs__config_8h_source_l00064}\mbox{\hyperlink{group___g_e_n___c_o_n_f_i_g_gae6d1db3c0b21f67cb0db2673d207b62c}{00064}}\ \textcolor{preprocessor}{\#define\ GEN\_OPTIMIZATION\_ENABLE\ \ \ \ \ \ \ }\textcolor{comment}{///<\ Включить\ оптимизацию\ параметров}}
\DoxyCodeLine{\Hypertarget{____mylibs__config_8h_source_l00065}\mbox{\hyperlink{group___g_e_n___c_o_n_f_i_g_ga8daf4b266a95353d580bd7946f47c0ab}{00065}}\ \textcolor{preprocessor}{\#define\ GEN\_MAX\_PARAMS\ \ \ \ \ \ \ 20\ \ \ \ \ \ \ }\textcolor{comment}{///<\ Максимальное\ количество\ параметров}}
\DoxyCodeLine{\Hypertarget{____mylibs__config_8h_source_l00066}\mbox{\hyperlink{group___g_e_n___c_o_n_f_i_g_ga201cffde04ebc6540869c74bd1dae869}{00066}}\ \textcolor{preprocessor}{\#define\ GEN\_MAX\_CANDIDATES\ \ \ 100\ \ \ \ \ \ }\textcolor{comment}{///<\ Максимальное\ количество\ кандидатов\ для\ обучения}}
\DoxyCodeLine{\Hypertarget{____mylibs__config_8h_source_l00067}00067\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{____mylibs__config_8h_source_l00068}00068\ \textcolor{comment}{/**\ GEN\_CONFIG}}
\DoxyCodeLine{\Hypertarget{____mylibs__config_8h_source_l00069}00069\ \textcolor{comment}{\ \ *\ @\}}}
\DoxyCodeLine{\Hypertarget{____mylibs__config_8h_source_l00070}00070\ \textcolor{comment}{\ \ */}}
\DoxyCodeLine{\Hypertarget{____mylibs__config_8h_source_l00071}00071\ }
\DoxyCodeLine{\Hypertarget{____mylibs__config_8h_source_l00072}00072\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{____mylibs__config_8h_source_l00073}00073\ \textcolor{comment}{/**\ }}
\DoxyCodeLine{\Hypertarget{____mylibs__config_8h_source_l00074}00074\ \textcolor{comment}{\ \ *\ @addtogroup\ GEN\_CONFIG\ \ \ Genetic\ configs}}
\DoxyCodeLine{\Hypertarget{____mylibs__config_8h_source_l00075}00075\ \textcolor{comment}{\ \ *\ @ingroup\ \ \ \ MYLIBS\_CONFIG}}
\DoxyCodeLine{\Hypertarget{____mylibs__config_8h_source_l00076}00076\ \textcolor{comment}{\ \ *\ @brief\ \ \ \ \ \ Конфигурация\ генетического\ алгоритма\ обучения}}
\DoxyCodeLine{\Hypertarget{____mylibs__config_8h_source_l00077}00077\ \textcolor{comment}{\ \ *\ @\{}}
\DoxyCodeLine{\Hypertarget{____mylibs__config_8h_source_l00078}00078\ \textcolor{comment}{\ \ */}}
\DoxyCodeLine{\Hypertarget{____mylibs__config_8h_source_l00079}00079\ }
\DoxyCodeLine{\Hypertarget{____mylibs__config_8h_source_l00080}00080\ }
\DoxyCodeLine{\Hypertarget{____mylibs__config_8h_source_l00081}\mbox{\hyperlink{group___g_e_n___c_o_n_f_i_g_ga67c3c54503b9bbd5d175ac46d37866d9}{00081}}\ \textcolor{preprocessor}{\#define\ BENCH\_TIME\_ENABLE\ \ \ \ \ \ \ \ \ \ \ \ \ }\textcolor{comment}{///<\ Включить\ бенч\ времени}}
\DoxyCodeLine{\Hypertarget{____mylibs__config_8h_source_l00082}\mbox{\hyperlink{group___g_e_n___c_o_n_f_i_g_ga74fdf777ceefa5e7d67120fbda4cde52}{00082}}\ \textcolor{preprocessor}{\#define\ BENCH\_TIME\_MAX\_CHANNELS\ 16\ \ \ \ }\textcolor{comment}{///<\ Максимальное\ количество\ каналов\ измерения}}
\DoxyCodeLine{\Hypertarget{____mylibs__config_8h_source_l00083}00083\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{____mylibs__config_8h_source_l00084}00084\ \textcolor{comment}{/**\ GEN\_CONFIG}}
\DoxyCodeLine{\Hypertarget{____mylibs__config_8h_source_l00085}00085\ \textcolor{comment}{\ \ *\ @\}}}
\DoxyCodeLine{\Hypertarget{____mylibs__config_8h_source_l00086}00086\ \textcolor{comment}{\ \ */}}
\DoxyCodeLine{\Hypertarget{____mylibs__config_8h_source_l00087}00087\ }
\DoxyCodeLine{\Hypertarget{____mylibs__config_8h_source_l00088}00088\ }
\DoxyCodeLine{\Hypertarget{____mylibs__config_8h_source_l00089}00089\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{____mylibs__config_8h_source_l00090}00090\ \textcolor{comment}{/**\ }}
\DoxyCodeLine{\Hypertarget{____mylibs__config_8h_source_l00091}00091\ \textcolor{comment}{\ \ *\ @addtogroup\ LIBS\_CONFIG\ \ \ Libraries\ configs}}
\DoxyCodeLine{\Hypertarget{____mylibs__config_8h_source_l00092}00092\ \textcolor{comment}{\ \ *\ @ingroup\ \ \ \ MYLIBS\_CONFIG}}
\DoxyCodeLine{\Hypertarget{____mylibs__config_8h_source_l00093}00093\ \textcolor{comment}{\ \ *\ @brief\ \ \ \ \ \ Подключение\ различных\ модулей\ библиотеки}}
\DoxyCodeLine{\Hypertarget{____mylibs__config_8h_source_l00094}00094\ \textcolor{comment}{\ \ *\ @\{}}
\DoxyCodeLine{\Hypertarget{____mylibs__config_8h_source_l00095}00095\ \textcolor{comment}{\ \ */}}
\DoxyCodeLine{\Hypertarget{____mylibs__config_8h_source_l00096}00096\ }
\DoxyCodeLine{\Hypertarget{____mylibs__config_8h_source_l00097}\mbox{\hyperlink{group___l_i_b_s___c_o_n_f_i_g_ga9c853b02c22f26023c34d1d404b6d653}{00097}}\ \textcolor{preprocessor}{\#define\ local\_time()\ \ \ \ \ \ uwTick\ \ \ \ \ \ }\textcolor{comment}{///<\ Локальное\ время}}
\DoxyCodeLine{\Hypertarget{____mylibs__config_8h_source_l00098}00098\ }
\DoxyCodeLine{\Hypertarget{____mylibs__config_8h_source_l00099}\mbox{\hyperlink{group___l_i_b_s___c_o_n_f_i_g_ga3cdc9ef47fd3ff080d38481295327692}{00099}}\ \textcolor{preprocessor}{\#define\ INCLUDE\_GEN\_OPTIMIZER\ \ \ \ \ \ }\textcolor{comment}{///<\ Подключить\ библиотеку\ для\ оптимизации\ параметров}}
\DoxyCodeLine{\Hypertarget{____mylibs__config_8h_source_l00100}\mbox{\hyperlink{group___l_i_b_s___c_o_n_f_i_g_gaf4ddb2a71ec0d05c2480e197cd17c0be}{00100}}\ \textcolor{preprocessor}{\#define\ INCLUDE\_BIT\_ACCESS\_LIB\ \ \ \ \ \ \ \ }\textcolor{comment}{///<\ Подключить\ библиотеку\ с\ typedef\ с\ битовыми\ полями}}
\DoxyCodeLine{\Hypertarget{____mylibs__config_8h_source_l00101}\mbox{\hyperlink{group___l_i_b_s___c_o_n_f_i_g_ga4403055986b70bb02b8d37073a122e32}{00101}}\ \textcolor{preprocessor}{\#define\ INCLUDE\_TRACKERS\_LIB\ \ \ \ \ \ \ \ \ \ }\textcolor{comment}{///<\ Подключить\ библиотеку\ с\ трекерами}}
\DoxyCodeLine{\Hypertarget{____mylibs__config_8h_source_l00102}\mbox{\hyperlink{group___l_i_b_s___c_o_n_f_i_g_ga0a3ca94b616997069dd53e2c6c2687d7}{00102}}\ \textcolor{preprocessor}{\#define\ INCLUDE\_TRACE\_LIB\ \ \ \ \ \ \ \ \ \ \ \ \ }\textcolor{comment}{///<\ Подключить\ библиотеку\ с\ трейсами}}
\DoxyCodeLine{\Hypertarget{____mylibs__config_8h_source_l00103}\mbox{\hyperlink{group___l_i_b_s___c_o_n_f_i_g_ga181a46326e46b60afb160190832c7281}{00103}}\ \textcolor{preprocessor}{\#define\ INCLUDE\_GENERAL\_PERIPH\_LIBS\ \ \ }\textcolor{comment}{///<\ Подключить\ библиотеку\ с\ периферией}}
\DoxyCodeLine{\Hypertarget{____mylibs__config_8h_source_l00104}\mbox{\hyperlink{group___l_i_b_s___c_o_n_f_i_g_ga57c369737d5c0cfdb7baeecba0a4b151}{00104}}\ \textcolor{preprocessor}{\#define\ FREERTOS\_DELAY\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }\textcolor{comment}{///<\ Использовать\ FreeRTOS\ задержку,\ вместо\ HAL}}
\DoxyCodeLine{\Hypertarget{____mylibs__config_8h_source_l00105}00105\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{____mylibs__config_8h_source_l00106}00106\ \textcolor{comment}{/**\ LIBS\_CONFIG}}
\DoxyCodeLine{\Hypertarget{____mylibs__config_8h_source_l00107}00107\ \textcolor{comment}{\ \ *\ @\}}}
\DoxyCodeLine{\Hypertarget{____mylibs__config_8h_source_l00108}00108\ \textcolor{comment}{\ \ */}}
\DoxyCodeLine{\Hypertarget{____mylibs__config_8h_source_l00109}00109\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{____mylibs__config_8h_source_l00110}00110\ \textcolor{comment}{/**\ MYLIBS\_CONFIG}}
\DoxyCodeLine{\Hypertarget{____mylibs__config_8h_source_l00111}00111\ \textcolor{comment}{\ \ *\ @\}}}
\DoxyCodeLine{\Hypertarget{____mylibs__config_8h_source_l00112}00112\ \textcolor{comment}{\ \ */}}
\DoxyCodeLine{\Hypertarget{____mylibs__config_8h_source_l00113}00113\ \textcolor{preprocessor}{\#endif\ }\textcolor{comment}{//\_\_MYLIBS\_CONFIG\_H\_}}
\end{DoxyCode}

View File

@@ -0,0 +1,141 @@
\doxysection{E\+:/.WORK/\+STM32/\+STM\+\_\+\+Libs/\+STM32\+\_\+\+Extended\+Libs/\+\_\+\+\_\+mylibs\+\_\+include.h}
\hypertarget{____mylibs__include_8h_source}{}\label{____mylibs__include_8h_source}
\begin{DoxyCode}{0}
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00001}00001\ \textcolor{comment}{/**\ }}
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00002}00002\ \textcolor{comment}{**************************************************************************}}
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00003}00003\ \textcolor{comment}{*\ @file\ mylibs\_include.h}}
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00004}00004\ \textcolor{comment}{*\ @brief\ Заголочный\ файл\ для\ всех\ библиотек}}
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00005}00005\ \textcolor{comment}{**************************************************************************}}
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00006}00006\ \textcolor{comment}{*\ @details}}
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00007}00007\ \textcolor{comment}{Здесь\ нужно\ собрать\ библиотеки\ и\ дефайны,\ которые\ должны\ быть\ видны\ во\ всем\ проекте,}}
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00008}00008\ \textcolor{comment}{чтобы\ не\ подключать\ 100\ инклюдов\ в\ каждом\ "{}.c"{}\ файле}}
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00009}00009\ \textcolor{comment}{**************************************************************************}}
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00010}00010\ \textcolor{comment}{*\ @defgroup\ MYLIBS\_ALL\ \ \ \ \ \ My\ Libs}}
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00011}00011\ \textcolor{comment}{*\ @brief\ \ \ \ Все\ используемые\ MyLibs\ библиотеки}}
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00012}00012\ \textcolor{comment}{*\ @details}}
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00013}00013\ \textcolor{comment}{Для\ подключения\ библиотеки\ необходимо:}}
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00014}00014\ \textcolor{comment}{-\/\ Сконфигурировать\ mylibs\_config.h:}}
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00015}00015\ \textcolor{comment}{\ \ -\/\ Подключить\ заголовочный\ файл\ HAL\ библиотеки\ конкретного\ МК\ (напр.\ stm32f4xx\_hal.h)}}
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00016}00016\ \textcolor{comment}{\ \ -\/\ Подключить\ другие\ заголовочные\ файлы\ которые\ общие\ для\ всего\ проекта\ и\ должны\ быть\ видны}}
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00017}00017\ \textcolor{comment}{\ \ -\/\ Подключить\ mylibs\_include.h\ туда,\ где\ необходим\ доступ\ к\ библиотекам.}}
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00018}00018\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00019}00019\ \textcolor{comment}{*************************************************************************/}}
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00020}00020\ \textcolor{preprocessor}{\#ifndef\ \_\_MYLIBS\_INCLUDE\_H\_}}
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00021}00021\ \textcolor{preprocessor}{\#define\ \_\_MYLIBS\_INCLUDE\_H\_}}
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00022}00022\ }
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00023}00023\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{mylibs__defs_8h}{mylibs\_defs.h}}"{}}}
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00024}00024\ }
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00025}00025\ }
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00026}00026\ \textcolor{preprocessor}{\#ifdef\ ARM\_MATH\_CM4}}
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00027}00027\ \textcolor{preprocessor}{\ \ \#include\ "{}arm\_math.h"{}}}
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00028}00028\ \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00029}00029\ \textcolor{preprocessor}{\ \ \#include\ "{}math.h"{}}}
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00030}00030\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00031}00031\ }
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00032}00032\ }
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00033}00033\ \textcolor{preprocessor}{\#ifdef\ INCLUDE\_BIT\_ACCESS\_LIB}}
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00034}00034\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{bit__access_8h}{bit\_access.h}}"{}}}
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00035}00035\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00036}00036\ }
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00037}00037\ \textcolor{preprocessor}{\#ifdef\ INCLUDE\_TRACKERS\_LIB}}
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00038}00038\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{trackers_8h}{trackers.h}}"{}}}
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00039}00039\ \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00040}00040\ \textcolor{preprocessor}{\ \ \#define\ TrackerTypeDef(num\_user\_vars)\ void\ *}}
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00041}00041\ \textcolor{preprocessor}{\ \ \#define\ num\_of\_usercnts(\_user\_)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 0}}
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00042}00042\ \textcolor{preprocessor}{\ \ \#define\ assert\_tracecnt(\_cntstruct\_,\ \_uservarnumb\_)\ \ \ \ \ \ \ \ \ \ \ 0}}
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00043}00043\ \textcolor{preprocessor}{\ \ \#define\ if\_assert\_usertracker(\_cntstruct\_,\ \_uservarnumb\_)\ \ \ \ \ if(0)}}
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00044}00044\ \textcolor{preprocessor}{\ \ \#define\ tern\_assert\_usertracker(\_cntstruct\_,\ \_uservarnumb\_)\ \ \ 0}}
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00045}00045\ \textcolor{preprocessor}{\ \ \#define\ TrackerGet\_Ok(\_cntstruct\_)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ dummy}}
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00046}00046\ \textcolor{preprocessor}{\ \ \#define\ TrackerGet\_Err(\_cntstruct\_)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ dummy}}
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00047}00047\ \textcolor{preprocessor}{\ \ \#define\ TrackerGet\_Warn(\_cntstruct\_)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ dummy\ }}
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00048}00048\ \textcolor{preprocessor}{\ \ \#define\ TrackerGet\_User(\_cntstruct\_,\ \_uservarnumb\_)\ \ \ \ \ \ \ \ \ \ \ dummy}}
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00049}00049\ \textcolor{preprocessor}{\ \ \#define\ TrackerCnt\_Ok(\_cntstruct\_)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }}
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00050}00050\ \textcolor{preprocessor}{\ \ \#define\ TrackerCnt\_Err(\_cntstruct\_)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }}
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00051}00051\ \textcolor{preprocessor}{\ \ \#define\ TrackerCnt\_Warn(\_cntstruct\_)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }}
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00052}00052\ \textcolor{preprocessor}{\ \ \#define\ TrackerCnt\_User(\_cntstruct\_,\ \_uservarnumb\_)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }}
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00053}00053\ \textcolor{preprocessor}{\ \ \#define\ TrackerWrite\_User(\_cntstruct\_,\ \_uservarnumb\_,\ \_val\_)}}
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00054}00054\ \textcolor{preprocessor}{\ \ \#define\ TrackerClear\_All(\_cntstruct\_)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }}
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00055}00055\ \textcolor{preprocessor}{\ \ \#define\ TrackerClear\_Ok(\_cntstruct\_)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }}
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00056}00056\ \textcolor{preprocessor}{\ \ \#define\ TrackerClear\_Err(\_cntstruct\_)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }}
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00057}00057\ \textcolor{preprocessor}{\ \ \#define\ TrackerClear\_Warn(\_cntstruct\_)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }}
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00058}00058\ \textcolor{preprocessor}{\ \ \#define\ TrackerClear\_User(\_cntstruct\_)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }}
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00059}00059\ \textcolor{preprocessor}{\ \ \#define\ TrackerClear\_UserAll(\_cntstruct\_)\ \ \ }}
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00060}00060\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00061}00061\ }
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00062}00062\ \textcolor{preprocessor}{\#ifdef\ INCLUDE\_TRACE\_LIB}}
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00063}00063\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{trace_8h}{trace.h}}"{}}}
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00064}00064\ \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00065}00065\ \textcolor{preprocessor}{\#define\ my\_printf(...)}}
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00066}00066\ \textcolor{preprocessor}{\#define\ log\_printf(TAG,\ fmt,\ ...)\ \ }}
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00067}00067\ \textcolor{preprocessor}{\#define\ TRACE\_GPIO\_SET(\_gpio\_,\_pin\_)}}
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00068}00068\ \textcolor{preprocessor}{\#define\ TRACE\_GPIO\_RESET(\_gpio\_,\_pin\_)}}
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00069}00069\ \textcolor{preprocessor}{\#define\ RTT\_FlashPrepare(...)}}
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00070}00070\ \textcolor{preprocessor}{\#define\ RTT\_EraseFlash(...)\ \ \ \ 0}}
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00071}00071\ \textcolor{preprocessor}{\#define\ RTT\_SaveToFlash(...)\ \ \ 0}}
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00072}00072\ \textcolor{preprocessor}{\#define\ RTT\_ReadFromFlash(...)\ 0}}
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00073}00073\ \textcolor{preprocessor}{\#define\ HF\_CheckRecovered(...)\ 0}}
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00074}00074\ \textcolor{preprocessor}{\#define\ HF\_HandleFault(...)}}
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00075}00075\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00076}00076\ }
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00077}00077\ \textcolor{preprocessor}{\#ifdef\ INCLUDE\_GEN\_OPTIMIZER}}
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00078}00078\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{gen__optimizer_8h}{gen\_optimizer.h}}"{}}}
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00079}00079\ \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00080}00080\ \textcolor{keyword}{typedef}\ \textcolor{keyword}{struct\ }\{}
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00081}00081\ \ \ uint16\_t\ n\_params;\ }
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00082}00082\ \ \ uint16\_t\ n\_cand;\ }
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00083}00083\ \ \ uint16\_t\ n\_best;\ }
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00084}00084\ \ \ uint16\_t\ iq\_mutation;\ }
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00085}00085\ \ \ int32\_t\ loss[0];\ }
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00086}00086\ \ \ int32\_t\ candidates[0][0];\ }
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00087}00087\ \}\ \mbox{\hyperlink{struct_gen_optimizer__t}{GenOptimizer\_t}};}
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00088}00088\ \textcolor{preprocessor}{\#define\ GenOptimizer\_Init(opt,\ n\_params,\ n\_cand,\ n\_best,\ iq\_mutation,\ start\_params)}}
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00089}00089\ \textcolor{preprocessor}{\#define\ GenOptimizer\_Step(opt,\ params,\ LossFunc)}}
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00090}00090\ \textcolor{preprocessor}{\#define\ PARAM\_SCALE\_Q16(x,\ min\_val,\ max\_val)\ \ \ \ \ \ \ \ \ \ \ \ (x)}}
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00091}00091\ \textcolor{preprocessor}{\#define\ PARAM\_UNSCALE\_Q16(q16\_val,\ min\_val,\ max\_val)\ \ \ \ (q16\_val)}}
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00092}00092\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00093}00093\ }
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00094}00094\ }
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00095}00095\ }
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00096}00096\ \textcolor{preprocessor}{\#ifdef\ INCLUDE\_BENCH\_TEST}}
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00097}00097\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{bench__time_8h}{bench\_time.h}}"{}}}
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00098}00098\ \textcolor{preprocessor}{\#else\ }\textcolor{comment}{//BENCH\_TIME\_ENABLE}}
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00099}00099\ \textcolor{preprocessor}{\#define\ BenchTime\_Init()}}
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00100}00100\ \textcolor{preprocessor}{\#define\ BenchTime\_Start(channel,\ ticks,\ tick\_period)\ \ 0}}
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00101}00101\ \textcolor{preprocessor}{\#define\ BenchTime\_End(channel,\ ticks)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 0}}
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00102}00102\ \textcolor{preprocessor}{\#define\ BenchTime\_GetMin(channel)\ \ \ \ \ \ \ 0}}
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00103}00103\ \textcolor{preprocessor}{\#define\ BenchTime\_GetMax(channel)\ \ \ \ \ \ \ 0}}
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00104}00104\ \textcolor{preprocessor}{\#define\ BenchTime\_GetAverage(channel)\ \ \ 0}}
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00105}00105\ \textcolor{preprocessor}{\#define\ BenchTime\_GetCount(channel)\ \ \ \ \ 0}}
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00106}00106\ \textcolor{preprocessor}{\#define\ BenchTime\_GetLast(channel)\ \ \ \ \ \ 0}}
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00107}00107\ \textcolor{preprocessor}{\#define\ BenchTime\_ResetStats(channel)}}
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00108}00108\ \textcolor{preprocessor}{\#endif\ }\textcolor{comment}{//BENCH\_TIME\_ENABLE}}
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00109}00109\ }
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00110}00110\ \textcolor{preprocessor}{\#ifdef\ INCLUDE\_GENERAL\_PERIPH\_LIBS}}
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00111}00111\ }
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00112}00112\ \textcolor{preprocessor}{\#include\ "{}\_\_general\_flash.h"{}}}
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00113}00113\ \textcolor{preprocessor}{\#include\ "{}general\_gpio.h"{}}}
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00114}00114\ \textcolor{preprocessor}{\#ifdef\ HAL\_SPI\_MODULE\_ENABLED}}
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00115}00115\ \textcolor{preprocessor}{\#include\ "{}general\_spi.h"{}}}
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00116}00116\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00117}00117\ \textcolor{preprocessor}{\#ifdef\ HAL\_UART\_MODULE\_ENABLED}}
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00118}00118\ \textcolor{preprocessor}{\#include\ "{}general\_uart.h"{}}}
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00119}00119\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00120}00120\ \textcolor{preprocessor}{\#ifdef\ HAL\_TIM\_MODULE\_ENABLED}}
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00121}00121\ \textcolor{preprocessor}{\#include\ "{}general\_tim.h"{}}}
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00122}00122\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00123}00123\ }
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00124}00124\ \textcolor{preprocessor}{\#endif\ }\textcolor{comment}{//INCLUDE\_GENERAL\_PERIPH\_LIBS}}
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00125}00125\ }
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00126}00126\ }
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00127}00127\ }
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00128}00128\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00129}00129\ \textcolor{comment}{/////////////////////////-\/-\/-\/USER\ SETTINGS-\/-\/-\//////////////////////////}}
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00130}00130\ \textcolor{comment}{//\ user\ includes}}
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00131}00131\ }
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00132}00132\ \textcolor{comment}{//\ user\ settings}\textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00133}00133\ \textcolor{comment}{/////////////////////////-\/-\/-\/USER\ SETTINGS-\/-\/-\//////////////////////////}}
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00134}00134\ }
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00135}00135\ }
\DoxyCodeLine{\Hypertarget{____mylibs__include_8h_source_l00136}00136\ \textcolor{preprocessor}{\#endif\ }\textcolor{comment}{//\ \_\_MYLIBS\_INCLUDE\_H\_}}
\end{DoxyCode}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,519 @@
\doxysection{SEGGER\+\_\+\+RTT.\+h}
\hypertarget{_s_e_g_g_e_r___r_t_t_8h_source}{}\label{_s_e_g_g_e_r___r_t_t_8h_source}\index{E:/.WORK/STM32/STM\_Libs/STM32\_ExtendedLibs/RTT/SEGGER\_RTT.h@{E:/.WORK/STM32/STM\_Libs/STM32\_ExtendedLibs/RTT/SEGGER\_RTT.h}}
\begin{DoxyCode}{0}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00001}00001\ \textcolor{comment}{/*********************************************************************}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00002}00002\ \textcolor{comment}{*\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ SEGGER\ Microcontroller\ GmbH\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00003}00003\ \textcolor{comment}{*\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ The\ Embedded\ Experts\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00004}00004\ \textcolor{comment}{**********************************************************************}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00005}00005\ \textcolor{comment}{*\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00006}00006\ \textcolor{comment}{*\ \ \ \ \ \ \ \ \ \ \ \ (c)\ 1995\ -\/\ 2021\ SEGGER\ Microcontroller\ GmbH\ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00007}00007\ \textcolor{comment}{*\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00008}00008\ \textcolor{comment}{*\ \ \ \ \ \ \ www.segger.com\ \ \ \ \ Support:\ support@segger.com\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00009}00009\ \textcolor{comment}{*\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00010}00010\ \textcolor{comment}{**********************************************************************}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00011}00011\ \textcolor{comment}{*\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00012}00012\ \textcolor{comment}{*\ \ \ \ \ \ \ SEGGER\ RTT\ *\ Real\ Time\ Transfer\ for\ embedded\ targets\ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00013}00013\ \textcolor{comment}{*\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00014}00014\ \textcolor{comment}{**********************************************************************}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00015}00015\ \textcolor{comment}{*\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00016}00016\ \textcolor{comment}{*\ All\ rights\ reserved.\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00017}00017\ \textcolor{comment}{*\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00018}00018\ \textcolor{comment}{*\ SEGGER\ strongly\ recommends\ to\ not\ make\ any\ changes\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00019}00019\ \textcolor{comment}{*\ to\ or\ modify\ the\ source\ code\ of\ this\ software\ in\ order\ to\ stay\ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00020}00020\ \textcolor{comment}{*\ compatible\ with\ the\ RTT\ protocol\ and\ J-\/Link.\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00021}00021\ \textcolor{comment}{*\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00022}00022\ \textcolor{comment}{*\ Redistribution\ and\ use\ in\ source\ and\ binary\ forms,\ with\ or\ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00023}00023\ \textcolor{comment}{*\ without\ modification,\ are\ permitted\ provided\ that\ the\ following\ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00024}00024\ \textcolor{comment}{*\ condition\ is\ met:\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00025}00025\ \textcolor{comment}{*\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00026}00026\ \textcolor{comment}{*\ o\ Redistributions\ of\ source\ code\ must\ retain\ the\ above\ copyright\ \ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00027}00027\ \textcolor{comment}{*\ \ \ notice,\ this\ condition\ and\ the\ following\ disclaimer.\ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00028}00028\ \textcolor{comment}{*\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00029}00029\ \textcolor{comment}{*\ THIS\ SOFTWARE\ IS\ PROVIDED\ BY\ THE\ COPYRIGHT\ HOLDERS\ AND\ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00030}00030\ \textcolor{comment}{*\ CONTRIBUTORS\ "{}AS\ IS"{}\ AND\ ANY\ EXPRESS\ OR\ IMPLIED\ WARRANTIES,\ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00031}00031\ \textcolor{comment}{*\ INCLUDING,\ BUT\ NOT\ LIMITED\ TO,\ THE\ IMPLIED\ WARRANTIES\ OF\ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00032}00032\ \textcolor{comment}{*\ MERCHANTABILITY\ AND\ FITNESS\ FOR\ A\ PARTICULAR\ PURPOSE\ ARE\ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00033}00033\ \textcolor{comment}{*\ DISCLAIMED.\ IN\ NO\ EVENT\ SHALL\ SEGGER\ Microcontroller\ BE\ LIABLE\ FOR\ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00034}00034\ \textcolor{comment}{*\ ANY\ DIRECT,\ INDIRECT,\ INCIDENTAL,\ SPECIAL,\ EXEMPLARY,\ OR\ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00035}00035\ \textcolor{comment}{*\ CONSEQUENTIAL\ DAMAGES\ (INCLUDING,\ BUT\ NOT\ LIMITED\ TO,\ PROCUREMENT\ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00036}00036\ \textcolor{comment}{*\ OF\ SUBSTITUTE\ GOODS\ OR\ SERVICES;\ LOSS\ OF\ USE,\ DATA,\ OR\ PROFITS;\ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00037}00037\ \textcolor{comment}{*\ OR\ BUSINESS\ INTERRUPTION)\ HOWEVER\ CAUSED\ AND\ ON\ ANY\ THEORY\ OF\ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00038}00038\ \textcolor{comment}{*\ LIABILITY,\ WHETHER\ IN\ CONTRACT,\ STRICT\ LIABILITY,\ OR\ TORT\ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00039}00039\ \textcolor{comment}{*\ (INCLUDING\ NEGLIGENCE\ OR\ OTHERWISE)\ ARISING\ IN\ ANY\ WAY\ OUT\ OF\ THE\ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00040}00040\ \textcolor{comment}{*\ USE\ OF\ THIS\ SOFTWARE,\ EVEN\ IF\ ADVISED\ OF\ THE\ POSSIBILITY\ OF\ SUCH\ \ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00041}00041\ \textcolor{comment}{*\ DAMAGE.\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00042}00042\ \textcolor{comment}{*\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00043}00043\ \textcolor{comment}{**********************************************************************}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00044}00044\ \textcolor{comment}{*\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00045}00045\ \textcolor{comment}{*\ \ \ \ \ \ \ RTT\ version:\ 8.10g\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00046}00046\ \textcolor{comment}{*\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00047}00047\ \textcolor{comment}{**********************************************************************}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00048}00048\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00049}00049\ \textcolor{comment}{-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/END-\/OF-\/HEADER-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00050}00050\ \textcolor{comment}{File\ \ \ \ :\ SEGGER\_RTT.h}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00051}00051\ \textcolor{comment}{Purpose\ :\ Implementation\ of\ SEGGER\ real-\/time\ transfer\ which\ allows}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00052}00052\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ real-\/time\ communication\ on\ targets\ which\ support\ debugger}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00053}00053\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ memory\ accesses\ while\ the\ CPU\ is\ running.}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00054}00054\ \textcolor{comment}{Revision:\ \$Rev:\ 25842\ \$}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00055}00055\ \textcolor{comment}{-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00056}00056\ \textcolor{comment}{*/}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00057}00057\ }
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00058}00058\ \textcolor{preprocessor}{\#ifndef\ SEGGER\_RTT\_H}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00059}00059\ \textcolor{preprocessor}{\#define\ SEGGER\_RTT\_H}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00060}00060\ }
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00061}00061\ \textcolor{preprocessor}{\#include\ "{}SEGGER\_RTT\_Conf.h"{}}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00062}00062\ }
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00063}00063\ \textcolor{comment}{/*********************************************************************}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00064}00064\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00065}00065\ \textcolor{comment}{*\ \ \ \ \ \ \ Defines,\ defaults}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00066}00066\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00067}00067\ \textcolor{comment}{**********************************************************************}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00068}00068\ \textcolor{comment}{*/}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00069}00069\ }
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00070}00070\ \textcolor{preprocessor}{\#ifndef\ RTT\_USE\_ASM}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00071}00071\ \ \ \textcolor{comment}{//}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00072}00072\ \ \ \textcolor{comment}{//\ Some\ cores\ support\ out-\/of-\/order\ memory\ accesses\ (reordering\ of\ memory\ accesses\ in\ the\ core)}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00073}00073\ \ \ \textcolor{comment}{//\ For\ such\ cores,\ we\ need\ to\ define\ a\ memory\ barrier\ to\ guarantee\ the\ order\ of\ certain\ accesses\ to\ the\ RTT\ ring\ buffers.}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00074}00074\ \ \ \textcolor{comment}{//\ Needed\ for:}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00075}00075\ \ \ \textcolor{comment}{//\ \ \ Cortex-\/M7\ (ARMv7-\/M)}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00076}00076\ \ \ \textcolor{comment}{//\ \ \ Cortex-\/M23\ (ARM-\/v8M)}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00077}00077\ \ \ \textcolor{comment}{//\ \ \ Cortex-\/M33\ (ARM-\/v8M)}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00078}00078\ \ \ \textcolor{comment}{//\ \ \ Cortex-\/A/R\ (ARM-\/v7A/R)}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00079}00079\ \ \ \textcolor{comment}{//}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00080}00080\ \ \ \textcolor{comment}{//\ We\ do\ not\ explicitly\ check\ for\ "{}Embedded\ Studio"{}\ as\ the\ compiler\ in\ use\ determines\ what\ we\ support.}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00081}00081\ \ \ \textcolor{comment}{//\ You\ can\ use\ an\ external\ toolchain\ like\ IAR\ inside\ ES.\ So\ there\ is\ no\ point\ in\ checking\ for\ "{}Embedded\ Studio"{}}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00082}00082\ \ \ \textcolor{comment}{//}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00083}00083\ \textcolor{preprocessor}{\ \ \#if\ (defined\ \_\_CROSSWORKS\_ARM)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }\textcolor{comment}{//\ Rowley\ Crossworks}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00084}00084\ \textcolor{preprocessor}{\ \ \ \ \#define\ \_CC\_HAS\_RTT\_ASM\_SUPPORT\ 1}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00085}00085\ \textcolor{preprocessor}{\ \ \ \ \#if\ (defined\ \_\_ARM\_ARCH\_7M\_\_)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }\textcolor{comment}{//\ Cortex-\/M3}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00086}00086\ \textcolor{preprocessor}{\ \ \ \ \ \ \#define\ \_CORE\_HAS\_RTT\_ASM\_SUPPORT\ 1}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00087}00087\ \textcolor{preprocessor}{\ \ \ \ \#elif\ (defined\ \_\_ARM\_ARCH\_7EM\_\_)\ \ \ \ \ \ \ \ \ \ \ \ \ \ }\textcolor{comment}{//\ Cortex-\/M4/M7}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00088}00088\ \textcolor{preprocessor}{\ \ \ \ \ \ \#define\ \_CORE\_HAS\_RTT\_ASM\_SUPPORT\ 1}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00089}00089\ \textcolor{preprocessor}{\ \ \ \ \ \ \#define\ \_CORE\_NEEDS\_DMB\ \ \ \ \ \ \ \ \ \ \ 1}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00090}00090\ \textcolor{preprocessor}{\ \ \ \ \ \ \#define\ RTT\_\_DMB()\ \_\_asm\ volatile\ ("{}dmb\(\backslash\)n"{}\ :\ :\ :);}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00091}00091\ \textcolor{preprocessor}{\ \ \ \ \#elif\ (defined\ \_\_ARM\_ARCH\_8M\_BASE\_\_)\ \ \ \ \ \ \ \ \ \ }\textcolor{comment}{//\ Cortex-\/M23}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00092}00092\ \textcolor{preprocessor}{\ \ \ \ \ \ \#define\ \_CORE\_HAS\_RTT\_ASM\_SUPPORT\ 0}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00093}00093\ \textcolor{preprocessor}{\ \ \ \ \ \ \#define\ \_CORE\_NEEDS\_DMB\ \ \ \ \ \ \ \ \ \ \ 1}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00094}00094\ \textcolor{preprocessor}{\ \ \ \ \ \ \#define\ RTT\_\_DMB()\ \_\_asm\ volatile\ ("{}dmb\(\backslash\)n"{}\ :\ :\ :);}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00095}00095\ \textcolor{preprocessor}{\ \ \ \ \#elif\ (defined\ \_\_ARM\_ARCH\_8M\_MAIN\_\_)\ \ \ \ \ \ \ \ \ \ }\textcolor{comment}{//\ Cortex-\/M33}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00096}00096\ \textcolor{preprocessor}{\ \ \ \ \ \ \#define\ \_CORE\_HAS\_RTT\_ASM\_SUPPORT\ 1}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00097}00097\ \textcolor{preprocessor}{\ \ \ \ \ \ \#define\ \_CORE\_NEEDS\_DMB\ \ \ \ \ \ \ \ \ \ \ 1}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00098}00098\ \textcolor{preprocessor}{\ \ \ \ \ \ \#define\ RTT\_\_DMB()\ \_\_asm\ volatile\ ("{}dmb\(\backslash\)n"{}\ :\ :\ :);}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00099}00099\ \textcolor{preprocessor}{\ \ \ \ \#elif\ (defined(\_\_ARM\_ARCH\_8\_1M\_MAIN\_\_))\ \ \ \ \ \ \ }\textcolor{comment}{//\ Cortex-\/M85}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00100}00100\ \textcolor{preprocessor}{\ \ \ \ \ \ \#define\ \_CORE\_HAS\_RTT\_ASM\_SUPPORT\ 1}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00101}00101\ \textcolor{preprocessor}{\ \ \ \ \ \ \#define\ \_CORE\_NEEDS\_DMB\ \ \ \ \ \ \ \ \ \ \ 1}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00102}00102\ \textcolor{preprocessor}{\ \ \ \ \ \ \#define\ RTT\_\_DMB()\ \_\_asm\ volatile\ ("{}dmb\(\backslash\)n"{}\ :\ :\ :);}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00103}00103\ \textcolor{preprocessor}{\ \ \ \ \#else}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00104}00104\ \textcolor{preprocessor}{\ \ \ \ \ \ \#define\ \_CORE\_HAS\_RTT\_ASM\_SUPPORT\ 0}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00105}00105\ \textcolor{preprocessor}{\ \ \ \ \#endif}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00106}00106\ \textcolor{preprocessor}{\ \ \#elif\ (defined\ \_\_ARMCC\_VERSION)}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00107}00107\ \ \ \ \ \textcolor{comment}{//}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00108}00108\ \ \ \ \ \textcolor{comment}{//\ ARM\ compiler}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00109}00109\ \ \ \ \ \textcolor{comment}{//\ ARM\ compiler\ V6.0\ and\ later\ is\ clang\ based.}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00110}00110\ \ \ \ \ \textcolor{comment}{//\ Our\ ASM\ part\ is\ compatible\ to\ clang.}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00111}00111\ \ \ \ \ \textcolor{comment}{//}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00112}00112\ \textcolor{preprocessor}{\ \ \ \ \#if\ (\_\_ARMCC\_VERSION\ >=\ 6000000)}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00113}00113\ \textcolor{preprocessor}{\ \ \ \ \ \ \#define\ \_CC\_HAS\_RTT\_ASM\_SUPPORT\ 1}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00114}00114\ \textcolor{preprocessor}{\ \ \ \ \#else}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00115}00115\ \textcolor{preprocessor}{\ \ \ \ \ \ \#define\ \_CC\_HAS\_RTT\_ASM\_SUPPORT\ 0}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00116}00116\ \textcolor{preprocessor}{\ \ \ \ \#endif}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00117}00117\ \textcolor{preprocessor}{\ \ \ \ \#if\ (defined\ \_\_ARM\_ARCH\_6M\_\_)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }\textcolor{comment}{//\ Cortex-\/M0\ /\ M1}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00118}00118\ \textcolor{preprocessor}{\ \ \ \ \ \ \#define\ \_CORE\_HAS\_RTT\_ASM\_SUPPORT\ 0\ \ \ \ \ \ \ \ \ }\textcolor{comment}{//\ No\ ASM\ support\ for\ this\ architecture}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00119}00119\ \textcolor{preprocessor}{\ \ \ \ \#elif\ (defined\ \_\_ARM\_ARCH\_7M\_\_)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }\textcolor{comment}{//\ Cortex-\/M3}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00120}00120\ \textcolor{preprocessor}{\ \ \ \ \ \ \#define\ \_CORE\_HAS\_RTT\_ASM\_SUPPORT\ 1}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00121}00121\ \textcolor{preprocessor}{\ \ \ \ \#elif\ (defined\ \_\_ARM\_ARCH\_7EM\_\_)\ \ \ \ \ \ \ \ \ \ \ \ \ \ }\textcolor{comment}{//\ Cortex-\/M4/M7}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00122}00122\ \textcolor{preprocessor}{\ \ \ \ \ \ \#define\ \_CORE\_HAS\_RTT\_ASM\_SUPPORT\ 1}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00123}00123\ \textcolor{preprocessor}{\ \ \ \ \ \ \#define\ \_CORE\_NEEDS\_DMB\ \ \ \ \ \ \ \ \ \ \ 1}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00124}00124\ \textcolor{preprocessor}{\ \ \ \ \ \ \#define\ RTT\_\_DMB()\ \_\_asm\ volatile\ ("{}dmb\(\backslash\)n"{}\ :\ :\ :);}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00125}00125\ \textcolor{preprocessor}{\ \ \ \ \#elif\ (defined\ \_\_ARM\_ARCH\_8M\_BASE\_\_)\ \ \ \ \ \ \ \ \ \ }\textcolor{comment}{//\ Cortex-\/M23}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00126}00126\ \textcolor{preprocessor}{\ \ \ \ \ \ \#define\ \_CORE\_HAS\_RTT\_ASM\_SUPPORT\ 0}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00127}00127\ \textcolor{preprocessor}{\ \ \ \ \ \ \#define\ \_CORE\_NEEDS\_DMB\ \ \ \ \ \ \ \ \ \ \ 1}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00128}00128\ \textcolor{preprocessor}{\ \ \ \ \ \ \#define\ RTT\_\_DMB()\ \_\_asm\ volatile\ ("{}dmb\(\backslash\)n"{}\ :\ :\ :);}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00129}00129\ \textcolor{preprocessor}{\ \ \ \ \#elif\ (defined\ \_\_ARM\_ARCH\_8M\_MAIN\_\_)\ \ \ \ \ \ \ \ \ \ }\textcolor{comment}{//\ Cortex-\/M33}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00130}00130\ \textcolor{preprocessor}{\ \ \ \ \ \ \#define\ \_CORE\_HAS\_RTT\_ASM\_SUPPORT\ 1}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00131}00131\ \textcolor{preprocessor}{\ \ \ \ \ \ \#define\ \_CORE\_NEEDS\_DMB\ \ \ \ \ \ \ \ \ \ \ 1}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00132}00132\ \textcolor{preprocessor}{\ \ \ \ \ \ \#define\ RTT\_\_DMB()\ \_\_asm\ volatile\ ("{}dmb\(\backslash\)n"{}\ :\ :\ :);}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00133}00133\ \textcolor{preprocessor}{\ \ \ \ \#elif\ (defined\ \_\_ARM\_ARCH\_8\_1M\_MAIN\_\_)\ \ \ \ \ \ \ \ }\textcolor{comment}{//\ Cortex-\/M85}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00134}00134\ \textcolor{preprocessor}{\ \ \ \ \ \ \#define\ \_CORE\_HAS\_RTT\_ASM\_SUPPORT\ 1}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00135}00135\ \textcolor{preprocessor}{\ \ \ \ \ \ \#define\ \_CORE\_NEEDS\_DMB\ \ \ \ \ \ \ \ \ \ \ 1}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00136}00136\ \textcolor{preprocessor}{\ \ \ \ \ \ \#define\ RTT\_\_DMB()\ \_\_asm\ volatile\ ("{}dmb\(\backslash\)n"{}\ :\ :\ :);}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00137}00137\ \textcolor{preprocessor}{\ \ \ \ \#elif\ ((defined\ \_\_ARM\_ARCH\_7A\_\_)\ ||\ (defined\ \_\_ARM\_ARCH\_7R\_\_))\ \ }\textcolor{comment}{//\ Cortex-\/A/R\ 32-\/bit\ ARMv7-\/A/R}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00138}00138\ \textcolor{preprocessor}{\ \ \ \ \ \ \#define\ \_CORE\_NEEDS\_DMB\ \ \ \ \ \ \ \ \ \ \ 1}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00139}00139\ \textcolor{preprocessor}{\ \ \ \ \ \ \#define\ RTT\_\_DMB()\ \_\_asm\ volatile\ ("{}dmb\(\backslash\)n"{}\ :\ :\ :);}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00140}00140\ \textcolor{preprocessor}{\ \ \ \ \#else}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00141}00141\ \textcolor{preprocessor}{\ \ \ \ \ \ \#define\ \_CORE\_HAS\_RTT\_ASM\_SUPPORT\ 0}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00142}00142\ \textcolor{preprocessor}{\ \ \ \ \#endif}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00143}00143\ \textcolor{preprocessor}{\ \ \#elif\ ((defined\ \_\_GNUC\_\_)\ ||\ (defined\ \_\_clang\_\_))}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00144}00144\ \ \ \ \ \textcolor{comment}{//}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00145}00145\ \ \ \ \ \textcolor{comment}{//\ GCC\ /\ Clang}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00146}00146\ \ \ \ \ \textcolor{comment}{//}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00147}00147\ \textcolor{preprocessor}{\ \ \ \ \#define\ \_CC\_HAS\_RTT\_ASM\_SUPPORT\ 1}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00148}00148\ \ \ \ \ \textcolor{comment}{//\ ARM\ 7/9:\ \_\_ARM\_ARCH\_5\_\_\ /\ \_\_ARM\_ARCH\_5E\_\_\ /\ \_\_ARM\_ARCH\_5T\_\_\ /\ \_\_ARM\_ARCH\_5T\_\_\ /\ \_\_ARM\_ARCH\_5TE\_\_}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00149}00149\ \textcolor{preprocessor}{\ \ \ \ \#if\ (defined\ \_\_ARM\_ARCH\_7M\_\_)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }\textcolor{comment}{//\ Cortex-\/M3}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00150}00150\ \textcolor{preprocessor}{\ \ \ \ \ \ \#define\ \_CORE\_HAS\_RTT\_ASM\_SUPPORT\ 1}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00151}00151\ \textcolor{preprocessor}{\ \ \ \ \#elif\ (defined\ \_\_ARM\_ARCH\_7EM\_\_)\ \ \ \ \ \ \ \ \ \ \ \ \ \ }\textcolor{comment}{//\ Cortex-\/M4/M7}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00152}00152\ \textcolor{preprocessor}{\ \ \ \ \ \ \#define\ \_CORE\_HAS\_RTT\_ASM\_SUPPORT\ 1}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00153}00153\ \textcolor{preprocessor}{\ \ \ \ \ \ \#define\ \_CORE\_NEEDS\_DMB\ \ \ \ \ \ \ \ \ \ \ 1\ \ \ \ \ \ \ \ \ }\textcolor{comment}{//\ Only\ Cortex-\/M7\ needs\ a\ DMB\ but\ we\ cannot\ distinguish\ M4\ and\ M7\ here...}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00154}00154\ \textcolor{preprocessor}{\ \ \ \ \ \ \#define\ RTT\_\_DMB()\ \_\_asm\ volatile\ ("{}dmb\(\backslash\)n"{}\ :\ :\ :);}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00155}00155\ \textcolor{preprocessor}{\ \ \ \ \#elif\ (defined\ \_\_ARM\_ARCH\_8M\_BASE\_\_)\ \ \ \ \ \ \ \ \ \ }\textcolor{comment}{//\ Cortex-\/M23}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00156}00156\ \textcolor{preprocessor}{\ \ \ \ \ \ \#define\ \_CORE\_HAS\_RTT\_ASM\_SUPPORT\ 0}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00157}00157\ \textcolor{preprocessor}{\ \ \ \ \ \ \#define\ \_CORE\_NEEDS\_DMB\ \ \ \ \ \ \ \ \ \ \ 1}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00158}00158\ \textcolor{preprocessor}{\ \ \ \ \ \ \#define\ RTT\_\_DMB()\ \_\_asm\ volatile\ ("{}dmb\(\backslash\)n"{}\ :\ :\ :);}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00159}00159\ \textcolor{preprocessor}{\ \ \ \ \#elif\ (defined\ \_\_ARM\_ARCH\_8M\_MAIN\_\_)\ \ \ \ \ \ \ \ \ \ }\textcolor{comment}{//\ Cortex-\/M33}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00160}00160\ \textcolor{preprocessor}{\ \ \ \ \ \ \#define\ \_CORE\_HAS\_RTT\_ASM\_SUPPORT\ 1}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00161}00161\ \textcolor{preprocessor}{\ \ \ \ \ \ \#define\ \_CORE\_NEEDS\_DMB\ \ \ \ \ \ \ \ \ \ \ 1}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00162}00162\ \textcolor{preprocessor}{\ \ \ \ \ \ \#define\ RTT\_\_DMB()\ \_\_asm\ volatile\ ("{}dmb\(\backslash\)n"{}\ :\ :\ :);}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00163}00163\ \textcolor{preprocessor}{\ \ \ \ \#elif\ (defined\ \_\_ARM\_ARCH\_8\_1M\_MAIN\_\_)\ \ \ \ \ \ \ \ }\textcolor{comment}{//\ Cortex-\/M85}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00164}00164\ \textcolor{preprocessor}{\ \ \ \ \ \ \#define\ \_CORE\_HAS\_RTT\_ASM\_SUPPORT\ 1}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00165}00165\ \textcolor{preprocessor}{\ \ \ \ \ \ \#define\ \_CORE\_NEEDS\_DMB\ \ \ \ \ \ \ \ \ \ \ 1}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00166}00166\ \textcolor{preprocessor}{\ \ \ \ \ \ \#define\ RTT\_\_DMB()\ \_\_asm\ volatile\ ("{}dmb\(\backslash\)n"{}\ :\ :\ :);}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00167}00167\ \textcolor{preprocessor}{\ \ \ \ \#elif\ ((defined\ \_\_ARM\_ARCH\_7A\_\_)\ ||\ (defined\ \_\_ARM\_ARCH\_7R\_\_))\ \ }\textcolor{comment}{//\ Cortex-\/A/R\ 32-\/bit\ ARMv7-\/A/R}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00168}00168\ \textcolor{preprocessor}{\ \ \ \ \ \ \#define\ \_CORE\_NEEDS\_DMB\ \ \ \ \ \ \ \ \ \ \ 1}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00169}00169\ \textcolor{preprocessor}{\ \ \ \ \ \ \#define\ RTT\_\_DMB()\ \_\_asm\ volatile\ ("{}dmb\(\backslash\)n"{}\ :\ :\ :);}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00170}00170\ \textcolor{preprocessor}{\ \ \ \ \#else}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00171}00171\ \textcolor{preprocessor}{\ \ \ \ \ \ \#define\ \_CORE\_HAS\_RTT\_ASM\_SUPPORT\ 0}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00172}00172\ \textcolor{preprocessor}{\ \ \ \ \#endif}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00173}00173\ \textcolor{preprocessor}{\ \ \#elif\ ((defined\ \_\_IASMARM\_\_)\ ||\ (defined\ \_\_ICCARM\_\_))}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00174}00174\ \ \ \ \ \textcolor{comment}{//}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00175}00175\ \ \ \ \ \textcolor{comment}{//\ IAR\ assembler/compiler}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00176}00176\ \ \ \ \ \textcolor{comment}{//}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00177}00177\ \textcolor{preprocessor}{\ \ \ \ \#define\ \_CC\_HAS\_RTT\_ASM\_SUPPORT\ 1}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00178}00178\ \textcolor{preprocessor}{\ \ \ \ \#if\ (\_\_VER\_\_\ <\ 6300000)}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00179}00179\ \textcolor{preprocessor}{\ \ \ \ \ \ \#define\ VOLATILE}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00180}00180\ \textcolor{preprocessor}{\ \ \ \ \#else}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00181}00181\ \textcolor{preprocessor}{\ \ \ \ \ \ \#define\ VOLATILE\ volatile}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00182}00182\ \textcolor{preprocessor}{\ \ \ \ \#endif}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00183}00183\ \textcolor{preprocessor}{\ \ \ \ \#if\ (defined\ \_\_ARM7M\_\_)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }\textcolor{comment}{//\ Needed\ for\ old\ versions\ that\ do\ not\ know\ the\ define\ yet}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00184}00184\ \textcolor{preprocessor}{\ \ \ \ \ \ \#if\ (\_\_CORE\_\_\ ==\ \_\_ARM7M\_\_)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }\textcolor{comment}{//\ Cortex-\/M3}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00185}00185\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \#define\ \_CORE\_HAS\_RTT\_ASM\_SUPPORT\ 1}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00186}00186\ \textcolor{preprocessor}{\ \ \ \ \ \ \#endif}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00187}00187\ \textcolor{preprocessor}{\ \ \ \ \#endif}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00188}00188\ \textcolor{preprocessor}{\ \ \ \ \#if\ (defined\ \_\_ARM7EM\_\_)}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00189}00189\ \textcolor{preprocessor}{\ \ \ \ \ \ \#if\ (\_\_CORE\_\_\ ==\ \_\_ARM7EM\_\_)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }\textcolor{comment}{//\ Cortex-\/M4/M7}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00190}00190\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \#define\ \_CORE\_HAS\_RTT\_ASM\_SUPPORT\ 1}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00191}00191\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \#define\ \_CORE\_NEEDS\_DMB\ 1}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00192}00192\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \#define\ RTT\_\_DMB()\ asm\ VOLATILE\ ("{}DMB"{});}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00193}00193\ \textcolor{preprocessor}{\ \ \ \ \ \ \#endif}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00194}00194\ \textcolor{preprocessor}{\ \ \ \ \#endif}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00195}00195\ \textcolor{preprocessor}{\ \ \ \ \#if\ (defined\ \_\_ARM8M\_BASELINE\_\_)}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00196}00196\ \textcolor{preprocessor}{\ \ \ \ \ \ \#if\ (\_\_CORE\_\_\ ==\ \_\_ARM8M\_BASELINE\_\_)\ \ \ \ \ \ \ \ \ \ \ \ \ }\textcolor{comment}{//\ Cortex-\/M23}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00197}00197\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \#define\ \_CORE\_HAS\_RTT\_ASM\_SUPPORT\ 0}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00198}00198\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \#define\ \_CORE\_NEEDS\_DMB\ 1}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00199}00199\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \#define\ RTT\_\_DMB()\ asm\ VOLATILE\ ("{}DMB"{});}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00200}00200\ \textcolor{preprocessor}{\ \ \ \ \ \ \#endif}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00201}00201\ \textcolor{preprocessor}{\ \ \ \ \#endif}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00202}00202\ \textcolor{preprocessor}{\ \ \ \ \#if\ (defined\ \_\_ARM8M\_MAINLINE\_\_)}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00203}00203\ \textcolor{preprocessor}{\ \ \ \ \ \ \#if\ (\_\_CORE\_\_\ ==\ \_\_ARM8M\_MAINLINE\_\_)\ \ \ \ \ \ \ \ \ \ \ \ \ }\textcolor{comment}{//\ Cortex-\/M33}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00204}00204\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \#define\ \_CORE\_HAS\_RTT\_ASM\_SUPPORT\ 1}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00205}00205\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \#define\ \_CORE\_NEEDS\_DMB\ 1}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00206}00206\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \#define\ RTT\_\_DMB()\ asm\ VOLATILE\ ("{}DMB"{});}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00207}00207\ \textcolor{preprocessor}{\ \ \ \ \ \ \#endif}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00208}00208\ \textcolor{preprocessor}{\ \ \ \ \#endif}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00209}00209\ \textcolor{preprocessor}{\ \ \ \ \#if\ (defined\ \_\_ARM8EM\_MAINLINE\_\_)}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00210}00210\ \textcolor{preprocessor}{\ \ \ \ \ \ \#if\ (\_\_CORE\_\_\ ==\ \_\_ARM8EM\_MAINLINE\_\_)\ \ \ \ \ \ \ \ \ \ \ \ }\textcolor{comment}{//\ Cortex-\/???}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00211}00211\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \#define\ \_CORE\_HAS\_RTT\_ASM\_SUPPORT\ 1}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00212}00212\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \#define\ \_CORE\_NEEDS\_DMB\ 1}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00213}00213\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \#define\ RTT\_\_DMB()\ asm\ VOLATILE\ ("{}DMB"{});}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00214}00214\ \textcolor{preprocessor}{\ \ \ \ \ \ \#endif}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00215}00215\ \textcolor{preprocessor}{\ \ \ \ \#endif}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00216}00216\ \textcolor{preprocessor}{\ \ \ \ \#if\ (defined\ \_\_ARM7A\_\_)}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00217}00217\ \textcolor{preprocessor}{\ \ \ \ \ \ \#if\ (\_\_CORE\_\_\ ==\ \_\_ARM7A\_\_)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }\textcolor{comment}{//\ Cortex-\/A\ 32-\/bit\ ARMv7-\/A}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00218}00218\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \#define\ \_CORE\_NEEDS\_DMB\ 1}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00219}00219\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \#define\ RTT\_\_DMB()\ asm\ VOLATILE\ ("{}DMB"{});}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00220}00220\ \textcolor{preprocessor}{\ \ \ \ \ \ \#endif}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00221}00221\ \textcolor{preprocessor}{\ \ \ \ \#endif}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00222}00222\ \textcolor{preprocessor}{\ \ \ \ \#if\ (defined\ \_\_ARM7R\_\_)}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00223}00223\ \textcolor{preprocessor}{\ \ \ \ \ \ \#if\ (\_\_CORE\_\_\ ==\ \_\_ARM7R\_\_)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }\textcolor{comment}{//\ Cortex-\/R\ 32-\/bit\ ARMv7-\/R}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00224}00224\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \#define\ \_CORE\_NEEDS\_DMB\ 1}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00225}00225\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \#define\ RTT\_\_DMB()\ asm\ VOLATILE\ ("{}DMB"{});}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00226}00226\ \textcolor{preprocessor}{\ \ \ \ \ \ \#endif}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00227}00227\ \textcolor{preprocessor}{\ \ \ \ \#endif}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00228}00228\ \textcolor{comment}{//\ TBD:\ \_\_ARM8A\_\_\ =>\ Cortex-\/A\ 64-\/bit\ ARMv8-\/A}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00229}00229\ \textcolor{comment}{//\ TBD:\ \_\_ARM8R\_\_\ =>\ Cortex-\/R\ 64-\/bit\ ARMv8-\/R}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00230}00230\ \textcolor{preprocessor}{\ \ \#else}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00231}00231\ \ \ \ \ \textcolor{comment}{//}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00232}00232\ \ \ \ \ \textcolor{comment}{//\ Other\ compilers}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00233}00233\ \ \ \ \ \textcolor{comment}{//}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00234}00234\ \textcolor{preprocessor}{\ \ \ \ \#define\ \_CC\_HAS\_RTT\_ASM\_SUPPORT\ \ \ 0}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00235}00235\ \textcolor{preprocessor}{\ \ \ \ \#define\ \_CORE\_HAS\_RTT\_ASM\_SUPPORT\ 0}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00236}00236\ \textcolor{preprocessor}{\ \ \#endif}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00237}00237\ \ \ \textcolor{comment}{//}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00238}00238\ \ \ \textcolor{comment}{//\ If\ IDE\ and\ core\ support\ the\ ASM\ version,\ enable\ ASM\ version\ by\ default}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00239}00239\ \ \ \textcolor{comment}{//}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00240}00240\ \textcolor{preprocessor}{\ \ \#ifndef\ \_CORE\_HAS\_RTT\_ASM\_SUPPORT}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00241}00241\ \textcolor{preprocessor}{\ \ \ \ \#define\ \_CORE\_HAS\_RTT\_ASM\_SUPPORT\ 0\ \ \ \ \ \ \ \ \ \ \ \ \ \ }\textcolor{comment}{//\ Default\ for\ unknown\ cores}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00242}00242\ \textcolor{preprocessor}{\ \ \#endif}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00243}00243\ \textcolor{preprocessor}{\ \ \#if\ (\_CC\_HAS\_RTT\_ASM\_SUPPORT\ \&\&\ \_CORE\_HAS\_RTT\_ASM\_SUPPORT)}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00244}00244\ \textcolor{preprocessor}{\ \ \ \ \#define\ RTT\_USE\_ASM\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (1)}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00245}00245\ \textcolor{preprocessor}{\ \ \#else}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00246}00246\ \textcolor{preprocessor}{\ \ \ \ \#define\ RTT\_USE\_ASM\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (0)}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00247}00247\ \textcolor{preprocessor}{\ \ \#endif}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00248}00248\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00249}00249\ }
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00250}00250\ \textcolor{preprocessor}{\#ifndef\ \_CORE\_NEEDS\_DMB}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00251}00251\ \textcolor{preprocessor}{\ \ \#define\ \_CORE\_NEEDS\_DMB\ 0}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00252}00252\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00253}00253\ }
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00254}00254\ \textcolor{preprocessor}{\#ifndef\ RTT\_\_DMB}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00255}00255\ \textcolor{preprocessor}{\ \ \#if\ \_CORE\_NEEDS\_DMB}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00256}00256\ \textcolor{preprocessor}{\ \ \ \ \#error\ "{}Don't\ know\ how\ to\ place\ inline\ assembly\ for\ DMB"{}}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00257}00257\ \textcolor{preprocessor}{\ \ \#else}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00258}00258\ \textcolor{preprocessor}{\ \ \ \ \#define\ RTT\_\_DMB()}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00259}00259\ \textcolor{preprocessor}{\ \ \#endif}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00260}00260\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00261}00261\ }
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00262}00262\ \textcolor{preprocessor}{\#ifndef\ SEGGER\_RTT\_CPU\_CACHE\_LINE\_SIZE}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00263}00263\ \textcolor{preprocessor}{\ \ \#define\ SEGGER\_RTT\_CPU\_CACHE\_LINE\_SIZE\ (0)\ \ \ }\textcolor{comment}{//\ On\ most\ target\ systems\ where\ RTT\ is\ used,\ we\ do\ not\ have\ a\ CPU\ cache,\ therefore\ 0\ is\ a\ good\ default\ here}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00264}00264\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00265}00265\ }
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00266}00266\ \textcolor{preprocessor}{\#ifndef\ SEGGER\_RTT\_UNCACHED\_OFF}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00267}00267\ \textcolor{preprocessor}{\ \ \#if\ SEGGER\_RTT\_CPU\_CACHE\_LINE\_SIZE}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00268}00268\ \textcolor{preprocessor}{\ \ \ \ \#error\ "{}SEGGER\_RTT\_UNCACHED\_OFF\ must\ be\ defined\ when\ setting\ SEGGER\_RTT\_CPU\_CACHE\_LINE\_SIZE\ !=\ 0"{}}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00269}00269\ \textcolor{preprocessor}{\ \ \#else}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00270}00270\ \textcolor{preprocessor}{\ \ \ \ \#define\ SEGGER\_RTT\_UNCACHED\_OFF\ (0)}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00271}00271\ \textcolor{preprocessor}{\ \ \#endif}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00272}00272\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00273}00273\ \textcolor{preprocessor}{\#if\ RTT\_USE\_ASM}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00274}00274\ \textcolor{preprocessor}{\ \ \#if\ SEGGER\_RTT\_CPU\_CACHE\_LINE\_SIZE}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00275}00275\ \textcolor{preprocessor}{\ \ \ \ \#error\ "{}RTT\_USE\_ASM\ is\ not\ available\ if\ SEGGER\_RTT\_CPU\_CACHE\_LINE\_SIZE\ !=\ 0"{}}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00276}00276\ \textcolor{preprocessor}{\ \ \#endif}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00277}00277\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00278}00278\ }
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00279}00279\ \textcolor{preprocessor}{\#ifndef\ SEGGER\_RTT\_ASM\ \ }\textcolor{comment}{//\ defined\ when\ SEGGER\_RTT.h\ is\ included\ from\ assembly\ file}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00280}00280\ \textcolor{preprocessor}{\#include\ <stdlib.h>}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00281}00281\ \textcolor{preprocessor}{\#include\ <stdarg.h>}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00282}00282\ \textcolor{preprocessor}{\#include\ <stdint.h>}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00283}00283\ }
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00284}00284\ \textcolor{comment}{/*********************************************************************}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00285}00285\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00286}00286\ \textcolor{comment}{*\ \ \ \ \ \ \ Defines,\ fixed}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00287}00287\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00288}00288\ \textcolor{comment}{**********************************************************************}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00289}00289\ \textcolor{comment}{*/}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00290}00290\ }
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00291}00291\ \textcolor{comment}{//}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00292}00292\ \textcolor{comment}{//\ Determine\ how\ much\ we\ must\ pad\ the\ control\ block\ to\ make\ it\ a\ multiple\ of\ a\ cache\ line\ in\ size}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00293}00293\ \textcolor{comment}{//\ Assuming:\ U8\ =\ 1B}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00294}00294\ \textcolor{comment}{//\ \ \ \ \ \ \ \ \ \ \ U16\ =\ 2B}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00295}00295\ \textcolor{comment}{//\ \ \ \ \ \ \ \ \ \ \ U32\ =\ 4B}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00296}00296\ \textcolor{comment}{//\ \ \ \ \ \ \ \ \ \ \ U8/U16/U32*\ =\ 4B}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00297}00297\ \textcolor{comment}{//}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00298}00298\ \textcolor{preprocessor}{\#if\ SEGGER\_RTT\_CPU\_CACHE\_LINE\_SIZE\ \ \ \ }\textcolor{comment}{//\ Avoid\ division\ by\ zero\ in\ case\ we\ do\ not\ have\ any\ cache}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00299}00299\ \textcolor{preprocessor}{\ \ \#define\ SEGGER\_RTT\_\_ROUND\_UP\_2\_CACHE\_LINE\_SIZE(NumBytes)\ (((NumBytes\ +\ SEGGER\_RTT\_CPU\_CACHE\_LINE\_SIZE\ -\/\ 1)\ /\ SEGGER\_RTT\_CPU\_CACHE\_LINE\_SIZE)\ *\ SEGGER\_RTT\_CPU\_CACHE\_LINE\_SIZE)}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00300}00300\ \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00301}00301\ \textcolor{preprocessor}{\ \ \#define\ SEGGER\_RTT\_\_ROUND\_UP\_2\_CACHE\_LINE\_SIZE(NumBytes)\ (NumBytes)}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00302}00302\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00303}00303\ \textcolor{preprocessor}{\#define\ SEGGER\_RTT\_\_CB\_SIZE\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (16\ +\ 4\ +\ 4\ +\ (SEGGER\_RTT\_MAX\_NUM\_UP\_BUFFERS\ *\ 24)\ +\ (SEGGER\_RTT\_MAX\_NUM\_DOWN\_BUFFERS\ *\ 24))}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00304}00304\ \textcolor{preprocessor}{\#define\ SEGGER\_RTT\_\_CB\_PADDING\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (SEGGER\_RTT\_\_ROUND\_UP\_2\_CACHE\_LINE\_SIZE(SEGGER\_RTT\_\_CB\_SIZE)\ -\/\ SEGGER\_RTT\_\_CB\_SIZE)}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00305}00305\ }
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00306}00306\ \textcolor{comment}{/*********************************************************************}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00307}00307\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00308}00308\ \textcolor{comment}{*\ \ \ \ \ \ \ Types}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00309}00309\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00310}00310\ \textcolor{comment}{**********************************************************************}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00311}00311\ \textcolor{comment}{*/}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00312}00312\ }
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00313}00313\ \textcolor{comment}{//}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00314}00314\ \textcolor{comment}{//\ Description\ for\ a\ circular\ buffer\ (also\ called\ "{}ring\ buffer"{})}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00315}00315\ \textcolor{comment}{//\ which\ is\ used\ as\ up-\/buffer\ (T-\/>H)}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00316}00316\ \textcolor{comment}{//}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00317}\mbox{\hyperlink{struct_s_e_g_g_e_r___r_t_t___b_u_f_f_e_r___u_p}{00317}}\ \textcolor{keyword}{typedef}\ \textcolor{keyword}{struct\ }\{}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00318}00318\ \ \ \textcolor{keyword}{const}\ \ \ \ \ \textcolor{keywordtype}{char}*\ \ \ \ sName;\ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ Optional\ name.\ Standard\ names\ so\ far\ are:\ "{}Terminal"{},\ "{}SysView"{},\ "{}J-\/Scope\_t4i4"{}}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00319}00319\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{char}*\ \ \ \ pBuffer;\ \ \ \ \ \ \ \textcolor{comment}{//\ Pointer\ to\ start\ of\ buffer}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00320}00320\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{unsigned}\ SizeOfBuffer;\ \ \textcolor{comment}{//\ Buffer\ size\ in\ bytes.\ Note\ that\ one\ byte\ is\ lost,\ as\ this\ implementation\ does\ not\ fill\ up\ the\ buffer\ in\ order\ to\ avoid\ the\ problem\ of\ being\ unable\ to\ distinguish\ between\ full\ and\ empty.}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00321}00321\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{unsigned}\ WrOff;\ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ Position\ of\ next\ item\ to\ be\ written\ by\ either\ target.}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00322}00322\ \ \ \textcolor{keyword}{volatile}\ \ \textcolor{keywordtype}{unsigned}\ RdOff;\ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ Position\ of\ next\ item\ to\ be\ read\ by\ host.\ Must\ be\ volatile\ since\ it\ may\ be\ modified\ by\ host.}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00323}00323\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{unsigned}\ Flags;\ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ Contains\ configuration\ flags.\ Flags[31:24]\ are\ used\ for\ validity\ check\ and\ must\ be\ zero.\ Flags[23:2]\ are\ reserved\ for\ future\ use.\ Flags[1:0]\ =\ RTT\ operating\ mode.}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00324}00324\ \}\ \mbox{\hyperlink{struct_s_e_g_g_e_r___r_t_t___b_u_f_f_e_r___u_p}{SEGGER\_RTT\_BUFFER\_UP}};}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00325}00325\ }
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00326}00326\ \textcolor{comment}{//}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00327}00327\ \textcolor{comment}{//\ Description\ for\ a\ circular\ buffer\ (also\ called\ "{}ring\ buffer"{})}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00328}00328\ \textcolor{comment}{//\ which\ is\ used\ as\ down-\/buffer\ (H-\/>T)}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00329}00329\ \textcolor{comment}{//}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00330}\mbox{\hyperlink{struct_s_e_g_g_e_r___r_t_t___b_u_f_f_e_r___d_o_w_n}{00330}}\ \textcolor{keyword}{typedef}\ \textcolor{keyword}{struct\ }\{}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00331}00331\ \ \ \textcolor{keyword}{const}\ \ \ \ \ \textcolor{keywordtype}{char}*\ \ \ \ sName;\ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ Optional\ name.\ Standard\ names\ so\ far\ are:\ "{}Terminal"{},\ "{}SysView"{},\ "{}J-\/Scope\_t4i4"{}}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00332}00332\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{char}*\ \ \ \ pBuffer;\ \ \ \ \ \ \ \textcolor{comment}{//\ Pointer\ to\ start\ of\ buffer}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00333}00333\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{unsigned}\ SizeOfBuffer;\ \ \textcolor{comment}{//\ Buffer\ size\ in\ bytes.\ Note\ that\ one\ byte\ is\ lost,\ as\ this\ implementation\ does\ not\ fill\ up\ the\ buffer\ in\ order\ to\ avoid\ the\ problem\ of\ being\ unable\ to\ distinguish\ between\ full\ and\ empty.}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00334}00334\ \ \ \textcolor{keyword}{volatile}\ \ \textcolor{keywordtype}{unsigned}\ WrOff;\ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ Position\ of\ next\ item\ to\ be\ written\ by\ host.\ Must\ be\ volatile\ since\ it\ may\ be\ modified\ by\ host.}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00335}00335\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{unsigned}\ RdOff;\ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ Position\ of\ next\ item\ to\ be\ read\ by\ target\ (down-\/buffer).}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00336}00336\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{unsigned}\ Flags;\ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ Contains\ configuration\ flags.\ Flags[31:24]\ are\ used\ for\ validity\ check\ and\ must\ be\ zero.\ Flags[23:2]\ are\ reserved\ for\ future\ use.\ Flags[1:0]\ =\ RTT\ operating\ mode.}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00337}00337\ \}\ \mbox{\hyperlink{struct_s_e_g_g_e_r___r_t_t___b_u_f_f_e_r___d_o_w_n}{SEGGER\_RTT\_BUFFER\_DOWN}};}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00338}00338\ }
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00339}00339\ \textcolor{comment}{//}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00340}00340\ \textcolor{comment}{//\ RTT\ control\ block\ which\ describes\ the\ number\ of\ buffers\ available}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00341}00341\ \textcolor{comment}{//\ as\ well\ as\ the\ configuration\ for\ each\ buffer}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00342}00342\ \textcolor{comment}{//}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00343}00343\ \textcolor{comment}{//}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00344}\mbox{\hyperlink{struct_s_e_g_g_e_r___r_t_t___c_b}{00344}}\ \textcolor{keyword}{typedef}\ \textcolor{keyword}{struct\ }\{}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00345}00345\ \ \ \textcolor{keywordtype}{char}\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ acID[16];\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ Initialized\ to\ "{}SEGGER\ RTT"{}}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00346}00346\ \ \ \textcolor{keywordtype}{int}\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ MaxNumUpBuffers;\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ Initialized\ to\ SEGGER\_RTT\_MAX\_NUM\_UP\_BUFFERS\ (type.\ 2)}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00347}00347\ \ \ \textcolor{keywordtype}{int}\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ MaxNumDownBuffers;\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ Initialized\ to\ SEGGER\_RTT\_MAX\_NUM\_DOWN\_BUFFERS\ (type.\ 2)}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00348}00348\ \ \ \mbox{\hyperlink{struct_s_e_g_g_e_r___r_t_t___b_u_f_f_e_r___u_p}{SEGGER\_RTT\_BUFFER\_UP}}\ \ \ \ aUp[SEGGER\_RTT\_MAX\_NUM\_UP\_BUFFERS];\ \ \ \ \ \ \ \textcolor{comment}{//\ Up\ buffers,\ transferring\ information\ up\ from\ target\ via\ debug\ probe\ to\ host}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00349}00349\ \ \ \mbox{\hyperlink{struct_s_e_g_g_e_r___r_t_t___b_u_f_f_e_r___d_o_w_n}{SEGGER\_RTT\_BUFFER\_DOWN}}\ \ aDown[SEGGER\_RTT\_MAX\_NUM\_DOWN\_BUFFERS];\ \ \ \textcolor{comment}{//\ Down\ buffers,\ transferring\ information\ down\ from\ host\ via\ debug\ probe\ to\ target}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00350}00350\ \textcolor{preprocessor}{\#if\ SEGGER\_RTT\_\_CB\_PADDING}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00351}00351\ \ \ \textcolor{keywordtype}{unsigned}\ \textcolor{keywordtype}{char}\ \ \ \ \ \ \ \ \ \ \ aDummy[SEGGER\_RTT\_\_CB\_PADDING];}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00352}00352\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00353}00353\ \}\ \mbox{\hyperlink{struct_s_e_g_g_e_r___r_t_t___c_b}{SEGGER\_RTT\_CB}};}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00354}00354\ }
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00355}00355\ \textcolor{comment}{/*********************************************************************}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00356}00356\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00357}00357\ \textcolor{comment}{*\ \ \ \ \ \ \ Global\ data}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00358}00358\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00359}00359\ \textcolor{comment}{**********************************************************************}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00360}00360\ \textcolor{comment}{*/}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00361}00361\ \textcolor{keyword}{extern}\ \mbox{\hyperlink{struct_s_e_g_g_e_r___r_t_t___c_b}{SEGGER\_RTT\_CB}}\ \_SEGGER\_RTT;}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00362}00362\ }
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00363}00363\ \textcolor{comment}{/*********************************************************************}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00364}00364\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00365}00365\ \textcolor{comment}{*\ \ \ \ \ \ \ RTT\ API\ functions}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00366}00366\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00367}00367\ \textcolor{comment}{**********************************************************************}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00368}00368\ \textcolor{comment}{*/}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00369}00369\ \textcolor{preprocessor}{\#ifdef\ \_\_cplusplus}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00370}00370\ \ \ \textcolor{keyword}{extern}\ \textcolor{stringliteral}{"{}C"{}}\ \{}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00371}00371\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00372}00372\ \textcolor{keywordtype}{int}\ \ \ \ \ \ \ \ \ \ SEGGER\_RTT\_AllocDownBuffer\ \ \ \ \ \ \ \ \ (\textcolor{keyword}{const}\ \textcolor{keywordtype}{char}*\ sName,\ \textcolor{keywordtype}{void}*\ pBuffer,\ \textcolor{keywordtype}{unsigned}\ BufferSize,\ \textcolor{keywordtype}{unsigned}\ Flags);}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00373}00373\ \textcolor{keywordtype}{int}\ \ \ \ \ \ \ \ \ \ SEGGER\_RTT\_AllocUpBuffer\ \ \ \ \ \ \ \ \ \ \ (\textcolor{keyword}{const}\ \textcolor{keywordtype}{char}*\ sName,\ \textcolor{keywordtype}{void}*\ pBuffer,\ \textcolor{keywordtype}{unsigned}\ BufferSize,\ \textcolor{keywordtype}{unsigned}\ Flags);}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00374}00374\ \textcolor{keywordtype}{int}\ \ \ \ \ \ \ \ \ \ SEGGER\_RTT\_ConfigUpBuffer\ \ \ \ \ \ \ \ \ \ (\textcolor{keywordtype}{unsigned}\ BufferIndex,\ \textcolor{keyword}{const}\ \textcolor{keywordtype}{char}*\ sName,\ \textcolor{keywordtype}{void}*\ pBuffer,\ \textcolor{keywordtype}{unsigned}\ BufferSize,\ \textcolor{keywordtype}{unsigned}\ Flags);}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00375}00375\ \textcolor{keywordtype}{int}\ \ \ \ \ \ \ \ \ \ SEGGER\_RTT\_ConfigDownBuffer\ \ \ \ \ \ \ \ (\textcolor{keywordtype}{unsigned}\ BufferIndex,\ \textcolor{keyword}{const}\ \textcolor{keywordtype}{char}*\ sName,\ \textcolor{keywordtype}{void}*\ pBuffer,\ \textcolor{keywordtype}{unsigned}\ BufferSize,\ \textcolor{keywordtype}{unsigned}\ Flags);}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00376}00376\ \textcolor{keywordtype}{int}\ \ \ \ \ \ \ \ \ \ SEGGER\_RTT\_GetKey\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (\textcolor{keywordtype}{void});}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00377}00377\ \textcolor{keywordtype}{unsigned}\ \ \ \ \ SEGGER\_RTT\_HasData\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (\textcolor{keywordtype}{unsigned}\ BufferIndex);}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00378}00378\ \textcolor{keywordtype}{int}\ \ \ \ \ \ \ \ \ \ SEGGER\_RTT\_HasKey\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (\textcolor{keywordtype}{void});}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00379}00379\ \textcolor{keywordtype}{unsigned}\ \ \ \ \ SEGGER\_RTT\_HasDataUp\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (\textcolor{keywordtype}{unsigned}\ BufferIndex);}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00380}00380\ \textcolor{keywordtype}{void}\ \ \ \ \ \ \ \ \ SEGGER\_RTT\_Init\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (\textcolor{keywordtype}{void});}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00381}00381\ \textcolor{keywordtype}{unsigned}\ \ \ \ \ SEGGER\_RTT\_Read\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (\textcolor{keywordtype}{unsigned}\ BufferIndex,\ \ \ \ \ \ \ \textcolor{keywordtype}{void}*\ pBuffer,\ \textcolor{keywordtype}{unsigned}\ BufferSize);}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00382}00382\ \textcolor{keywordtype}{unsigned}\ \ \ \ \ SEGGER\_RTT\_ReadNoLock\ \ \ \ \ \ \ \ \ \ \ \ \ \ (\textcolor{keywordtype}{unsigned}\ BufferIndex,\ \ \ \ \ \ \ \textcolor{keywordtype}{void}*\ pData,\ \ \ \textcolor{keywordtype}{unsigned}\ BufferSize);}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00383}00383\ \textcolor{keywordtype}{int}\ \ \ \ \ \ \ \ \ \ SEGGER\_RTT\_SetNameDownBuffer\ \ \ \ \ \ \ (\textcolor{keywordtype}{unsigned}\ BufferIndex,\ \textcolor{keyword}{const}\ \textcolor{keywordtype}{char}*\ sName);}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00384}00384\ \textcolor{keywordtype}{int}\ \ \ \ \ \ \ \ \ \ SEGGER\_RTT\_SetNameUpBuffer\ \ \ \ \ \ \ \ \ (\textcolor{keywordtype}{unsigned}\ BufferIndex,\ \textcolor{keyword}{const}\ \textcolor{keywordtype}{char}*\ sName);}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00385}00385\ \textcolor{keywordtype}{int}\ \ \ \ \ \ \ \ \ \ SEGGER\_RTT\_SetFlagsDownBuffer\ \ \ \ \ \ (\textcolor{keywordtype}{unsigned}\ BufferIndex,\ \textcolor{keywordtype}{unsigned}\ Flags);}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00386}00386\ \textcolor{keywordtype}{int}\ \ \ \ \ \ \ \ \ \ SEGGER\_RTT\_SetFlagsUpBuffer\ \ \ \ \ \ \ \ (\textcolor{keywordtype}{unsigned}\ BufferIndex,\ \textcolor{keywordtype}{unsigned}\ Flags);}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00387}00387\ \textcolor{keywordtype}{int}\ \ \ \ \ \ \ \ \ \ SEGGER\_RTT\_WaitKey\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (\textcolor{keywordtype}{void});}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00388}00388\ \textcolor{keywordtype}{unsigned}\ \ \ \ \ SEGGER\_RTT\_Write\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (\textcolor{keywordtype}{unsigned}\ BufferIndex,\ \textcolor{keyword}{const}\ \textcolor{keywordtype}{void}*\ pBuffer,\ \textcolor{keywordtype}{unsigned}\ NumBytes);}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00389}00389\ \textcolor{keywordtype}{unsigned}\ \ \ \ \ SEGGER\_RTT\_WriteNoLock\ \ \ \ \ \ \ \ \ \ \ \ \ (\textcolor{keywordtype}{unsigned}\ BufferIndex,\ \textcolor{keyword}{const}\ \textcolor{keywordtype}{void}*\ pBuffer,\ \textcolor{keywordtype}{unsigned}\ NumBytes);}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00390}00390\ \textcolor{keywordtype}{unsigned}\ \ \ \ \ SEGGER\_RTT\_WriteSkipNoLock\ \ \ \ \ \ \ \ \ (\textcolor{keywordtype}{unsigned}\ BufferIndex,\ \textcolor{keyword}{const}\ \textcolor{keywordtype}{void}*\ pBuffer,\ \textcolor{keywordtype}{unsigned}\ NumBytes);}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00391}00391\ \textcolor{keywordtype}{unsigned}\ \ \ \ \ SEGGER\_RTT\_ASM\_WriteSkipNoLock\ \ \ \ \ (\textcolor{keywordtype}{unsigned}\ BufferIndex,\ \textcolor{keyword}{const}\ \textcolor{keywordtype}{void}*\ pBuffer,\ \textcolor{keywordtype}{unsigned}\ NumBytes);}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00392}00392\ \textcolor{keywordtype}{unsigned}\ \ \ \ \ SEGGER\_RTT\_WriteString\ \ \ \ \ \ \ \ \ \ \ \ \ (\textcolor{keywordtype}{unsigned}\ BufferIndex,\ \textcolor{keyword}{const}\ \textcolor{keywordtype}{char}*\ s);}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00393}00393\ \textcolor{keywordtype}{void}\ \ \ \ \ \ \ \ \ SEGGER\_RTT\_WriteWithOverwriteNoLock(\textcolor{keywordtype}{unsigned}\ BufferIndex,\ \textcolor{keyword}{const}\ \textcolor{keywordtype}{void}*\ pBuffer,\ \textcolor{keywordtype}{unsigned}\ NumBytes);}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00394}00394\ \textcolor{keywordtype}{unsigned}\ \ \ \ \ SEGGER\_RTT\_PutChar\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (\textcolor{keywordtype}{unsigned}\ BufferIndex,\ \textcolor{keywordtype}{char}\ c);}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00395}00395\ \textcolor{keywordtype}{unsigned}\ \ \ \ \ SEGGER\_RTT\_PutCharSkip\ \ \ \ \ \ \ \ \ \ \ \ \ (\textcolor{keywordtype}{unsigned}\ BufferIndex,\ \textcolor{keywordtype}{char}\ c);}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00396}00396\ \textcolor{keywordtype}{unsigned}\ \ \ \ \ SEGGER\_RTT\_PutCharSkipNoLock\ \ \ \ \ \ \ (\textcolor{keywordtype}{unsigned}\ BufferIndex,\ \textcolor{keywordtype}{char}\ c);}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00397}00397\ \textcolor{keywordtype}{unsigned}\ \ \ \ \ SEGGER\_RTT\_GetAvailWriteSpace\ \ \ \ \ \ (\textcolor{keywordtype}{unsigned}\ BufferIndex);}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00398}00398\ \textcolor{keywordtype}{unsigned}\ \ \ \ \ SEGGER\_RTT\_GetBytesInBuffer\ \ \ \ \ \ \ \ (\textcolor{keywordtype}{unsigned}\ BufferIndex);}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00399}00399\ \textcolor{comment}{//}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00400}00400\ \textcolor{comment}{//\ Function\ macro\ for\ performance\ optimization}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00401}00401\ \textcolor{comment}{//}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00402}00402\ \textcolor{preprocessor}{\#define\ \ \ \ \ \ SEGGER\_RTT\_HASDATA(n)\ \ \ \ \ \ \ (((SEGGER\_RTT\_BUFFER\_DOWN*)((uintptr\_t)\&\_SEGGER\_RTT.aDown[n]\ +\ SEGGER\_RTT\_UNCACHED\_OFF))-\/>WrOff\ -\/\ ((SEGGER\_RTT\_BUFFER\_DOWN*)((uintptr\_t)\&\_SEGGER\_RTT.aDown[n]\ +\ SEGGER\_RTT\_UNCACHED\_OFF))-\/>RdOff)}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00403}00403\ }
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00404}00404\ \textcolor{preprocessor}{\#if\ RTT\_USE\_ASM}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00405}00405\ \textcolor{preprocessor}{\ \ \#define\ SEGGER\_RTT\_WriteSkipNoLock\ \ SEGGER\_RTT\_ASM\_WriteSkipNoLock}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00406}00406\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00407}00407\ }
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00408}00408\ \textcolor{comment}{/*********************************************************************}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00409}00409\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00410}00410\ \textcolor{comment}{*\ \ \ \ \ \ \ RTT\ transfer\ functions\ to\ send\ RTT\ data\ via\ other\ channels.}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00411}00411\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00412}00412\ \textcolor{comment}{**********************************************************************}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00413}00413\ \textcolor{comment}{*/}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00414}00414\ \textcolor{keywordtype}{unsigned}\ \ \ \ \ SEGGER\_RTT\_ReadUpBuffer\ \ \ \ \ \ \ \ \ \ \ \ (\textcolor{keywordtype}{unsigned}\ BufferIndex,\ \textcolor{keywordtype}{void}*\ pBuffer,\ \textcolor{keywordtype}{unsigned}\ BufferSize);}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00415}00415\ \textcolor{keywordtype}{unsigned}\ \ \ \ \ SEGGER\_RTT\_ReadUpBufferNoLock\ \ \ \ \ \ (\textcolor{keywordtype}{unsigned}\ BufferIndex,\ \textcolor{keywordtype}{void}*\ pData,\ \textcolor{keywordtype}{unsigned}\ BufferSize);}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00416}00416\ \textcolor{keywordtype}{unsigned}\ \ \ \ \ SEGGER\_RTT\_WriteDownBuffer\ \ \ \ \ \ \ \ \ (\textcolor{keywordtype}{unsigned}\ BufferIndex,\ \textcolor{keyword}{const}\ \textcolor{keywordtype}{void}*\ pBuffer,\ \textcolor{keywordtype}{unsigned}\ NumBytes);}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00417}00417\ \textcolor{keywordtype}{unsigned}\ \ \ \ \ SEGGER\_RTT\_WriteDownBufferNoLock\ \ \ (\textcolor{keywordtype}{unsigned}\ BufferIndex,\ \textcolor{keyword}{const}\ \textcolor{keywordtype}{void}*\ pBuffer,\ \textcolor{keywordtype}{unsigned}\ NumBytes);}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00418}00418\ }
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00419}00419\ \textcolor{preprocessor}{\#define\ \ \ \ \ \ SEGGER\_RTT\_HASDATA\_UP(n)\ \ \ \ (((SEGGER\_RTT\_BUFFER\_UP*)((uintptr\_t)\&\_SEGGER\_RTT.aUp[n]\ +\ SEGGER\_RTT\_UNCACHED\_OFF))-\/>WrOff\ -\/\ ((SEGGER\_RTT\_BUFFER\_UP*)((uintptr\_t)\&\_SEGGER\_RTT.aUp[n]\ +\ SEGGER\_RTT\_UNCACHED\_OFF))-\/>RdOff)\ \ \ }\textcolor{comment}{//\ Access\ uncached\ to\ make\ sure\ we\ see\ changes\ made\ by\ the\ J-\/Link\ side\ and\ all\ of\ our\ changes\ go\ into\ HW\ directly}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00420}00420\ }
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00421}00421\ \textcolor{comment}{/*********************************************************************}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00422}00422\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00423}00423\ \textcolor{comment}{*\ \ \ \ \ \ \ RTT\ "{}Terminal"{}\ API\ functions}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00424}00424\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00425}00425\ \textcolor{comment}{**********************************************************************}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00426}00426\ \textcolor{comment}{*/}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00427}00427\ \textcolor{keywordtype}{int}\ \ \ \ \ SEGGER\_RTT\_SetTerminal\ \ \ \ \ \ \ \ (\textcolor{keywordtype}{unsigned}\ \textcolor{keywordtype}{char}\ TerminalId);}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00428}00428\ \textcolor{keywordtype}{int}\ \ \ \ \ SEGGER\_RTT\_TerminalOut\ \ \ \ \ \ \ \ (\textcolor{keywordtype}{unsigned}\ \textcolor{keywordtype}{char}\ TerminalId,\ \textcolor{keyword}{const}\ \textcolor{keywordtype}{char}*\ s);}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00429}00429\ }
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00430}00430\ \textcolor{comment}{/*********************************************************************}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00431}00431\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00432}00432\ \textcolor{comment}{*\ \ \ \ \ \ \ RTT\ printf\ functions\ (require\ SEGGER\_RTT\_printf.c)}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00433}00433\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00434}00434\ \textcolor{comment}{**********************************************************************}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00435}00435\ \textcolor{comment}{*/}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00436}00436\ \textcolor{keywordtype}{int}\ SEGGER\_RTT\_printf(\textcolor{keywordtype}{unsigned}\ BufferIndex,\ \textcolor{keyword}{const}\ \textcolor{keywordtype}{char}\ *\ sFormat,\ ...);}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00437}00437\ \textcolor{keywordtype}{int}\ SEGGER\_RTT\_vprintf(\textcolor{keywordtype}{unsigned}\ BufferIndex,\ \textcolor{keyword}{const}\ \textcolor{keywordtype}{char}\ *\ sFormat,\ va\_list\ *\ pParamList);}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00438}00438\ }
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00439}00439\ \textcolor{preprocessor}{\#ifdef\ \_\_cplusplus}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00440}00440\ \ \ \}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00441}00441\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00442}00442\ }
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00443}00443\ \textcolor{preprocessor}{\#endif\ }\textcolor{comment}{//\ ifndef(SEGGER\_RTT\_ASM)}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00444}00444\ }
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00445}00445\ \textcolor{comment}{//}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00446}00446\ \textcolor{comment}{//\ For\ some\ environments,\ NULL\ may\ not\ be\ defined\ until\ certain\ headers\ are\ included}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00447}00447\ \textcolor{comment}{//}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00448}00448\ \textcolor{preprocessor}{\#ifndef\ NULL}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00449}00449\ \textcolor{preprocessor}{\ \ \#define\ NULL\ \ ((void*)0)}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00450}00450\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00451}00451\ }
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00452}00452\ \textcolor{comment}{/*********************************************************************}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00453}00453\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00454}00454\ \textcolor{comment}{*\ \ \ \ \ \ \ Defines}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00455}00455\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00456}00456\ \textcolor{comment}{**********************************************************************}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00457}00457\ \textcolor{comment}{*/}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00458}00458\ }
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00459}00459\ \textcolor{comment}{//}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00460}00460\ \textcolor{comment}{//\ Operating\ modes.\ Define\ behavior\ if\ buffer\ is\ full\ (not\ enough\ space\ for\ entire\ message)}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00461}00461\ \textcolor{comment}{//}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00462}00462\ \textcolor{preprocessor}{\#define\ SEGGER\_RTT\_MODE\_NO\_BLOCK\_SKIP\ \ \ \ \ \ \ \ \ (0)\ \ \ \ \ }\textcolor{comment}{//\ Skip.\ Do\ not\ block,\ output\ nothing.\ (Default)}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00463}00463\ \textcolor{preprocessor}{\#define\ SEGGER\_RTT\_MODE\_NO\_BLOCK\_TRIM\ \ \ \ \ \ \ \ \ (1)\ \ \ \ \ }\textcolor{comment}{//\ Trim:\ Do\ not\ block,\ output\ as\ much\ as\ fits.}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00464}00464\ \textcolor{preprocessor}{\#define\ SEGGER\_RTT\_MODE\_BLOCK\_IF\_FIFO\_FULL\ \ \ \ (2)\ \ \ \ \ }\textcolor{comment}{//\ Block:\ Wait\ until\ there\ is\ space\ in\ the\ buffer.}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00465}00465\ \textcolor{preprocessor}{\#define\ SEGGER\_RTT\_MODE\_MASK\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (3)}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00466}00466\ }
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00467}00467\ \textcolor{comment}{//}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00468}00468\ \textcolor{comment}{//\ Control\ sequences,\ based\ on\ ANSI.}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00469}00469\ \textcolor{comment}{//\ Can\ be\ used\ to\ control\ color,\ and\ clear\ the\ screen}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00470}00470\ \textcolor{comment}{//}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00471}00471\ \textcolor{preprocessor}{\#define\ RTT\_CTRL\_RESET\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ "{}\(\backslash\)x1B[0m"{}\ \ \ \ \ \ \ \ \ }\textcolor{comment}{//\ Reset\ to\ default\ colors}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00472}00472\ \textcolor{preprocessor}{\#define\ RTT\_CTRL\_CLEAR\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ "{}\(\backslash\)x1B[2J"{}\ \ \ \ \ \ \ \ \ }\textcolor{comment}{//\ Clear\ screen,\ reposition\ cursor\ to\ top\ left}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00473}00473\ }
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00474}00474\ \textcolor{preprocessor}{\#define\ RTT\_CTRL\_TEXT\_BLACK\ \ \ \ \ \ \ \ \ \ \ "{}\(\backslash\)x1B[2;30m"{}}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00475}00475\ \textcolor{preprocessor}{\#define\ RTT\_CTRL\_TEXT\_RED\ \ \ \ \ \ \ \ \ \ \ \ \ "{}\(\backslash\)x1B[2;31m"{}}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00476}00476\ \textcolor{preprocessor}{\#define\ RTT\_CTRL\_TEXT\_GREEN\ \ \ \ \ \ \ \ \ \ \ "{}\(\backslash\)x1B[2;32m"{}}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00477}00477\ \textcolor{preprocessor}{\#define\ RTT\_CTRL\_TEXT\_YELLOW\ \ \ \ \ \ \ \ \ \ "{}\(\backslash\)x1B[2;33m"{}}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00478}00478\ \textcolor{preprocessor}{\#define\ RTT\_CTRL\_TEXT\_BLUE\ \ \ \ \ \ \ \ \ \ \ \ "{}\(\backslash\)x1B[2;34m"{}}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00479}00479\ \textcolor{preprocessor}{\#define\ RTT\_CTRL\_TEXT\_MAGENTA\ \ \ \ \ \ \ \ \ "{}\(\backslash\)x1B[2;35m"{}}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00480}00480\ \textcolor{preprocessor}{\#define\ RTT\_CTRL\_TEXT\_CYAN\ \ \ \ \ \ \ \ \ \ \ \ "{}\(\backslash\)x1B[2;36m"{}}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00481}00481\ \textcolor{preprocessor}{\#define\ RTT\_CTRL\_TEXT\_WHITE\ \ \ \ \ \ \ \ \ \ \ "{}\(\backslash\)x1B[2;37m"{}}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00482}00482\ }
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00483}00483\ \textcolor{preprocessor}{\#define\ RTT\_CTRL\_TEXT\_BRIGHT\_BLACK\ \ \ \ "{}\(\backslash\)x1B[1;30m"{}}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00484}00484\ \textcolor{preprocessor}{\#define\ RTT\_CTRL\_TEXT\_BRIGHT\_RED\ \ \ \ \ \ "{}\(\backslash\)x1B[1;31m"{}}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00485}00485\ \textcolor{preprocessor}{\#define\ RTT\_CTRL\_TEXT\_BRIGHT\_GREEN\ \ \ \ "{}\(\backslash\)x1B[1;32m"{}}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00486}00486\ \textcolor{preprocessor}{\#define\ RTT\_CTRL\_TEXT\_BRIGHT\_YELLOW\ \ \ "{}\(\backslash\)x1B[1;33m"{}}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00487}00487\ \textcolor{preprocessor}{\#define\ RTT\_CTRL\_TEXT\_BRIGHT\_BLUE\ \ \ \ \ "{}\(\backslash\)x1B[1;34m"{}}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00488}00488\ \textcolor{preprocessor}{\#define\ RTT\_CTRL\_TEXT\_BRIGHT\_MAGENTA\ \ "{}\(\backslash\)x1B[1;35m"{}}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00489}00489\ \textcolor{preprocessor}{\#define\ RTT\_CTRL\_TEXT\_BRIGHT\_CYAN\ \ \ \ \ "{}\(\backslash\)x1B[1;36m"{}}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00490}00490\ \textcolor{preprocessor}{\#define\ RTT\_CTRL\_TEXT\_BRIGHT\_WHITE\ \ \ \ "{}\(\backslash\)x1B[1;37m"{}}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00491}00491\ }
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00492}00492\ \textcolor{preprocessor}{\#define\ RTT\_CTRL\_BG\_BLACK\ \ \ \ \ \ \ \ \ \ \ \ \ "{}\(\backslash\)x1B[24;40m"{}}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00493}00493\ \textcolor{preprocessor}{\#define\ RTT\_CTRL\_BG\_RED\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ "{}\(\backslash\)x1B[24;41m"{}}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00494}00494\ \textcolor{preprocessor}{\#define\ RTT\_CTRL\_BG\_GREEN\ \ \ \ \ \ \ \ \ \ \ \ \ "{}\(\backslash\)x1B[24;42m"{}}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00495}00495\ \textcolor{preprocessor}{\#define\ RTT\_CTRL\_BG\_YELLOW\ \ \ \ \ \ \ \ \ \ \ \ "{}\(\backslash\)x1B[24;43m"{}}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00496}00496\ \textcolor{preprocessor}{\#define\ RTT\_CTRL\_BG\_BLUE\ \ \ \ \ \ \ \ \ \ \ \ \ \ "{}\(\backslash\)x1B[24;44m"{}}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00497}00497\ \textcolor{preprocessor}{\#define\ RTT\_CTRL\_BG\_MAGENTA\ \ \ \ \ \ \ \ \ \ \ "{}\(\backslash\)x1B[24;45m"{}}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00498}00498\ \textcolor{preprocessor}{\#define\ RTT\_CTRL\_BG\_CYAN\ \ \ \ \ \ \ \ \ \ \ \ \ \ "{}\(\backslash\)x1B[24;46m"{}}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00499}00499\ \textcolor{preprocessor}{\#define\ RTT\_CTRL\_BG\_WHITE\ \ \ \ \ \ \ \ \ \ \ \ \ "{}\(\backslash\)x1B[24;47m"{}}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00500}00500\ }
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00501}00501\ \textcolor{preprocessor}{\#define\ RTT\_CTRL\_BG\_BRIGHT\_BLACK\ \ \ \ \ \ "{}\(\backslash\)x1B[4;40m"{}}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00502}00502\ \textcolor{preprocessor}{\#define\ RTT\_CTRL\_BG\_BRIGHT\_RED\ \ \ \ \ \ \ \ "{}\(\backslash\)x1B[4;41m"{}}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00503}00503\ \textcolor{preprocessor}{\#define\ RTT\_CTRL\_BG\_BRIGHT\_GREEN\ \ \ \ \ \ "{}\(\backslash\)x1B[4;42m"{}}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00504}00504\ \textcolor{preprocessor}{\#define\ RTT\_CTRL\_BG\_BRIGHT\_YELLOW\ \ \ \ \ "{}\(\backslash\)x1B[4;43m"{}}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00505}00505\ \textcolor{preprocessor}{\#define\ RTT\_CTRL\_BG\_BRIGHT\_BLUE\ \ \ \ \ \ \ "{}\(\backslash\)x1B[4;44m"{}}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00506}00506\ \textcolor{preprocessor}{\#define\ RTT\_CTRL\_BG\_BRIGHT\_MAGENTA\ \ \ \ "{}\(\backslash\)x1B[4;45m"{}}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00507}00507\ \textcolor{preprocessor}{\#define\ RTT\_CTRL\_BG\_BRIGHT\_CYAN\ \ \ \ \ \ \ "{}\(\backslash\)x1B[4;46m"{}}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00508}00508\ \textcolor{preprocessor}{\#define\ RTT\_CTRL\_BG\_BRIGHT\_WHITE\ \ \ \ \ \ "{}\(\backslash\)x1B[4;47m"{}}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00509}00509\ }
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00510}00510\ }
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00511}00511\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00512}00512\ }
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t_8h_source_l00513}00513\ \textcolor{comment}{/***************************\ End\ of\ file\ ****************************/}}
\end{DoxyCode}

View File

@@ -0,0 +1,400 @@
\doxysection{SEGGER\+\_\+\+RTT\+\_\+\+Syscalls\+\_\+\+KEIL.\+c}
\hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source}{}\label{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source}\index{E:/.WORK/STM32/STM\_Libs/STM32\_ExtendedLibs/RTT/SEGGER\_RTT\_Syscalls\_KEIL.c@{E:/.WORK/STM32/STM\_Libs/STM32\_ExtendedLibs/RTT/SEGGER\_RTT\_Syscalls\_KEIL.c}}
\begin{DoxyCode}{0}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00001}00001\ \textcolor{comment}{/*********************************************************************}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00002}00002\ \textcolor{comment}{*\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ SEGGER\ Microcontroller\ GmbH\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00003}00003\ \textcolor{comment}{*\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ The\ Embedded\ Experts\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00004}00004\ \textcolor{comment}{**********************************************************************}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00005}00005\ \textcolor{comment}{*\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00006}00006\ \textcolor{comment}{*\ \ \ \ \ \ \ \ \ \ \ \ (c)\ 1995\ -\/\ 2021\ SEGGER\ Microcontroller\ GmbH\ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00007}00007\ \textcolor{comment}{*\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00008}00008\ \textcolor{comment}{*\ \ \ \ \ \ \ www.segger.com\ \ \ \ \ Support:\ support@segger.com\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00009}00009\ \textcolor{comment}{*\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00010}00010\ \textcolor{comment}{**********************************************************************}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00011}00011\ \textcolor{comment}{*\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00012}00012\ \textcolor{comment}{*\ \ \ \ \ \ \ SEGGER\ RTT\ *\ Real\ Time\ Transfer\ for\ embedded\ targets\ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00013}00013\ \textcolor{comment}{*\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00014}00014\ \textcolor{comment}{**********************************************************************}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00015}00015\ \textcolor{comment}{*\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00016}00016\ \textcolor{comment}{*\ All\ rights\ reserved.\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00017}00017\ \textcolor{comment}{*\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00018}00018\ \textcolor{comment}{*\ SEGGER\ strongly\ recommends\ to\ not\ make\ any\ changes\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00019}00019\ \textcolor{comment}{*\ to\ or\ modify\ the\ source\ code\ of\ this\ software\ in\ order\ to\ stay\ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00020}00020\ \textcolor{comment}{*\ compatible\ with\ the\ RTT\ protocol\ and\ J-\/Link.\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00021}00021\ \textcolor{comment}{*\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00022}00022\ \textcolor{comment}{*\ Redistribution\ and\ use\ in\ source\ and\ binary\ forms,\ with\ or\ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00023}00023\ \textcolor{comment}{*\ without\ modification,\ are\ permitted\ provided\ that\ the\ following\ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00024}00024\ \textcolor{comment}{*\ condition\ is\ met:\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00025}00025\ \textcolor{comment}{*\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00026}00026\ \textcolor{comment}{*\ o\ Redistributions\ of\ source\ code\ must\ retain\ the\ above\ copyright\ \ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00027}00027\ \textcolor{comment}{*\ \ \ notice,\ this\ condition\ and\ the\ following\ disclaimer.\ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00028}00028\ \textcolor{comment}{*\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00029}00029\ \textcolor{comment}{*\ THIS\ SOFTWARE\ IS\ PROVIDED\ BY\ THE\ COPYRIGHT\ HOLDERS\ AND\ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00030}00030\ \textcolor{comment}{*\ CONTRIBUTORS\ "{}AS\ IS"{}\ AND\ ANY\ EXPRESS\ OR\ IMPLIED\ WARRANTIES,\ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00031}00031\ \textcolor{comment}{*\ INCLUDING,\ BUT\ NOT\ LIMITED\ TO,\ THE\ IMPLIED\ WARRANTIES\ OF\ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00032}00032\ \textcolor{comment}{*\ MERCHANTABILITY\ AND\ FITNESS\ FOR\ A\ PARTICULAR\ PURPOSE\ ARE\ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00033}00033\ \textcolor{comment}{*\ DISCLAIMED.\ IN\ NO\ EVENT\ SHALL\ SEGGER\ Microcontroller\ BE\ LIABLE\ FOR\ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00034}00034\ \textcolor{comment}{*\ ANY\ DIRECT,\ INDIRECT,\ INCIDENTAL,\ SPECIAL,\ EXEMPLARY,\ OR\ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00035}00035\ \textcolor{comment}{*\ CONSEQUENTIAL\ DAMAGES\ (INCLUDING,\ BUT\ NOT\ LIMITED\ TO,\ PROCUREMENT\ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00036}00036\ \textcolor{comment}{*\ OF\ SUBSTITUTE\ GOODS\ OR\ SERVICES;\ LOSS\ OF\ USE,\ DATA,\ OR\ PROFITS;\ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00037}00037\ \textcolor{comment}{*\ OR\ BUSINESS\ INTERRUPTION)\ HOWEVER\ CAUSED\ AND\ ON\ ANY\ THEORY\ OF\ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00038}00038\ \textcolor{comment}{*\ LIABILITY,\ WHETHER\ IN\ CONTRACT,\ STRICT\ LIABILITY,\ OR\ TORT\ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00039}00039\ \textcolor{comment}{*\ (INCLUDING\ NEGLIGENCE\ OR\ OTHERWISE)\ ARISING\ IN\ ANY\ WAY\ OUT\ OF\ THE\ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00040}00040\ \textcolor{comment}{*\ USE\ OF\ THIS\ SOFTWARE,\ EVEN\ IF\ ADVISED\ OF\ THE\ POSSIBILITY\ OF\ SUCH\ \ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00041}00041\ \textcolor{comment}{*\ DAMAGE.\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00042}00042\ \textcolor{comment}{*\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00043}00043\ \textcolor{comment}{**********************************************************************}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00044}00044\ \textcolor{comment}{*\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00045}00045\ \textcolor{comment}{*\ \ \ \ \ \ \ RTT\ version:\ 7.54\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00046}00046\ \textcolor{comment}{*\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00047}00047\ \textcolor{comment}{**********************************************************************}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00048}00048\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00049}00049\ \textcolor{comment}{-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/END-\/OF-\/HEADER-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00050}00050\ \textcolor{comment}{File\ \ \ \ :\ RTT\_Syscalls\_KEIL.c}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00051}00051\ \textcolor{comment}{Purpose\ :\ Retargeting\ module\ for\ KEIL\ MDK-\/CM3.}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00052}00052\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ Low-\/level\ functions\ for\ using\ printf()\ via\ RTT}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00053}00053\ \textcolor{comment}{Revision:\ \$Rev:\ 24316\ \$}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00054}00054\ \textcolor{comment}{Notes\ \ \ :\ (1)\ https://wiki.segger.com/Keil\_MDK-\/ARM\#RTT\_in\_uVision}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00055}00055\ \textcolor{comment}{-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00056}00056\ \textcolor{comment}{*/}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00057}00057\ \textcolor{preprocessor}{\#if\ (defined\ \_\_CC\_ARM)\ ||\ (defined\ \_\_ARMCC\_VERSION)}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00058}00058\ }
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00059}00059\ \textcolor{preprocessor}{\#include\ <stdio.h>}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00060}00060\ \textcolor{preprocessor}{\#include\ <stdlib.h>}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00061}00061\ \textcolor{preprocessor}{\#include\ <string.h>}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00062}00062\ \textcolor{preprocessor}{\#include\ <rt\_sys.h>}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00063}00063\ \textcolor{preprocessor}{\#include\ <rt\_misc.h>}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00064}00064\ }
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00065}00065\ \textcolor{preprocessor}{\#include\ "{}SEGGER\_RTT.h"{}}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00066}00066\ \textcolor{comment}{/*********************************************************************}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00067}00067\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00068}00068\ \textcolor{comment}{*\ \ \ \ \ \ \ \#pragmas}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00069}00069\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00070}00070\ \textcolor{comment}{**********************************************************************}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00071}00071\ \textcolor{comment}{*/}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00072}00072\ \textcolor{preprocessor}{\#if\ \_\_ARMCC\_VERSION\ <\ 6000000}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00073}00073\ \textcolor{preprocessor}{\#pragma\ import(\_\_use\_no\_semihosting)}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00074}00074\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00075}00075\ }
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00076}00076\ \textcolor{preprocessor}{\#ifdef\ \_MICROLIB}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00077}00077\ \textcolor{preprocessor}{\ \ \#pragma\ import(\_\_use\_full\_stdio)}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00078}00078\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00079}00079\ }
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00080}00080\ \textcolor{comment}{/*********************************************************************}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00081}00081\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00082}00082\ \textcolor{comment}{*\ \ \ \ \ \ \ Defines\ non-\/configurable}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00083}00083\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00084}00084\ \textcolor{comment}{**********************************************************************}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00085}00085\ \textcolor{comment}{*/}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00086}00086\ }
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00087}00087\ \textcolor{comment}{/*\ Standard\ IO\ device\ handles\ -\/\ arbitrary,\ but\ any\ real\ file\ system\ handles\ must\ be}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00088}00088\ \textcolor{comment}{\ \ \ less\ than\ 0x8000.\ */}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00089}00089\ \textcolor{preprocessor}{\#define\ STDIN\ \ \ \ \ \ \ \ \ \ \ \ \ 0x8001\ \ \ \ }\textcolor{comment}{//\ Standard\ Input\ Stream}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00090}00090\ \textcolor{preprocessor}{\#define\ STDOUT\ \ \ \ \ \ \ \ \ \ \ \ 0x8002\ \ \ \ }\textcolor{comment}{//\ Standard\ Output\ Stream}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00091}00091\ \textcolor{preprocessor}{\#define\ STDERR\ \ \ \ \ \ \ \ \ \ \ \ 0x8003\ \ \ \ }\textcolor{comment}{//\ Standard\ Error\ Stream}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00092}00092\ }
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00093}00093\ \textcolor{comment}{/*********************************************************************}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00094}00094\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00095}00095\ \textcolor{comment}{*\ \ \ \ \ \ \ Public\ const}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00096}00096\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00097}00097\ \textcolor{comment}{**********************************************************************}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00098}00098\ \textcolor{comment}{*/}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00099}00099\ \textcolor{preprocessor}{\#if\ \_\_ARMCC\_VERSION\ <\ 5000000}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00100}00100\ \textcolor{comment}{//const\ char\ \_\_stdin\_name[]\ \ =\ "{}STDIN"{};}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00101}00101\ \textcolor{keyword}{const}\ \textcolor{keywordtype}{char}\ \_\_stdout\_name[]\ =\ \textcolor{stringliteral}{"{}STDOUT"{}};}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00102}00102\ \textcolor{keyword}{const}\ \textcolor{keywordtype}{char}\ \_\_stderr\_name[]\ =\ \textcolor{stringliteral}{"{}STDERR"{}};}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00103}00103\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00104}00104\ }
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00105}00105\ \textcolor{comment}{/*********************************************************************}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00106}00106\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00107}00107\ \textcolor{comment}{*\ \ \ \ \ \ \ Public\ code}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00108}00108\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00109}00109\ \textcolor{comment}{**********************************************************************}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00110}00110\ \textcolor{comment}{*/}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00111}00111\ }
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00112}00112\ \textcolor{comment}{/*********************************************************************}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00113}00113\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00114}00114\ \textcolor{comment}{*\ \ \ \ \ \ \ \_ttywrch}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00115}00115\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00116}00116\ \textcolor{comment}{*\ \ Function\ description:}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00117}00117\ \textcolor{comment}{*\ \ \ \ Outputs\ a\ character\ to\ the\ console}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00118}00118\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00119}00119\ \textcolor{comment}{*\ \ Parameters:}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00120}00120\ \textcolor{comment}{*\ \ \ \ c\ \ \ \ -\/\ character\ to\ output}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00121}00121\ \textcolor{comment}{*\ \ }}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00122}00122\ \textcolor{comment}{*/}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00123}00123\ \textcolor{keywordtype}{void}\ \_ttywrch(\textcolor{keywordtype}{int}\ c)\ \{}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00124}00124\ \ \ fputc(c,\ stdout);\ \textcolor{comment}{//\ stdout}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00125}00125\ \ \ fflush(stdout);}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00126}00126\ \}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00127}00127\ }
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00128}00128\ \textcolor{comment}{/*********************************************************************}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00129}00129\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00130}00130\ \textcolor{comment}{*\ \ \ \ \ \ \ \_sys\_open}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00131}00131\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00132}00132\ \textcolor{comment}{*\ \ Function\ description:}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00133}00133\ \textcolor{comment}{*\ \ \ \ Opens\ the\ device/file\ in\ order\ to\ do\ read/write\ operations}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00134}00134\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00135}00135\ \textcolor{comment}{*\ \ Parameters:}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00136}00136\ \textcolor{comment}{*\ \ \ \ sName\ \ \ \ \ \ \ \ -\/\ sName\ of\ the\ device/file\ to\ open}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00137}00137\ \textcolor{comment}{*\ \ \ \ OpenMode\ \ \ \ -\/\ This\ parameter\ is\ currently\ ignored}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00138}00138\ \textcolor{comment}{*\ \ }}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00139}00139\ \textcolor{comment}{*\ \ Return\ value:}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00140}00140\ \textcolor{comment}{*\ \ \ \ !=\ 0\ \ \ \ \ -\/\ Handle\ to\ the\ object\ to\ open,\ otherwise\ }}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00141}00141\ \textcolor{comment}{*\ \ \ \ ==\ 0\ \ \ \ \ -\/"{}device"{}\ is\ not\ handled\ by\ this\ module}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00142}00142\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00143}00143\ \textcolor{comment}{*/}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00144}00144\ FILEHANDLE\ \_sys\_open(\textcolor{keyword}{const}\ \textcolor{keywordtype}{char}\ *\ sName,\ \textcolor{keywordtype}{int}\ OpenMode)\ \{}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00145}00145\ \ \ (void)OpenMode;}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00146}00146\ \ \ \textcolor{comment}{//\ Register\ standard\ Input\ Output\ devices.}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00147}00147\ \ \ \textcolor{keywordflow}{if}\ (strcmp(sName,\ \_\_stdout\_name)\ ==\ 0)\ \{}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00148}00148\ \ \ \ \ \textcolor{keywordflow}{return}\ (STDOUT);}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00149}00149\ \ \ \}\ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}\ (strcmp(sName,\ \_\_stderr\_name)\ ==\ 0)\ \{}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00150}00150\ \ \ \ \ \textcolor{keywordflow}{return}\ (STDERR);}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00151}00151\ \ \ \}\ \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00152}00152\ \ \ \textcolor{keywordflow}{return}\ (0);\ \ \textcolor{comment}{//\ Not\ implemented}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00153}00153\ \}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00154}00154\ }
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00155}00155\ \textcolor{comment}{/*********************************************************************}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00156}00156\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00157}00157\ \textcolor{comment}{*\ \ \ \ \ \ \ \_sys\_close}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00158}00158\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00159}00159\ \textcolor{comment}{*\ \ Function\ description:}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00160}00160\ \textcolor{comment}{*\ \ \ \ Closes\ the\ handle\ to\ the\ open\ device/file}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00161}00161\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00162}00162\ \textcolor{comment}{*\ \ Parameters:}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00163}00163\ \textcolor{comment}{*\ \ \ \ hFile\ \ \ \ -\/\ Handle\ to\ a\ file\ opened\ via\ \_sys\_open}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00164}00164\ \textcolor{comment}{*\ \ }}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00165}00165\ \textcolor{comment}{*\ \ Return\ value:}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00166}00166\ \textcolor{comment}{*\ \ \ \ 0\ \ \ \ \ -\/\ device/file\ closed}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00167}00167\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00168}00168\ \textcolor{comment}{*/}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00169}00169\ \textcolor{keywordtype}{int}\ \_sys\_close(FILEHANDLE\ hFile)\ \{}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00170}00170\ \ \ (void)hFile;}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00171}00171\ \ \ \textcolor{keywordflow}{return}\ 0;\ \ \textcolor{comment}{//\ Not\ implemented}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00172}00172\ \}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00173}00173\ }
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00174}00174\ \textcolor{comment}{/*********************************************************************}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00175}00175\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00176}00176\ \textcolor{comment}{*\ \ \ \ \ \ \ \_sys\_write}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00177}00177\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00178}00178\ \textcolor{comment}{*\ \ Function\ description:}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00179}00179\ \textcolor{comment}{*\ \ \ \ Writes\ the\ data\ to\ an\ open\ handle.}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00180}00180\ \textcolor{comment}{*\ \ \ \ Currently\ this\ function\ only\ outputs\ data\ to\ the\ console}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00181}00181\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00182}00182\ \textcolor{comment}{*\ \ Parameters:}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00183}00183\ \textcolor{comment}{*\ \ \ \ hFile\ \ \ \ -\/\ Handle\ to\ a\ file\ opened\ via\ \_sys\_open}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00184}00184\ \textcolor{comment}{*\ \ \ \ pBuffer\ \ -\/\ Pointer\ to\ the\ data\ that\ shall\ be\ written}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00185}00185\ \textcolor{comment}{*\ \ \ \ NumBytes\ \ \ \ \ \ -\/\ Number\ of\ bytes\ to\ write}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00186}00186\ \textcolor{comment}{*\ \ \ \ Mode\ \ \ \ \ -\/\ The\ Mode\ that\ shall\ be\ used}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00187}00187\ \textcolor{comment}{*\ \ }}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00188}00188\ \textcolor{comment}{*\ \ Return\ value:}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00189}00189\ \textcolor{comment}{*\ \ \ \ Number\ of\ bytes\ *not*\ written\ to\ the\ file/device}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00190}00190\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00191}00191\ \textcolor{comment}{*/}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00192}00192\ \textcolor{keywordtype}{int}\ \_sys\_write(FILEHANDLE\ hFile,\ \textcolor{keyword}{const}\ \textcolor{keywordtype}{unsigned}\ \textcolor{keywordtype}{char}\ *\ pBuffer,\ \textcolor{keywordtype}{unsigned}\ NumBytes,\ \textcolor{keywordtype}{int}\ Mode)\ \{}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00193}00193\ \ \ \textcolor{keywordtype}{int}\ r\ =\ 0;}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00194}00194\ }
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00195}00195\ \ \ (void)Mode;}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00196}00196\ \ \ \textcolor{keywordflow}{if}\ (hFile\ ==\ STDOUT)\ \{}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00197}00197\ \ \ \ \ SEGGER\_RTT\_Write(0,\ (\textcolor{keyword}{const}\ \textcolor{keywordtype}{char}*)pBuffer,\ NumBytes);}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00198}00198\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ 0;}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00199}00199\ \ \ \}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00200}00200\ \ \ \textcolor{keywordflow}{return}\ r;}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00201}00201\ \}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00202}00202\ }
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00203}00203\ \textcolor{comment}{/*********************************************************************}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00204}00204\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00205}00205\ \textcolor{comment}{*\ \ \ \ \ \ \ \_sys\_read}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00206}00206\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00207}00207\ \textcolor{comment}{*\ \ Function\ description:}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00208}00208\ \textcolor{comment}{*\ \ \ \ Reads\ data\ from\ an\ open\ handle.}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00209}00209\ \textcolor{comment}{*\ \ \ \ Currently\ this\ modules\ does\ nothing.}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00210}00210\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00211}00211\ \textcolor{comment}{*\ \ Parameters:}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00212}00212\ \textcolor{comment}{*\ \ \ \ hFile\ \ \ \ -\/\ Handle\ to\ a\ file\ opened\ via\ \_sys\_open}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00213}00213\ \textcolor{comment}{*\ \ \ \ pBuffer\ \ -\/\ Pointer\ to\ buffer\ to\ store\ the\ read\ data}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00214}00214\ \textcolor{comment}{*\ \ \ \ NumBytes\ \ \ \ \ \ -\/\ Number\ of\ bytes\ to\ read}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00215}00215\ \textcolor{comment}{*\ \ \ \ Mode\ \ \ \ \ -\/\ The\ Mode\ that\ shall\ be\ used}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00216}00216\ \textcolor{comment}{*\ \ }}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00217}00217\ \textcolor{comment}{*\ \ Return\ value:}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00218}00218\ \textcolor{comment}{*\ \ \ \ Number\ of\ bytes\ read\ from\ the\ file/device}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00219}00219\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00220}00220\ \textcolor{comment}{*/}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00221}00221\ \textcolor{keywordtype}{int}\ \_sys\_read(FILEHANDLE\ hFile,\ \textcolor{keywordtype}{unsigned}\ \textcolor{keywordtype}{char}\ *\ pBuffer,\ \textcolor{keywordtype}{unsigned}\ NumBytes,\ \textcolor{keywordtype}{int}\ Mode)\ \{}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00222}00222\ \ \ (void)hFile;}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00223}00223\ \ \ (void)pBuffer;}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00224}00224\ \ \ (void)NumBytes;}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00225}00225\ \ \ (void)Mode;}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00226}00226\ \ \ \textcolor{keywordflow}{return}\ (0);\ \ \textcolor{comment}{//\ Not\ implemented}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00227}00227\ \}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00228}00228\ }
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00229}00229\ \textcolor{comment}{/*********************************************************************}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00230}00230\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00231}00231\ \textcolor{comment}{*\ \ \ \ \ \ \ \_sys\_istty}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00232}00232\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00233}00233\ \textcolor{comment}{*\ \ Function\ description:}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00234}00234\ \textcolor{comment}{*\ \ \ \ This\ function\ shall\ return\ whether\ the\ opened\ file\ }}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00235}00235\ \textcolor{comment}{*\ \ \ \ is\ a\ console\ device\ or\ not.}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00236}00236\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00237}00237\ \textcolor{comment}{*\ \ Parameters:}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00238}00238\ \textcolor{comment}{*\ \ \ \ hFile\ \ \ \ -\/\ Handle\ to\ a\ file\ opened\ via\ \_sys\_open}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00239}00239\ \textcolor{comment}{*\ \ }}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00240}00240\ \textcolor{comment}{*\ \ Return\ value:}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00241}00241\ \textcolor{comment}{*\ \ \ \ 1\ \ \ \ \ \ \ -\/\ Device\ is\ \ \ \ \ a\ console}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00242}00242\ \textcolor{comment}{*\ \ \ \ 0\ \ \ \ \ \ \ -\/\ Device\ is\ not\ a\ console}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00243}00243\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00244}00244\ \textcolor{comment}{*/}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00245}00245\ \textcolor{keywordtype}{int}\ \_sys\_istty(FILEHANDLE\ hFile)\ \{}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00246}00246\ \ \ \textcolor{keywordflow}{if}\ (hFile\ >\ 0x8000)\ \{}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00247}00247\ \ \ \ \ \textcolor{keywordflow}{return}\ (1);}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00248}00248\ \ \ \}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00249}00249\ \ \ \textcolor{keywordflow}{return}\ (0);\ \ \textcolor{comment}{//\ Not\ implemented}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00250}00250\ \}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00251}00251\ }
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00252}00252\ \textcolor{comment}{/*********************************************************************}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00253}00253\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00254}00254\ \textcolor{comment}{*\ \ \ \ \ \ \ \_sys\_seek}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00255}00255\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00256}00256\ \textcolor{comment}{*\ \ Function\ description:}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00257}00257\ \textcolor{comment}{*\ \ \ \ Seeks\ via\ the\ file\ to\ a\ specific\ position}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00258}00258\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00259}00259\ \textcolor{comment}{*\ \ Parameters:}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00260}00260\ \textcolor{comment}{*\ \ \ \ hFile\ \ -\/\ Handle\ to\ a\ file\ opened\ via\ \_sys\_open}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00261}00261\ \textcolor{comment}{*\ \ \ \ Pos\ \ \ \ -\/\ }}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00262}00262\ \textcolor{comment}{*\ \ }}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00263}00263\ \textcolor{comment}{*\ \ Return\ value:}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00264}00264\ \textcolor{comment}{*\ \ \ \ int\ \ \ \ \ \ \ -\/\ }}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00265}00265\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00266}00266\ \textcolor{comment}{*/}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00267}00267\ \textcolor{keywordtype}{int}\ \_sys\_seek(FILEHANDLE\ hFile,\ \textcolor{keywordtype}{long}\ Pos)\ \{}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00268}00268\ \ \ (void)hFile;}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00269}00269\ \ \ (void)Pos;}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00270}00270\ \ \ \textcolor{keywordflow}{return}\ (0);\ \ \textcolor{comment}{//\ Not\ implemented}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00271}00271\ \}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00272}00272\ }
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00273}00273\ \textcolor{comment}{/*********************************************************************}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00274}00274\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00275}00275\ \textcolor{comment}{*\ \ \ \ \ \ \ \_sys\_ensure}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00276}00276\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00277}00277\ \textcolor{comment}{*\ \ Function\ description:}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00278}00278\ \textcolor{comment}{*\ \ \ \ }}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00279}00279\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00280}00280\ \textcolor{comment}{*\ \ Parameters:}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00281}00281\ \textcolor{comment}{*\ \ \ \ hFile\ \ \ \ -\/\ Handle\ to\ a\ file\ opened\ via\ \_sys\_open}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00282}00282\ \textcolor{comment}{*\ \ }}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00283}00283\ \textcolor{comment}{*\ \ Return\ value:}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00284}00284\ \textcolor{comment}{*\ \ \ \ int\ \ \ \ \ \ \ -\/\ }}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00285}00285\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00286}00286\ \textcolor{comment}{*/}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00287}00287\ \textcolor{keywordtype}{int}\ \_sys\_ensure(FILEHANDLE\ hFile)\ \{}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00288}00288\ \ \ (void)hFile;}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00289}00289\ \ \ \textcolor{keywordflow}{return}\ (-\/1);\ \ \textcolor{comment}{//\ Not\ implemented}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00290}00290\ \}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00291}00291\ }
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00292}00292\ \textcolor{comment}{/*********************************************************************}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00293}00293\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00294}00294\ \textcolor{comment}{*\ \ \ \ \ \ \ \_sys\_flen}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00295}00295\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00296}00296\ \textcolor{comment}{*\ \ Function\ description:}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00297}00297\ \textcolor{comment}{*\ \ \ \ Returns\ the\ length\ of\ the\ opened\ file\ handle}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00298}00298\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00299}00299\ \textcolor{comment}{*\ \ Parameters:}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00300}00300\ \textcolor{comment}{*\ \ \ \ hFile\ \ \ \ -\/\ Handle\ to\ a\ file\ opened\ via\ \_sys\_open}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00301}00301\ \textcolor{comment}{*\ \ }}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00302}00302\ \textcolor{comment}{*\ \ Return\ value:}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00303}00303\ \textcolor{comment}{*\ \ \ \ Length\ of\ the\ file}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00304}00304\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00305}00305\ \textcolor{comment}{*/}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00306}00306\ \textcolor{keywordtype}{long}\ \_sys\_flen(FILEHANDLE\ hFile)\ \{}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00307}00307\ \ \ (void)hFile;}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00308}00308\ \ \ \textcolor{keywordflow}{return}\ (0);\ \ \textcolor{comment}{//\ Not\ implemented}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00309}00309\ \}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00310}00310\ }
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00311}00311\ \textcolor{comment}{/*********************************************************************}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00312}00312\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00313}00313\ \textcolor{comment}{*\ \ \ \ \ \ \ \_sys\_tmpnam}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00314}00314\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00315}00315\ \textcolor{comment}{*\ \ Function\ description:}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00316}00316\ \textcolor{comment}{*\ \ \ \ This\ function\ converts\ the\ file\ number\ fileno\ for\ a\ temporary\ }}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00317}00317\ \textcolor{comment}{*\ \ \ \ file\ to\ a\ unique\ filename,\ for\ example,\ tmp0001.}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00318}00318\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00319}00319\ \textcolor{comment}{*\ \ Parameters:}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00320}00320\ \textcolor{comment}{*\ \ \ \ pBuffer\ \ \ \ -\/\ Pointer\ to\ a\ buffer\ to\ store\ the\ name}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00321}00321\ \textcolor{comment}{*\ \ \ \ FileNum\ \ \ \ -\/\ file\ number\ to\ convert}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00322}00322\ \textcolor{comment}{*\ \ \ \ MaxLen\ \ \ \ \ -\/\ Size\ of\ the\ buffer}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00323}00323\ \textcolor{comment}{*\ \ }}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00324}00324\ \textcolor{comment}{*\ \ Return\ value:}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00325}00325\ \textcolor{comment}{*\ \ \ \ \ 1\ -\/\ Error}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00326}00326\ \textcolor{comment}{*\ \ \ \ \ 0\ -\/\ Success\ \ }}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00327}00327\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00328}00328\ \textcolor{comment}{*/}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00329}00329\ \textcolor{keywordtype}{int}\ \_sys\_tmpnam2(\textcolor{keywordtype}{char}\ *\ pBuffer,\ \textcolor{keywordtype}{int}\ FileNum,\ \textcolor{keywordtype}{unsigned}\ MaxLen)\ \{}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00330}00330\ \ \ (void)pBuffer;}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00331}00331\ \ \ (void)FileNum;}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00332}00332\ \ \ (void)MaxLen;}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00333}00333\ \ \ \textcolor{keywordflow}{return}\ (1);\ \ \textcolor{comment}{//\ Not\ implemented}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00334}00334\ \}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00335}00335\ }
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00336}00336\ \textcolor{comment}{/*********************************************************************}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00337}00337\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00338}00338\ \textcolor{comment}{*\ \ \ \ \ \ \ \_sys\_command\_string}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00339}00339\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00340}00340\ \textcolor{comment}{*\ \ Function\ description:}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00341}00341\ \textcolor{comment}{*\ \ \ \ This\ function\ shall\ execute\ a\ system\ command.}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00342}00342\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00343}00343\ \textcolor{comment}{*\ \ Parameters:}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00344}00344\ \textcolor{comment}{*\ \ \ \ cmd\ \ \ \ -\/\ Pointer\ to\ the\ command\ string}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00345}00345\ \textcolor{comment}{*\ \ \ \ len\ \ \ \ -\/\ Length\ of\ the\ string}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00346}00346\ \textcolor{comment}{*\ \ }}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00347}00347\ \textcolor{comment}{*\ \ Return\ value:}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00348}00348\ \textcolor{comment}{*\ \ \ \ ==\ NULL\ -\/\ Command\ was\ not\ successfully\ executed}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00349}00349\ \textcolor{comment}{*\ \ \ \ ==\ sCmd\ -\/\ Command\ was\ passed\ successfully}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00350}00350\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00351}00351\ \textcolor{comment}{*/}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00352}00352\ \textcolor{keywordtype}{char}\ *\ \_sys\_command\_string(\textcolor{keywordtype}{char}\ *\ cmd,\ \textcolor{keywordtype}{int}\ len)\ \{}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00353}00353\ \ \ (void)len;}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00354}00354\ \ \ \textcolor{keywordflow}{return}\ cmd;\ \ \textcolor{comment}{//\ Not\ implemented}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00355}00355\ \}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00356}00356\ }
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00357}00357\ \textcolor{comment}{/*********************************************************************}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00358}00358\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00359}00359\ \textcolor{comment}{*\ \ \ \ \ \ \ \_sys\_exit}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00360}00360\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00361}00361\ \textcolor{comment}{*\ \ Function\ description:}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00362}00362\ \textcolor{comment}{*\ \ \ \ This\ function\ is\ called\ when\ the\ application\ returns\ from\ main}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00363}00363\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00364}00364\ \textcolor{comment}{*\ \ Parameters:}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00365}00365\ \textcolor{comment}{*\ \ \ \ ReturnCode\ \ \ \ -\/\ Return\ code\ from\ the\ main\ function}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00366}00366\ \textcolor{comment}{*\ \ }}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00367}00367\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00368}00368\ \textcolor{comment}{*/}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00369}00369\ \textcolor{keywordtype}{void}\ \_sys\_exit(\textcolor{keywordtype}{int}\ ReturnCode)\ \{}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00370}00370\ \ \ (void)ReturnCode;}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00371}00371\ \ \ \textcolor{keywordflow}{while}\ (1);\ \ \textcolor{comment}{//\ Not\ implemented}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00372}00372\ \}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00373}00373\ }
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00374}00374\ \textcolor{preprocessor}{\#if\ \_\_ARMCC\_VERSION\ >=\ 5000000}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00375}00375\ \textcolor{comment}{/*********************************************************************}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00376}00376\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00377}00377\ \textcolor{comment}{*\ \ \ \ \ \ \ stdout\_putchar}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00378}00378\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00379}00379\ \textcolor{comment}{*\ \ Function\ description:}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00380}00380\ \textcolor{comment}{*\ \ \ \ Put\ a\ character\ to\ the\ stdout}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00381}00381\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00382}00382\ \textcolor{comment}{*\ \ Parameters:}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00383}00383\ \textcolor{comment}{*\ \ \ \ ch\ \ \ \ -\/\ Character\ to\ output}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00384}00384\ \textcolor{comment}{*\ \ }}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00385}00385\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00386}00386\ \textcolor{comment}{*/}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00387}00387\ \textcolor{keywordtype}{int}\ stdout\_putchar(\textcolor{keywordtype}{int}\ ch)\ \{}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00388}00388\ \ \ (void)ch;}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00389}00389\ \ \ \textcolor{keywordflow}{return}\ ch;\ \ \textcolor{comment}{//\ Not\ implemented}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00390}00390\ \}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00391}00391\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00392}00392\ }
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00393}00393\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source_l00394}00394\ \textcolor{comment}{/***************************\ End\ of\ file\ ****************************/}}
\end{DoxyCode}

View File

@@ -0,0 +1,514 @@
\doxysection{SEGGER\+\_\+\+RTT\+\_\+printf.\+c}
\hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source}{}\label{_s_e_g_g_e_r___r_t_t__printf_8c_source}\index{E:/.WORK/STM32/STM\_Libs/STM32\_ExtendedLibs/RTT/SEGGER\_RTT\_printf.c@{E:/.WORK/STM32/STM\_Libs/STM32\_ExtendedLibs/RTT/SEGGER\_RTT\_printf.c}}
\begin{DoxyCode}{0}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00001}00001\ \textcolor{comment}{/*********************************************************************}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00002}00002\ \textcolor{comment}{*\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ SEGGER\ Microcontroller\ GmbH\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00003}00003\ \textcolor{comment}{*\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ The\ Embedded\ Experts\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00004}00004\ \textcolor{comment}{**********************************************************************}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00005}00005\ \textcolor{comment}{*\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00006}00006\ \textcolor{comment}{*\ \ \ \ \ \ \ \ \ \ \ \ (c)\ 1995\ -\/\ 2021\ SEGGER\ Microcontroller\ GmbH\ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00007}00007\ \textcolor{comment}{*\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00008}00008\ \textcolor{comment}{*\ \ \ \ \ \ \ www.segger.com\ \ \ \ \ Support:\ support@segger.com\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00009}00009\ \textcolor{comment}{*\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00010}00010\ \textcolor{comment}{**********************************************************************}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00011}00011\ \textcolor{comment}{*\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00012}00012\ \textcolor{comment}{*\ \ \ \ \ \ \ SEGGER\ RTT\ *\ Real\ Time\ Transfer\ for\ embedded\ targets\ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00013}00013\ \textcolor{comment}{*\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00014}00014\ \textcolor{comment}{**********************************************************************}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00015}00015\ \textcolor{comment}{*\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00016}00016\ \textcolor{comment}{*\ All\ rights\ reserved.\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00017}00017\ \textcolor{comment}{*\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00018}00018\ \textcolor{comment}{*\ SEGGER\ strongly\ recommends\ to\ not\ make\ any\ changes\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00019}00019\ \textcolor{comment}{*\ to\ or\ modify\ the\ source\ code\ of\ this\ software\ in\ order\ to\ stay\ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00020}00020\ \textcolor{comment}{*\ compatible\ with\ the\ RTT\ protocol\ and\ J-\/Link.\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00021}00021\ \textcolor{comment}{*\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00022}00022\ \textcolor{comment}{*\ Redistribution\ and\ use\ in\ source\ and\ binary\ forms,\ with\ or\ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00023}00023\ \textcolor{comment}{*\ without\ modification,\ are\ permitted\ provided\ that\ the\ following\ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00024}00024\ \textcolor{comment}{*\ condition\ is\ met:\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00025}00025\ \textcolor{comment}{*\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00026}00026\ \textcolor{comment}{*\ o\ Redistributions\ of\ source\ code\ must\ retain\ the\ above\ copyright\ \ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00027}00027\ \textcolor{comment}{*\ \ \ notice,\ this\ condition\ and\ the\ following\ disclaimer.\ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00028}00028\ \textcolor{comment}{*\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00029}00029\ \textcolor{comment}{*\ THIS\ SOFTWARE\ IS\ PROVIDED\ BY\ THE\ COPYRIGHT\ HOLDERS\ AND\ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00030}00030\ \textcolor{comment}{*\ CONTRIBUTORS\ "{}AS\ IS"{}\ AND\ ANY\ EXPRESS\ OR\ IMPLIED\ WARRANTIES,\ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00031}00031\ \textcolor{comment}{*\ INCLUDING,\ BUT\ NOT\ LIMITED\ TO,\ THE\ IMPLIED\ WARRANTIES\ OF\ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00032}00032\ \textcolor{comment}{*\ MERCHANTABILITY\ AND\ FITNESS\ FOR\ A\ PARTICULAR\ PURPOSE\ ARE\ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00033}00033\ \textcolor{comment}{*\ DISCLAIMED.\ IN\ NO\ EVENT\ SHALL\ SEGGER\ Microcontroller\ BE\ LIABLE\ FOR\ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00034}00034\ \textcolor{comment}{*\ ANY\ DIRECT,\ INDIRECT,\ INCIDENTAL,\ SPECIAL,\ EXEMPLARY,\ OR\ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00035}00035\ \textcolor{comment}{*\ CONSEQUENTIAL\ DAMAGES\ (INCLUDING,\ BUT\ NOT\ LIMITED\ TO,\ PROCUREMENT\ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00036}00036\ \textcolor{comment}{*\ OF\ SUBSTITUTE\ GOODS\ OR\ SERVICES;\ LOSS\ OF\ USE,\ DATA,\ OR\ PROFITS;\ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00037}00037\ \textcolor{comment}{*\ OR\ BUSINESS\ INTERRUPTION)\ HOWEVER\ CAUSED\ AND\ ON\ ANY\ THEORY\ OF\ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00038}00038\ \textcolor{comment}{*\ LIABILITY,\ WHETHER\ IN\ CONTRACT,\ STRICT\ LIABILITY,\ OR\ TORT\ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00039}00039\ \textcolor{comment}{*\ (INCLUDING\ NEGLIGENCE\ OR\ OTHERWISE)\ ARISING\ IN\ ANY\ WAY\ OUT\ OF\ THE\ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00040}00040\ \textcolor{comment}{*\ USE\ OF\ THIS\ SOFTWARE,\ EVEN\ IF\ ADVISED\ OF\ THE\ POSSIBILITY\ OF\ SUCH\ \ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00041}00041\ \textcolor{comment}{*\ DAMAGE.\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00042}00042\ \textcolor{comment}{*\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00043}00043\ \textcolor{comment}{**********************************************************************}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00044}00044\ \textcolor{comment}{*\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00045}00045\ \textcolor{comment}{*\ \ \ \ \ \ \ RTT\ version:\ 8.10g\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00046}00046\ \textcolor{comment}{*\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00047}00047\ \textcolor{comment}{**********************************************************************}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00048}00048\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00049}00049\ \textcolor{comment}{-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/END-\/OF-\/HEADER-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00050}00050\ \textcolor{comment}{File\ \ \ \ :\ SEGGER\_RTT\_printf.c}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00051}00051\ \textcolor{comment}{Purpose\ :\ Replacement\ for\ printf\ to\ write\ formatted\ data\ via\ RTT}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00052}00052\ \textcolor{comment}{Revision:\ \$Rev:\ 17697\ \$}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00053}00053\ \textcolor{comment}{-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00054}00054\ \textcolor{comment}{*/}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00055}00055\ \textcolor{preprocessor}{\#include\ "{}SEGGER\_RTT.h"{}}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00056}00056\ \textcolor{preprocessor}{\#include\ "{}SEGGER\_RTT\_Conf.h"{}}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00057}00057\ }
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00058}00058\ \textcolor{comment}{/*********************************************************************}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00059}00059\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00060}00060\ \textcolor{comment}{*\ \ \ \ \ \ \ Defines,\ configurable}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00061}00061\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00062}00062\ \textcolor{comment}{**********************************************************************}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00063}00063\ \textcolor{comment}{*/}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00064}00064\ }
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00065}00065\ \textcolor{preprocessor}{\#ifndef\ SEGGER\_RTT\_PRINTF\_BUFFER\_SIZE}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00066}00066\ \textcolor{preprocessor}{\ \ \#define\ SEGGER\_RTT\_PRINTF\_BUFFER\_SIZE\ (64)}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00067}00067\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00068}00068\ }
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00069}00069\ \textcolor{preprocessor}{\#include\ <stdlib.h>}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00070}00070\ \textcolor{preprocessor}{\#include\ <stdarg.h>}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00071}00071\ }
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00072}00072\ }
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00073}00073\ \textcolor{preprocessor}{\#define\ FORMAT\_FLAG\_LEFT\_JUSTIFY\ \ \ (1u\ <<\ 0)}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00074}00074\ \textcolor{preprocessor}{\#define\ FORMAT\_FLAG\_PAD\_ZERO\ \ \ \ \ \ \ (1u\ <<\ 1)}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00075}00075\ \textcolor{preprocessor}{\#define\ FORMAT\_FLAG\_PRINT\_SIGN\ \ \ \ \ (1u\ <<\ 2)}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00076}00076\ \textcolor{preprocessor}{\#define\ FORMAT\_FLAG\_ALTERNATE\ \ \ \ \ \ (1u\ <<\ 3)}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00077}00077\ }
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00078}00078\ \textcolor{comment}{/*********************************************************************}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00079}00079\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00080}00080\ \textcolor{comment}{*\ \ \ \ \ \ \ Types}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00081}00081\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00082}00082\ \textcolor{comment}{**********************************************************************}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00083}00083\ \textcolor{comment}{*/}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00084}00084\ }
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00085}\mbox{\hyperlink{struct_s_e_g_g_e_r___r_t_t___p_r_i_n_t_f___d_e_s_c}{00085}}\ \textcolor{keyword}{typedef}\ \textcolor{keyword}{struct\ }\{}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00086}00086\ \ \ \textcolor{keywordtype}{char}*\ \ \ \ \ pBuffer;}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00087}00087\ \ \ \textcolor{keywordtype}{unsigned}\ \ BufferSize;}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00088}00088\ \ \ \textcolor{keywordtype}{unsigned}\ \ Cnt;}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00089}00089\ }
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00090}00090\ \ \ \textcolor{keywordtype}{int}\ \ \ ReturnValue;}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00091}00091\ }
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00092}00092\ \ \ \textcolor{keywordtype}{unsigned}\ RTTBufferIndex;}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00093}00093\ \}\ \mbox{\hyperlink{struct_s_e_g_g_e_r___r_t_t___p_r_i_n_t_f___d_e_s_c}{SEGGER\_RTT\_PRINTF\_DESC}};}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00094}00094\ }
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00095}00095\ \textcolor{comment}{/*********************************************************************}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00096}00096\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00097}00097\ \textcolor{comment}{*\ \ \ \ \ \ \ Function\ prototypes}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00098}00098\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00099}00099\ \textcolor{comment}{**********************************************************************}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00100}00100\ \textcolor{comment}{*/}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00101}00101\ }
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00102}00102\ \textcolor{comment}{/*********************************************************************}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00103}00103\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00104}00104\ \textcolor{comment}{*\ \ \ \ \ \ \ Static\ code}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00105}00105\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00106}00106\ \textcolor{comment}{**********************************************************************}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00107}00107\ \textcolor{comment}{*/}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00108}00108\ \textcolor{comment}{/*********************************************************************}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00109}00109\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00110}00110\ \textcolor{comment}{*\ \ \ \ \ \ \ \_StoreChar}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00111}00111\ \textcolor{comment}{*/}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00112}00112\ \textcolor{keyword}{static}\ \textcolor{keywordtype}{void}\ \_StoreChar(\mbox{\hyperlink{struct_s_e_g_g_e_r___r_t_t___p_r_i_n_t_f___d_e_s_c}{SEGGER\_RTT\_PRINTF\_DESC}}\ *\ p,\ \textcolor{keywordtype}{char}\ c)\ \{}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00113}00113\ \ \ \textcolor{keywordtype}{unsigned}\ Cnt;}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00114}00114\ }
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00115}00115\ \ \ Cnt\ =\ p-\/>Cnt;}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00116}00116\ \ \ \textcolor{keywordflow}{if}\ ((Cnt\ +\ 1u)\ <=\ p-\/>BufferSize)\ \{}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00117}00117\ \ \ \ \ *(p-\/>pBuffer\ +\ Cnt)\ =\ c;}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00118}00118\ \ \ \ \ p-\/>Cnt\ =\ Cnt\ +\ 1u;}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00119}00119\ \ \ \ \ p-\/>ReturnValue++;}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00120}00120\ \ \ \}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00121}00121\ \ \ \textcolor{comment}{//}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00122}00122\ \ \ \textcolor{comment}{//\ Write\ part\ of\ string,\ when\ the\ buffer\ is\ full}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00123}00123\ \ \ \textcolor{comment}{//}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00124}00124\ \ \ \textcolor{keywordflow}{if}\ (p-\/>Cnt\ ==\ p-\/>BufferSize)\ \{}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00125}00125\ \ \ \ \ \textcolor{keywordflow}{if}\ (SEGGER\_RTT\_Write(p-\/>RTTBufferIndex,\ p-\/>pBuffer,\ p-\/>Cnt)\ !=\ p-\/>Cnt)\ \{}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00126}00126\ \ \ \ \ \ \ p-\/>ReturnValue\ =\ -\/1;}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00127}00127\ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00128}00128\ \ \ \ \ \ \ p-\/>Cnt\ =\ 0u;}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00129}00129\ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00130}00130\ \ \ \}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00131}00131\ \}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00132}00132\ }
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00133}00133\ \textcolor{comment}{/*********************************************************************}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00134}00134\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00135}00135\ \textcolor{comment}{*\ \ \ \ \ \ \ \_PrintUnsigned}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00136}00136\ \textcolor{comment}{*/}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00137}00137\ \textcolor{keyword}{static}\ \textcolor{keywordtype}{void}\ \_PrintUnsigned(\mbox{\hyperlink{struct_s_e_g_g_e_r___r_t_t___p_r_i_n_t_f___d_e_s_c}{SEGGER\_RTT\_PRINTF\_DESC}}\ *\ pBufferDesc,\ \textcolor{keywordtype}{unsigned}\ v,\ \textcolor{keywordtype}{unsigned}\ Base,\ \textcolor{keywordtype}{unsigned}\ NumDigits,\ \textcolor{keywordtype}{unsigned}\ FieldWidth,\ \textcolor{keywordtype}{unsigned}\ FormatFlags)\ \{}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00138}00138\ \ \ \textcolor{keyword}{static}\ \textcolor{keyword}{const}\ \textcolor{keywordtype}{char}\ \_aV2C[16]\ =\ \{\textcolor{charliteral}{'0'},\ \textcolor{charliteral}{'1'},\ \textcolor{charliteral}{'2'},\ \textcolor{charliteral}{'3'},\ \textcolor{charliteral}{'4'},\ \textcolor{charliteral}{'5'},\ \textcolor{charliteral}{'6'},\ \textcolor{charliteral}{'7'},\ \textcolor{charliteral}{'8'},\ \textcolor{charliteral}{'9'},\ \textcolor{charliteral}{'A'},\ \textcolor{charliteral}{'B'},\ \textcolor{charliteral}{'C'},\ \textcolor{charliteral}{'D'},\ \textcolor{charliteral}{'E'},\ \textcolor{charliteral}{'F'}\ \};}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00139}00139\ \ \ \textcolor{keywordtype}{unsigned}\ Div;}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00140}00140\ \ \ \textcolor{keywordtype}{unsigned}\ Digit;}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00141}00141\ \ \ \textcolor{keywordtype}{unsigned}\ Number;}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00142}00142\ \ \ \textcolor{keywordtype}{unsigned}\ Width;}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00143}00143\ \ \ \textcolor{keywordtype}{char}\ c;}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00144}00144\ }
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00145}00145\ \ \ Number\ =\ v;}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00146}00146\ \ \ Digit\ =\ 1u;}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00147}00147\ \ \ \textcolor{comment}{//}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00148}00148\ \ \ \textcolor{comment}{//\ Get\ actual\ field\ width}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00149}00149\ \ \ \textcolor{comment}{//}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00150}00150\ \ \ Width\ =\ 1u;}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00151}00151\ \ \ \textcolor{keywordflow}{while}\ (Number\ >=\ Base)\ \{}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00152}00152\ \ \ \ \ Number\ =\ (Number\ /\ Base);}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00153}00153\ \ \ \ \ Width++;}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00154}00154\ \ \ \}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00155}00155\ \ \ \textcolor{keywordflow}{if}\ (NumDigits\ >\ Width)\ \{}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00156}00156\ \ \ \ \ Width\ =\ NumDigits;}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00157}00157\ \ \ \}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00158}00158\ \ \ \textcolor{comment}{//}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00159}00159\ \ \ \textcolor{comment}{//\ Print\ leading\ chars\ if\ necessary}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00160}00160\ \ \ \textcolor{comment}{//}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00161}00161\ \ \ \textcolor{keywordflow}{if}\ ((FormatFlags\ \&\ FORMAT\_FLAG\_LEFT\_JUSTIFY)\ ==\ 0u)\ \{}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00162}00162\ \ \ \ \ \textcolor{keywordflow}{if}\ (FieldWidth\ !=\ 0u)\ \{}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00163}00163\ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (((FormatFlags\ \&\ FORMAT\_FLAG\_PAD\_ZERO)\ ==\ FORMAT\_FLAG\_PAD\_ZERO)\ \&\&\ (NumDigits\ ==\ 0u))\ \{}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00164}00164\ \ \ \ \ \ \ \ \ c\ =\ \textcolor{charliteral}{'0'};}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00165}00165\ \ \ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00166}00166\ \ \ \ \ \ \ \ \ c\ =\ \textcolor{charliteral}{'\ '};}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00167}00167\ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00168}00168\ \ \ \ \ \ \ \textcolor{keywordflow}{while}\ ((FieldWidth\ !=\ 0u)\ \&\&\ (Width\ <\ FieldWidth))\ \{}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00169}00169\ \ \ \ \ \ \ \ \ FieldWidth-\/-\/;}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00170}00170\ \ \ \ \ \ \ \ \ \_StoreChar(pBufferDesc,\ c);}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00171}00171\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (pBufferDesc-\/>ReturnValue\ <\ 0)\ \{}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00172}00172\ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00173}00173\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00174}00174\ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00175}00175\ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00176}00176\ \ \ \}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00177}00177\ \ \ \textcolor{keywordflow}{if}\ (pBufferDesc-\/>ReturnValue\ >=\ 0)\ \{}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00178}00178\ \ \ \ \ \textcolor{comment}{//}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00179}00179\ \ \ \ \ \textcolor{comment}{//\ Compute\ Digit.}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00180}00180\ \ \ \ \ \textcolor{comment}{//\ Loop\ until\ Digit\ has\ the\ value\ of\ the\ highest\ digit\ required.}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00181}00181\ \ \ \ \ \textcolor{comment}{//\ Example:\ If\ the\ output\ is\ 345\ (Base\ 10),\ loop\ 2\ times\ until\ Digit\ is\ 100.}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00182}00182\ \ \ \ \ \textcolor{comment}{//}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00183}00183\ \ \ \ \ \textcolor{keywordflow}{while}\ (1)\ \{}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00184}00184\ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (NumDigits\ >\ 1u)\ \{\ \ \ \ \ \ \ \textcolor{comment}{//\ User\ specified\ a\ min\ number\ of\ digits\ to\ print?\ =>\ Make\ sure\ we\ loop\ at\ least\ that\ often,\ before\ checking\ anything\ else\ (>\ 1\ check\ avoids\ problems\ with\ NumDigits\ being\ signed\ /\ unsigned)}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00185}00185\ \ \ \ \ \ \ \ \ NumDigits-\/-\/;}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00186}00186\ \ \ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00187}00187\ \ \ \ \ \ \ \ \ Div\ =\ v\ /\ Digit;}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00188}00188\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (Div\ <\ Base)\ \{\ \ \ \ \ \ \ \ \textcolor{comment}{//\ Is\ our\ divider\ big\ enough\ to\ extract\ the\ highest\ digit\ from\ value?\ =>\ Done}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00189}00189\ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00190}00190\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00191}00191\ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00192}00192\ \ \ \ \ \ \ Digit\ *=\ Base;}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00193}00193\ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00194}00194\ \ \ \ \ \textcolor{comment}{//}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00195}00195\ \ \ \ \ \textcolor{comment}{//\ Output\ digits}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00196}00196\ \ \ \ \ \textcolor{comment}{//}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00197}00197\ \ \ \ \ \textcolor{keywordflow}{do}\ \{}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00198}00198\ \ \ \ \ \ \ Div\ =\ v\ /\ Digit;}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00199}00199\ \ \ \ \ \ \ v\ -\/=\ Div\ *\ Digit;}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00200}00200\ \ \ \ \ \ \ \_StoreChar(pBufferDesc,\ \_aV2C[Div]);}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00201}00201\ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (pBufferDesc-\/>ReturnValue\ <\ 0)\ \{}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00202}00202\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00203}00203\ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00204}00204\ \ \ \ \ \ \ Digit\ /=\ Base;}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00205}00205\ \ \ \ \ \}\ \textcolor{keywordflow}{while}\ (Digit);}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00206}00206\ \ \ \ \ \textcolor{comment}{//}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00207}00207\ \ \ \ \ \textcolor{comment}{//\ Print\ trailing\ spaces\ if\ necessary}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00208}00208\ \ \ \ \ \textcolor{comment}{//}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00209}00209\ \ \ \ \ \textcolor{keywordflow}{if}\ ((FormatFlags\ \&\ FORMAT\_FLAG\_LEFT\_JUSTIFY)\ ==\ FORMAT\_FLAG\_LEFT\_JUSTIFY)\ \{}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00210}00210\ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (FieldWidth\ !=\ 0u)\ \{}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00211}00211\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{while}\ ((FieldWidth\ !=\ 0u)\ \&\&\ (Width\ <\ FieldWidth))\ \{}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00212}00212\ \ \ \ \ \ \ \ \ \ \ FieldWidth-\/-\/;}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00213}00213\ \ \ \ \ \ \ \ \ \ \ \_StoreChar(pBufferDesc,\ \textcolor{charliteral}{'\ '});}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00214}00214\ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (pBufferDesc-\/>ReturnValue\ <\ 0)\ \{}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00215}00215\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00216}00216\ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00217}00217\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00218}00218\ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00219}00219\ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00220}00220\ \ \ \}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00221}00221\ \}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00222}00222\ }
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00223}00223\ \textcolor{comment}{/*********************************************************************}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00224}00224\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00225}00225\ \textcolor{comment}{*\ \ \ \ \ \ \ \_PrintInt}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00226}00226\ \textcolor{comment}{*/}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00227}00227\ \textcolor{keyword}{static}\ \textcolor{keywordtype}{void}\ \_PrintInt(\mbox{\hyperlink{struct_s_e_g_g_e_r___r_t_t___p_r_i_n_t_f___d_e_s_c}{SEGGER\_RTT\_PRINTF\_DESC}}\ *\ pBufferDesc,\ \textcolor{keywordtype}{int}\ v,\ \textcolor{keywordtype}{unsigned}\ Base,\ \textcolor{keywordtype}{unsigned}\ NumDigits,\ \textcolor{keywordtype}{unsigned}\ FieldWidth,\ \textcolor{keywordtype}{unsigned}\ FormatFlags)\ \{}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00228}00228\ \ \ \textcolor{keywordtype}{unsigned}\ Width;}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00229}00229\ \ \ \textcolor{keywordtype}{int}\ Number;}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00230}00230\ }
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00231}00231\ \ \ Number\ =\ (v\ <\ 0)\ ?\ -\/v\ :\ v;}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00232}00232\ }
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00233}00233\ \ \ \textcolor{comment}{//}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00234}00234\ \ \ \textcolor{comment}{//\ Get\ actual\ field\ width}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00235}00235\ \ \ \textcolor{comment}{//}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00236}00236\ \ \ Width\ =\ 1u;}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00237}00237\ \ \ \textcolor{keywordflow}{while}\ (Number\ >=\ (\textcolor{keywordtype}{int})Base)\ \{}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00238}00238\ \ \ \ \ Number\ =\ (Number\ /\ (int)Base);}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00239}00239\ \ \ \ \ Width++;}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00240}00240\ \ \ \}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00241}00241\ \ \ \textcolor{keywordflow}{if}\ (NumDigits\ >\ Width)\ \{}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00242}00242\ \ \ \ \ Width\ =\ NumDigits;}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00243}00243\ \ \ \}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00244}00244\ \ \ \textcolor{keywordflow}{if}\ ((FieldWidth\ >\ 0u)\ \&\&\ ((v\ <\ 0)\ ||\ ((FormatFlags\ \&\ FORMAT\_FLAG\_PRINT\_SIGN)\ ==\ FORMAT\_FLAG\_PRINT\_SIGN)))\ \{}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00245}00245\ \ \ \ \ FieldWidth-\/-\/;}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00246}00246\ \ \ \}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00247}00247\ }
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00248}00248\ \ \ \textcolor{comment}{//}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00249}00249\ \ \ \textcolor{comment}{//\ Print\ leading\ spaces\ if\ necessary}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00250}00250\ \ \ \textcolor{comment}{//}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00251}00251\ \ \ \textcolor{keywordflow}{if}\ ((((FormatFlags\ \&\ FORMAT\_FLAG\_PAD\_ZERO)\ ==\ 0u)\ ||\ (NumDigits\ !=\ 0u))\ \&\&\ ((FormatFlags\ \&\ FORMAT\_FLAG\_LEFT\_JUSTIFY)\ ==\ 0u))\ \{}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00252}00252\ \ \ \ \ \textcolor{keywordflow}{if}\ (FieldWidth\ !=\ 0u)\ \{}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00253}00253\ \ \ \ \ \ \ \textcolor{keywordflow}{while}\ ((FieldWidth\ !=\ 0u)\ \&\&\ (Width\ <\ FieldWidth))\ \{}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00254}00254\ \ \ \ \ \ \ \ \ FieldWidth-\/-\/;}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00255}00255\ \ \ \ \ \ \ \ \ \_StoreChar(pBufferDesc,\ \textcolor{charliteral}{'\ '});}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00256}00256\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (pBufferDesc-\/>ReturnValue\ <\ 0)\ \{}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00257}00257\ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00258}00258\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00259}00259\ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00260}00260\ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00261}00261\ \ \ \}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00262}00262\ \ \ \textcolor{comment}{//}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00263}00263\ \ \ \textcolor{comment}{//\ Print\ sign\ if\ necessary}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00264}00264\ \ \ \textcolor{comment}{//}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00265}00265\ \ \ \textcolor{keywordflow}{if}\ (pBufferDesc-\/>ReturnValue\ >=\ 0)\ \{}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00266}00266\ \ \ \ \ \textcolor{keywordflow}{if}\ (v\ <\ 0)\ \{}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00267}00267\ \ \ \ \ \ \ v\ =\ -\/v;}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00268}00268\ \ \ \ \ \ \ \_StoreChar(pBufferDesc,\ \textcolor{charliteral}{'-\/'});}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00269}00269\ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}\ ((FormatFlags\ \&\ FORMAT\_FLAG\_PRINT\_SIGN)\ ==\ FORMAT\_FLAG\_PRINT\_SIGN)\ \{}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00270}00270\ \ \ \ \ \ \ \_StoreChar(pBufferDesc,\ \textcolor{charliteral}{'+'});}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00271}00271\ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00272}00272\ }
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00273}00273\ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00274}00274\ \ \ \ \ \textcolor{keywordflow}{if}\ (pBufferDesc-\/>ReturnValue\ >=\ 0)\ \{}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00275}00275\ \ \ \ \ \ \ \textcolor{comment}{//}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00276}00276\ \ \ \ \ \ \ \textcolor{comment}{//\ Print\ leading\ zeros\ if\ necessary}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00277}00277\ \ \ \ \ \ \ \textcolor{comment}{//}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00278}00278\ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (((FormatFlags\ \&\ FORMAT\_FLAG\_PAD\_ZERO)\ ==\ FORMAT\_FLAG\_PAD\_ZERO)\ \&\&\ ((FormatFlags\ \&\ FORMAT\_FLAG\_LEFT\_JUSTIFY)\ ==\ 0u)\ \&\&\ (NumDigits\ ==\ 0u))\ \{}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00279}00279\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (FieldWidth\ !=\ 0u)\ \{}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00280}00280\ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{while}\ ((FieldWidth\ !=\ 0u)\ \&\&\ (Width\ <\ FieldWidth))\ \{}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00281}00281\ \ \ \ \ \ \ \ \ \ \ \ \ FieldWidth-\/-\/;}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00282}00282\ \ \ \ \ \ \ \ \ \ \ \ \ \_StoreChar(pBufferDesc,\ \textcolor{charliteral}{'0'});}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00283}00283\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (pBufferDesc-\/>ReturnValue\ <\ 0)\ \{}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00284}00284\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00285}00285\ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00286}00286\ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00287}00287\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00288}00288\ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00289}00289\ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (pBufferDesc-\/>ReturnValue\ >=\ 0)\ \{}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00290}00290\ \ \ \ \ \ \ \ \ \textcolor{comment}{//}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00291}00291\ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ Print\ number\ without\ sign}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00292}00292\ \ \ \ \ \ \ \ \ \textcolor{comment}{//}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00293}00293\ \ \ \ \ \ \ \ \ \_PrintUnsigned(pBufferDesc,\ (\textcolor{keywordtype}{unsigned})v,\ Base,\ NumDigits,\ FieldWidth,\ FormatFlags);}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00294}00294\ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00295}00295\ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00296}00296\ \ \ \}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00297}00297\ \}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00298}00298\ }
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00299}00299\ \textcolor{comment}{/*********************************************************************}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00300}00300\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00301}00301\ \textcolor{comment}{*\ \ \ \ \ \ \ Public\ code}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00302}00302\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00303}00303\ \textcolor{comment}{**********************************************************************}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00304}00304\ \textcolor{comment}{*/}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00305}00305\ \textcolor{comment}{/*********************************************************************}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00306}00306\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00307}00307\ \textcolor{comment}{*\ \ \ \ \ \ \ SEGGER\_RTT\_vprintf}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00308}00308\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00309}00309\ \textcolor{comment}{*\ \ Function\ description}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00310}00310\ \textcolor{comment}{*\ \ \ \ Stores\ a\ formatted\ string\ in\ SEGGER\ RTT\ control\ block.}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00311}00311\ \textcolor{comment}{*\ \ \ \ This\ data\ is\ read\ by\ the\ host.}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00312}00312\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00313}00313\ \textcolor{comment}{*\ \ Parameters}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00314}00314\ \textcolor{comment}{*\ \ \ \ BufferIndex\ \ Index\ of\ "{}Up"{}-\/buffer\ to\ be\ used.\ (e.g.\ 0\ for\ "{}Terminal"{})}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00315}00315\ \textcolor{comment}{*\ \ \ \ sFormat\ \ \ \ \ \ Pointer\ to\ format\ string}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00316}00316\ \textcolor{comment}{*\ \ \ \ pParamList\ \ \ Pointer\ to\ the\ list\ of\ arguments\ for\ the\ format\ string}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00317}00317\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00318}00318\ \textcolor{comment}{*\ \ Return\ values}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00319}00319\ \textcolor{comment}{*\ \ \ \ >=\ 0:\ \ Number\ of\ bytes\ which\ have\ been\ stored\ in\ the\ "{}Up"{}-\/buffer.}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00320}00320\ \textcolor{comment}{*\ \ \ \ \ <\ 0:\ \ Error}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00321}00321\ \textcolor{comment}{*/}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00322}00322\ \textcolor{keywordtype}{int}\ SEGGER\_RTT\_vprintf(\textcolor{keywordtype}{unsigned}\ BufferIndex,\ \textcolor{keyword}{const}\ \textcolor{keywordtype}{char}\ *\ sFormat,\ va\_list\ *\ pParamList)\ \{}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00323}00323\ \ \ \textcolor{keywordtype}{char}\ c;}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00324}00324\ \ \ \mbox{\hyperlink{struct_s_e_g_g_e_r___r_t_t___p_r_i_n_t_f___d_e_s_c}{SEGGER\_RTT\_PRINTF\_DESC}}\ BufferDesc;}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00325}00325\ \ \ \textcolor{keywordtype}{int}\ v;}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00326}00326\ \ \ \textcolor{keywordtype}{unsigned}\ NumDigits;}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00327}00327\ \ \ \textcolor{keywordtype}{unsigned}\ FormatFlags;}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00328}00328\ \ \ \textcolor{keywordtype}{unsigned}\ FieldWidth;}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00329}00329\ \ \ \textcolor{keywordtype}{char}\ acBuffer[SEGGER\_RTT\_PRINTF\_BUFFER\_SIZE];}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00330}00330\ }
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00331}00331\ \ \ BufferDesc.pBuffer\ \ \ \ \ \ \ \ =\ acBuffer;}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00332}00332\ \ \ BufferDesc.BufferSize\ \ \ \ \ =\ SEGGER\_RTT\_PRINTF\_BUFFER\_SIZE;}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00333}00333\ \ \ BufferDesc.Cnt\ \ \ \ \ \ \ \ \ \ \ \ =\ 0u;}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00334}00334\ \ \ BufferDesc.RTTBufferIndex\ =\ BufferIndex;}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00335}00335\ \ \ BufferDesc.ReturnValue\ \ \ \ =\ 0;}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00336}00336\ }
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00337}00337\ \ \ \textcolor{keywordflow}{do}\ \{}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00338}00338\ \ \ \ \ c\ =\ *sFormat;}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00339}00339\ \ \ \ \ sFormat++;}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00340}00340\ \ \ \ \ \textcolor{keywordflow}{if}\ (c\ ==\ 0u)\ \{}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00341}00341\ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00342}00342\ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00343}00343\ \ \ \ \ \textcolor{keywordflow}{if}\ (c\ ==\ \textcolor{charliteral}{'\%'})\ \{}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00344}00344\ \ \ \ \ \ \ \textcolor{comment}{//}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00345}00345\ \ \ \ \ \ \ \textcolor{comment}{//\ Filter\ out\ flags}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00346}00346\ \ \ \ \ \ \ \textcolor{comment}{//}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00347}00347\ \ \ \ \ \ \ FormatFlags\ =\ 0u;}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00348}00348\ \ \ \ \ \ \ v\ =\ 1;}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00349}00349\ \ \ \ \ \ \ \textcolor{keywordflow}{do}\ \{}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00350}00350\ \ \ \ \ \ \ \ \ c\ =\ *sFormat;}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00351}00351\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{switch}\ (c)\ \{}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00352}00352\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ \textcolor{charliteral}{'-\/'}:\ FormatFlags\ |=\ FORMAT\_FLAG\_LEFT\_JUSTIFY;\ sFormat++;\ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00353}00353\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ \textcolor{charliteral}{'0'}:\ FormatFlags\ |=\ FORMAT\_FLAG\_PAD\_ZERO;\ \ \ \ \ sFormat++;\ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00354}00354\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ \textcolor{charliteral}{'+'}:\ FormatFlags\ |=\ FORMAT\_FLAG\_PRINT\_SIGN;\ \ \ sFormat++;\ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00355}00355\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ \textcolor{charliteral}{'\#'}:\ FormatFlags\ |=\ FORMAT\_FLAG\_ALTERNATE;\ \ \ \ sFormat++;\ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00356}00356\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{default}:\ \ v\ =\ 0;\ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00357}00357\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00358}00358\ \ \ \ \ \ \ \}\ \textcolor{keywordflow}{while}\ (v);}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00359}00359\ \ \ \ \ \ \ \textcolor{comment}{//}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00360}00360\ \ \ \ \ \ \ \textcolor{comment}{//\ filter\ out\ field\ with}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00361}00361\ \ \ \ \ \ \ \textcolor{comment}{//}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00362}00362\ \ \ \ \ \ \ FieldWidth\ =\ 0u;}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00363}00363\ \ \ \ \ \ \ \textcolor{keywordflow}{do}\ \{}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00364}00364\ \ \ \ \ \ \ \ \ c\ =\ *sFormat;}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00365}00365\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ ((c\ <\ \textcolor{charliteral}{'0'})\ ||\ (c\ >\ \textcolor{charliteral}{'9'}))\ \{}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00366}00366\ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00367}00367\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00368}00368\ \ \ \ \ \ \ \ \ sFormat++;}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00369}00369\ \ \ \ \ \ \ \ \ FieldWidth\ =\ (FieldWidth\ *\ 10u)\ +\ ((\textcolor{keywordtype}{unsigned})c\ -\/\ \textcolor{charliteral}{'0'});}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00370}00370\ \ \ \ \ \ \ \}\ \textcolor{keywordflow}{while}\ (1);}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00371}00371\ }
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00372}00372\ \ \ \ \ \ \ \textcolor{comment}{//}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00373}00373\ \ \ \ \ \ \ \textcolor{comment}{//\ Filter\ out\ precision\ (number\ of\ digits\ to\ display)}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00374}00374\ \ \ \ \ \ \ \textcolor{comment}{//}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00375}00375\ \ \ \ \ \ \ NumDigits\ =\ 0u;}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00376}00376\ \ \ \ \ \ \ c\ =\ *sFormat;}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00377}00377\ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (c\ ==\ \textcolor{charliteral}{'.'})\ \{}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00378}00378\ \ \ \ \ \ \ \ \ sFormat++;}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00379}00379\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{do}\ \{}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00380}00380\ \ \ \ \ \ \ \ \ \ \ c\ =\ *sFormat;}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00381}00381\ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ ((c\ <\ \textcolor{charliteral}{'0'})\ ||\ (c\ >\ \textcolor{charliteral}{'9'}))\ \{}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00382}00382\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00383}00383\ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00384}00384\ \ \ \ \ \ \ \ \ \ \ sFormat++;}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00385}00385\ \ \ \ \ \ \ \ \ \ \ NumDigits\ =\ NumDigits\ *\ 10u\ +\ ((unsigned)c\ -\/\ \textcolor{charliteral}{'0'});}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00386}00386\ \ \ \ \ \ \ \ \ \}\ \textcolor{keywordflow}{while}\ (1);}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00387}00387\ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00388}00388\ \ \ \ \ \ \ \textcolor{comment}{//}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00389}00389\ \ \ \ \ \ \ \textcolor{comment}{//\ Filter\ out\ length\ modifier}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00390}00390\ \ \ \ \ \ \ \textcolor{comment}{//}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00391}00391\ \ \ \ \ \ \ c\ =\ *sFormat;}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00392}00392\ \ \ \ \ \ \ \textcolor{keywordflow}{do}\ \{}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00393}00393\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ ((c\ ==\ \textcolor{charliteral}{'l'})\ ||\ (c\ ==\ \textcolor{charliteral}{'h'}))\ \{}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00394}00394\ \ \ \ \ \ \ \ \ \ \ sFormat++;}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00395}00395\ \ \ \ \ \ \ \ \ \ \ c\ =\ *sFormat;}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00396}00396\ \ \ \ \ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00397}00397\ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00398}00398\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00399}00399\ \ \ \ \ \ \ \}\ \textcolor{keywordflow}{while}\ (1);}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00400}00400\ \ \ \ \ \ \ \textcolor{comment}{//}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00401}00401\ \ \ \ \ \ \ \textcolor{comment}{//\ Handle\ specifiers}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00402}00402\ \ \ \ \ \ \ \textcolor{comment}{//}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00403}00403\ \ \ \ \ \ \ \textcolor{keywordflow}{switch}\ (c)\ \{}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00404}00404\ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ \textcolor{charliteral}{'c'}:\ \{}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00405}00405\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{char}\ c0;}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00406}00406\ \ \ \ \ \ \ \ \ v\ =\ va\_arg(*pParamList,\ \textcolor{keywordtype}{int});}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00407}00407\ \ \ \ \ \ \ \ \ c0\ =\ (char)v;}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00408}00408\ \ \ \ \ \ \ \ \ \_StoreChar(\&BufferDesc,\ c0);}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00409}00409\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00410}00410\ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00411}00411\ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ \textcolor{charliteral}{'d'}:}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00412}00412\ \ \ \ \ \ \ \ \ v\ =\ va\_arg(*pParamList,\ \textcolor{keywordtype}{int});}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00413}00413\ \ \ \ \ \ \ \ \ \_PrintInt(\&BufferDesc,\ v,\ 10u,\ NumDigits,\ FieldWidth,\ FormatFlags);}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00414}00414\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00415}00415\ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ \textcolor{charliteral}{'u'}:}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00416}00416\ \ \ \ \ \ \ \ \ v\ =\ va\_arg(*pParamList,\ \textcolor{keywordtype}{int});}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00417}00417\ \ \ \ \ \ \ \ \ \_PrintUnsigned(\&BufferDesc,\ (\textcolor{keywordtype}{unsigned})v,\ 10u,\ NumDigits,\ FieldWidth,\ FormatFlags);}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00418}00418\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00419}00419\ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ \textcolor{charliteral}{'x'}:}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00420}00420\ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ \textcolor{charliteral}{'X'}:}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00421}00421\ \ \ \ \ \ \ \ \ v\ =\ va\_arg(*pParamList,\ \textcolor{keywordtype}{int});}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00422}00422\ \ \ \ \ \ \ \ \ \_PrintUnsigned(\&BufferDesc,\ (\textcolor{keywordtype}{unsigned})v,\ 16u,\ NumDigits,\ FieldWidth,\ FormatFlags);}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00423}00423\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00424}00424\ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ \textcolor{charliteral}{'s'}:}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00425}00425\ \ \ \ \ \ \ \ \ \{}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00426}00426\ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ \textcolor{keywordtype}{char}\ *\ s\ =\ va\_arg(*pParamList,\ \textcolor{keyword}{const}\ \textcolor{keywordtype}{char}\ *);}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00427}00427\ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (s\ ==\ NULL)\ \{}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00428}00428\ \ \ \ \ \ \ \ \ \ \ \ \ s\ =\ \textcolor{stringliteral}{"{}(NULL)"{}};\ \ \textcolor{comment}{//\ Print\ (NULL)\ instead\ of\ crashing\ or\ breaking,\ as\ it\ is\ more\ informative\ to\ the\ user.}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00429}00429\ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00430}00430\ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{do}\ \{}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00431}00431\ \ \ \ \ \ \ \ \ \ \ \ \ c\ =\ *s;}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00432}00432\ \ \ \ \ \ \ \ \ \ \ \ \ s++;}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00433}00433\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (c\ ==\ \textcolor{charliteral}{'\(\backslash\)0'})\ \{}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00434}00434\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00435}00435\ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00436}00436\ \ \ \ \ \ \ \ \ \ \ \ \_StoreChar(\&BufferDesc,\ c);}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00437}00437\ \ \ \ \ \ \ \ \ \ \ \}\ \textcolor{keywordflow}{while}\ (BufferDesc.ReturnValue\ >=\ 0);}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00438}00438\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00439}00439\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00440}00440\ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ \textcolor{charliteral}{'p'}:}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00441}00441\ \ \ \ \ \ \ \ \ v\ =\ va\_arg(*pParamList,\ \textcolor{keywordtype}{int});}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00442}00442\ \ \ \ \ \ \ \ \ \_PrintUnsigned(\&BufferDesc,\ (\textcolor{keywordtype}{unsigned})v,\ 16u,\ 8u,\ 8u,\ 0u);}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00443}00443\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00444}00444\ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ \textcolor{charliteral}{'\%'}:}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00445}00445\ \ \ \ \ \ \ \ \ \_StoreChar(\&BufferDesc,\ \textcolor{charliteral}{'\%'});}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00446}00446\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00447}00447\ \ \ \ \ \ \ \textcolor{keywordflow}{default}:}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00448}00448\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00449}00449\ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00450}00450\ \ \ \ \ \ \ sFormat++;}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00451}00451\ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00452}00452\ \ \ \ \ \ \ \_StoreChar(\&BufferDesc,\ c);}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00453}00453\ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00454}00454\ \ \ \}\ \textcolor{keywordflow}{while}\ (BufferDesc.ReturnValue\ >=\ 0);}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00455}00455\ }
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00456}00456\ \ \ \textcolor{keywordflow}{if}\ (BufferDesc.ReturnValue\ >\ 0)\ \{}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00457}00457\ \ \ \ \ \textcolor{comment}{//}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00458}00458\ \ \ \ \ \textcolor{comment}{//\ Write\ remaining\ data,\ if\ any}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00459}00459\ \ \ \ \ \textcolor{comment}{//}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00460}00460\ \ \ \ \ \textcolor{keywordflow}{if}\ (BufferDesc.Cnt\ !=\ 0u)\ \{}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00461}00461\ \ \ \ \ \ \ SEGGER\_RTT\_Write(BufferIndex,\ acBuffer,\ BufferDesc.Cnt);}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00462}00462\ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00463}00463\ \ \ \ \ BufferDesc.ReturnValue\ +=\ (int)BufferDesc.Cnt;}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00464}00464\ \ \ \}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00465}00465\ \ \ \textcolor{keywordflow}{return}\ BufferDesc.ReturnValue;}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00466}00466\ \}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00467}00467\ }
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00468}00468\ \textcolor{comment}{/*********************************************************************}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00469}00469\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00470}00470\ \textcolor{comment}{*\ \ \ \ \ \ \ SEGGER\_RTT\_printf}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00471}00471\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00472}00472\ \textcolor{comment}{*\ \ Function\ description}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00473}00473\ \textcolor{comment}{*\ \ \ \ Stores\ a\ formatted\ string\ in\ SEGGER\ RTT\ control\ block.}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00474}00474\ \textcolor{comment}{*\ \ \ \ This\ data\ is\ read\ by\ the\ host.}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00475}00475\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00476}00476\ \textcolor{comment}{*\ \ Parameters}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00477}00477\ \textcolor{comment}{*\ \ \ \ BufferIndex\ \ Index\ of\ "{}Up"{}-\/buffer\ to\ be\ used.\ (e.g.\ 0\ for\ "{}Terminal"{})}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00478}00478\ \textcolor{comment}{*\ \ \ \ sFormat\ \ \ \ \ \ Pointer\ to\ format\ string,\ followed\ by\ the\ arguments\ for\ conversion}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00479}00479\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00480}00480\ \textcolor{comment}{*\ \ Return\ values}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00481}00481\ \textcolor{comment}{*\ \ \ \ >=\ 0:\ \ Number\ of\ bytes\ which\ have\ been\ stored\ in\ the\ "{}Up"{}-\/buffer.}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00482}00482\ \textcolor{comment}{*\ \ \ \ \ <\ 0:\ \ Error}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00483}00483\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00484}00484\ \textcolor{comment}{*\ \ Notes}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00485}00485\ \textcolor{comment}{*\ \ \ \ (1)\ Conversion\ specifications\ have\ following\ syntax:}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00486}00486\ \textcolor{comment}{*\ \ \ \ \ \ \ \ \ \ \%[flags][FieldWidth][.Precision]ConversionSpecifier}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00487}00487\ \textcolor{comment}{*\ \ \ \ (2)\ Supported\ flags:}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00488}00488\ \textcolor{comment}{*\ \ \ \ \ \ \ \ \ \ -\/:\ Left\ justify\ within\ the\ field\ width}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00489}00489\ \textcolor{comment}{*\ \ \ \ \ \ \ \ \ \ +:\ Always\ print\ sign\ extension\ for\ signed\ conversions}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00490}00490\ \textcolor{comment}{*\ \ \ \ \ \ \ \ \ \ 0:\ Pad\ with\ 0\ instead\ of\ spaces.\ Ignored\ when\ using\ '-\/'-\/flag\ or\ precision}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00491}00491\ \textcolor{comment}{*\ \ \ \ \ \ \ \ Supported\ conversion\ specifiers:}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00492}00492\ \textcolor{comment}{*\ \ \ \ \ \ \ \ \ \ c:\ Print\ the\ argument\ as\ one\ char}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00493}00493\ \textcolor{comment}{*\ \ \ \ \ \ \ \ \ \ d:\ Print\ the\ argument\ as\ a\ signed\ integer}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00494}00494\ \textcolor{comment}{*\ \ \ \ \ \ \ \ \ \ u:\ Print\ the\ argument\ as\ an\ unsigned\ integer}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00495}00495\ \textcolor{comment}{*\ \ \ \ \ \ \ \ \ \ x:\ Print\ the\ argument\ as\ an\ hexadecimal\ integer}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00496}00496\ \textcolor{comment}{*\ \ \ \ \ \ \ \ \ \ s:\ Print\ the\ string\ pointed\ to\ by\ the\ argument}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00497}00497\ \textcolor{comment}{*\ \ \ \ \ \ \ \ \ \ p:\ Print\ the\ argument\ as\ an\ 8-\/digit\ hexadecimal\ integer.\ (Argument\ shall\ be\ a\ pointer\ to\ void.)}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00498}00498\ \textcolor{comment}{*/}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00499}00499\ \textcolor{keywordtype}{int}\ SEGGER\_RTT\_printf(\textcolor{keywordtype}{unsigned}\ BufferIndex,\ \textcolor{keyword}{const}\ \textcolor{keywordtype}{char}\ *\ sFormat,\ ...)\ \{}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00500}00500\ \ \ \textcolor{keywordtype}{int}\ r;}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00501}00501\ \ \ va\_list\ ParamList;}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00502}00502\ }
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00503}00503\ \ \ va\_start(ParamList,\ sFormat);}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00504}00504\ \ \ r\ =\ SEGGER\_RTT\_vprintf(BufferIndex,\ sFormat,\ \&ParamList);}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00505}00505\ \ \ va\_end(ParamList);}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00506}00506\ \ \ \textcolor{keywordflow}{return}\ r;}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00507}00507\ \}}
\DoxyCodeLine{\Hypertarget{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00508}00508\ \textcolor{comment}{/***************************\ End\ of\ file\ ****************************/}}
\end{DoxyCode}

View File

@@ -0,0 +1,13 @@
\doxysection{Class List}
Here are the classes, structs, unions and interfaces with brief descriptions\+:\begin{DoxyCompactList}
\item\contentsline{section}{\mbox{\hyperlink{struct_gen_optimizer__t}{Gen\+Optimizer\+\_\+t}} }{\pageref{struct_gen_optimizer__t}}{}
\item\contentsline{section}{\mbox{\hyperlink{struct_r_t_t___flash_header__t}{RTT\+\_\+\+Flash\+Header\+\_\+t}} \\*Структура RTT, которая будет положена в Flash }{\pageref{struct_r_t_t___flash_header__t}}{}
\item\contentsline{section}{\mbox{\hyperlink{struct_s_e_g_g_e_r___r_t_t___b_u_f_f_e_r___d_o_w_n}{SEGGER\+\_\+\+RTT\+\_\+\+BUFFER\+\_\+\+DOWN}} }{\pageref{struct_s_e_g_g_e_r___r_t_t___b_u_f_f_e_r___d_o_w_n}}{}
\item\contentsline{section}{\mbox{\hyperlink{struct_s_e_g_g_e_r___r_t_t___b_u_f_f_e_r___u_p}{SEGGER\+\_\+\+RTT\+\_\+\+BUFFER\+\_\+\+UP}} }{\pageref{struct_s_e_g_g_e_r___r_t_t___b_u_f_f_e_r___u_p}}{}
\item\contentsline{section}{\mbox{\hyperlink{struct_s_e_g_g_e_r___r_t_t___c_b}{SEGGER\+\_\+\+RTT\+\_\+\+CB}} }{\pageref{struct_s_e_g_g_e_r___r_t_t___c_b}}{}
\item\contentsline{section}{\mbox{\hyperlink{struct_s_e_g_g_e_r___r_t_t___p_r_i_n_t_f___d_e_s_c}{SEGGER\+\_\+\+RTT\+\_\+\+PRINTF\+\_\+\+DESC}} }{\pageref{struct_s_e_g_g_e_r___r_t_t___p_r_i_n_t_f___d_e_s_c}}{}
\item\contentsline{section}{\mbox{\hyperlink{unionuint16___bit_type_def}{uint16\+\_\+\+Bit\+Type\+Def}} }{\pageref{unionuint16___bit_type_def}}{}
\item\contentsline{section}{\mbox{\hyperlink{unionuint32___bit_type_def}{uint32\+\_\+\+Bit\+Type\+Def}} }{\pageref{unionuint32___bit_type_def}}{}
\item\contentsline{section}{\mbox{\hyperlink{unionuint64___bit_type_def}{uint64\+\_\+\+Bit\+Type\+Def}} }{\pageref{unionuint64___bit_type_def}}{}
\item\contentsline{section}{\mbox{\hyperlink{unionuint8___bit_type_def}{uint8\+\_\+\+Bit\+Type\+Def}} }{\pageref{unionuint8___bit_type_def}}{}
\end{DoxyCompactList}

View File

@@ -0,0 +1,47 @@
\doxysection{E\+:/.WORK/\+STM32/\+STM\+\_\+\+Libs/\+STM32\+\_\+\+Extended\+Libs/\+My\+Libs/\+Inc/bench\+\_\+time.h File Reference}
\hypertarget{bench__time_8h}{}\label{bench__time_8h}\index{E:/.WORK/STM32/STM\_Libs/STM32\_ExtendedLibs/MyLibs/Inc/bench\_time.h@{E:/.WORK/STM32/STM\_Libs/STM32\_ExtendedLibs/MyLibs/Inc/bench\_time.h}}
Заголовочный файл для измерения времени между событиями
{\ttfamily \#include "{}mylibs\+\_\+defs.\+h"{}}\newline
{\ttfamily \#include $<$stdint.\+h$>$}\newline
Include dependency graph for bench\+\_\+time.\+h\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=231pt]{bench__time_8h__incl}
\end{center}
\end{figure}
\doxysubsubsection*{Macros}
\begin{DoxyCompactItemize}
\item
\#define \mbox{\hyperlink{group___b_e_n_c_h___t_i_m_e_ga31b9f2267c562f3ceb533606daf0b789}{Bench\+Time\+\_\+\+Init}}()
\item
\#define \mbox{\hyperlink{group___b_e_n_c_h___t_i_m_e_ga89ff6c06fc21fb2bbfbf8cbf863316f1}{Bench\+Time\+\_\+\+Start}}(channel, ticks, tick\+\_\+period)
\item
\#define \mbox{\hyperlink{group___b_e_n_c_h___t_i_m_e_gadddc120d43a10fad50fbdeeab8d086b5}{Bench\+Time\+\_\+\+End}}(channel, ticks)
\item
\#define \mbox{\hyperlink{group___b_e_n_c_h___t_i_m_e_ga91e352219014c7ea5507bbbe4b15912d}{Bench\+Time\+\_\+\+Get\+Min}}(channel)
\item
\#define \mbox{\hyperlink{group___b_e_n_c_h___t_i_m_e_gab8103362e89bad95d965ac668284065c}{Bench\+Time\+\_\+\+Get\+Max}}(channel)
\item
\#define \mbox{\hyperlink{group___b_e_n_c_h___t_i_m_e_ga9f82f5ed8cfae31292dc3dca41471dd5}{Bench\+Time\+\_\+\+Get\+Average}}(channel)
\item
\#define \mbox{\hyperlink{group___b_e_n_c_h___t_i_m_e_gaafbca7155cfc97b68428da2b0b1200ef}{Bench\+Time\+\_\+\+Get\+Count}}(channel)
\item
\#define \mbox{\hyperlink{group___b_e_n_c_h___t_i_m_e_ga9911aa13a8fa67c35a261d1cb3dc11e7}{Bench\+Time\+\_\+\+Get\+Last}}(channel)
\item
\#define \mbox{\hyperlink{group___b_e_n_c_h___t_i_m_e_ga09b9a6ef9b60605fc0015f6b379d8420}{Bench\+Time\+\_\+\+Reset\+Stats}}(channel)
\end{DoxyCompactItemize}
\doxysubsection{Detailed Description}
Заголовочный файл для измерения времени между событиями
Definition in file \mbox{\hyperlink{bench__time_8h_source}{bench\+\_\+time.\+h}}.

View File

@@ -0,0 +1 @@
2c6cd31e94ef896a6c22f2dc3ac0a944

Binary file not shown.

View File

@@ -0,0 +1,263 @@
\doxysection{bench\+\_\+time.\+h}
\hypertarget{bench__time_8h_source}{}\label{bench__time_8h_source}\index{E:/.WORK/STM32/STM\_Libs/STM32\_ExtendedLibs/MyLibs/Inc/bench\_time.h@{E:/.WORK/STM32/STM\_Libs/STM32\_ExtendedLibs/MyLibs/Inc/bench\_time.h}}
\mbox{\hyperlink{bench__time_8h}{Go to the documentation of this file.}}
\begin{DoxyCode}{0}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00001}00001\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00002}00002\ \textcolor{comment}{******************************************************************************}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00003}00003\ \textcolor{comment}{*\ @file\ bench\_time.h}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00004}00004\ \textcolor{comment}{*\ @brief\ Заголовочный\ файл\ для\ измерения\ времени\ между\ событиями}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00005}00005\ \textcolor{comment}{******************************************************************************}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00006}00006\ \textcolor{comment}{*\ @addtogroup\ BENCH\_TIME\ \ \ \ Time\ measurement}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00007}00007\ \textcolor{comment}{*\ @brief\ \ \ \ \ \ Библиотека\ для\ измерения\ времени/тиков\ между\ событиями}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00008}00008\ \textcolor{comment}{*\ @details}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00009}00009\ \textcolor{comment}{Поддерживает:}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00010}00010\ \textcolor{comment}{-\/\ Многоканальные\ измерения\ (несколько\ независимых\ таймеров)}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00011}00011\ \textcolor{comment}{-\/\ Платформонезависимый\ интерфейс}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00012}00012\ \textcolor{comment}{-\/\ Измерение\ в\ тиках\ или\ временных\ единицах}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00013}00013\ \textcolor{comment}{-\/\ Статистику\ измерений\ (мин/макс/среднее)}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00014}00014\ \textcolor{comment}{-\/\ Настраиваемый\ размер\ тиков\ для\ каждого\ канала}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00015}00015\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00016}00016\ \textcolor{comment}{Параметры\ для\ конфигурации:}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00017}00017\ \textcolor{comment}{-\/\ @ref\ BENCH\_TIME\_ENABLE\ -\/\ Включить\ бенч\ времени}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00018}00018\ \textcolor{comment}{-\/\ @ref\ BENCH\_TIME\_MAX\_CHANNELS\ -\/\ Максимальное\ количество\ каналов\ измерения\ (по\ умолчанию\ 8)}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00019}00019\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00020}00020\ \textcolor{comment}{@par\ Пример\ использования:}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00021}00021\ \textcolor{comment}{@code}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00022}00022\ \textcolor{comment}{\#include\ "{}bench\_time.h"{}}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00023}00023\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00024}00024\ \textcolor{comment}{//\ Инициализация}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00025}00025\ \textcolor{comment}{BenchTime\_Init();}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00026}00026\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00027}00027\ \textcolor{comment}{//\ Измерение\ с\ SysTick}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00028}00028\ \textcolor{comment}{BenchTime\_Start(0,\ HAL\_GetTick,\ 0xFFFFFFFF);}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00029}00029\ \textcolor{comment}{some\_function();}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00030}00030\ \textcolor{comment}{uint32\_t\ time\ =\ BenchTime\_End(0,\ HAL\_GetTick);}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00031}00031\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00032}00032\ \textcolor{comment}{//\ Измерение\ с\ TIM2\ (16-\/бит)}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00033}00033\ \textcolor{comment}{BenchTime\_Start(1,\ TIM2-\/>CNT,\ 0xFFFF);}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00034}00034\ \textcolor{comment}{fast\_function();\ }}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00035}00035\ \textcolor{comment}{uint32\_t\ time2\ =\ BenchTime\_End(1,\ TIM2-\/>CNT);}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00036}00036\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00037}00037\ \textcolor{comment}{//\ Измерение\ с\ DWT\ цикловым\ счетчиком}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00038}00038\ \textcolor{comment}{BenchTime\_Start(2,\ DWT-\/>CYCCNT,\ 0xFFFFFFFF);}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00039}00039\ \textcolor{comment}{critical\_function();}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00040}00040\ \textcolor{comment}{uint32\_t\ cycles\ =\ BenchTime\_End(2,\ DWT-\/>CYCCNT);}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00041}00041\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00042}00042\ \textcolor{comment}{//\ Многоканальное\ измерение}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00043}00043\ \textcolor{comment}{BenchTime\_Start(0,\ HAL\_GetTick,\ 1000);\ \ \ \ \ \ \ \ //\ общее\ время}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00044}00044\ \textcolor{comment}{BenchTime\_Start(1,\ TIM3-\/>CNT,\ 500);\ \ \ \ \ \ \ \ \ \ \ //\ часть\ 1}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00045}00045\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00046}00046\ \textcolor{comment}{//\ ...\ код\ 1}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00047}00047\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00048}00048\ \textcolor{comment}{uint32\_t\ part1\ =\ BenchTime\_End(1,\ TIM3-\/>CNT);}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00049}00049\ \textcolor{comment}{BenchTime\_Start(2,\ TIM4-\/>CNT,\ 200);\ \ \ \ \ \ \ \ \ \ \ //\ часть\ 2\ \ }}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00050}00050\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00051}00051\ \textcolor{comment}{//\ ...\ код\ 2}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00052}00052\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00053}00053\ \textcolor{comment}{uint32\_t\ part2\ =\ BenchTime\_End(2,\ TIM4-\/>CNT);}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00054}00054\ \textcolor{comment}{uint32\_t\ total\ =\ BenchTime\_End(0,\ HAL\_GetTick);\ //\ общее\ время}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00055}00055\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00056}00056\ \textcolor{comment}{//\ Статистика}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00057}00057\ \textcolor{comment}{uint32\_t\ min\_time\ =\ BenchTime\_GetMin(0);}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00058}00058\ \textcolor{comment}{uint32\_t\ max\_time\ =\ BenchTime\_GetMax(0);}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00059}00059\ \textcolor{comment}{uint32\_t\ avg\_time\ =\ BenchTime\_GetAverage(0);}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00060}00060\ \textcolor{comment}{uint32\_t\ count\ =\ BenchTime\_GetCount(0);}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00061}00061\ \textcolor{comment}{@endcode}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00062}00062\ \textcolor{comment}{*\ @\{\ \ }}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00063}00063\ \textcolor{comment}{*****************************************************************************/}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00064}00064\ \textcolor{preprocessor}{\#ifndef\ \_\_BENCH\_TIME\_H\_}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00065}00065\ \textcolor{preprocessor}{\#define\ \_\_BENCH\_TIME\_H\_}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00066}00066\ }
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00067}00067\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{mylibs__defs_8h}{mylibs\_defs.h}}"{}}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00068}00068\ \textcolor{preprocessor}{\#include\ <stdint.h>}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00069}00069\ }
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00070}00070\ \textcolor{preprocessor}{\#ifdef\ BENCH\_TIME\_ENABLE}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00071}00071\ }
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00072}00072\ \textcolor{comment}{//\ Конфигурация\ библиотеки}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00073}00073\ \textcolor{preprocessor}{\#ifndef\ BENCH\_TIME\_MAX\_CHANNELS}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00074}00074\ \textcolor{preprocessor}{\#define\ BENCH\_TIME\_MAX\_CHANNELS\ \ 8\ \ \ \ }\textcolor{comment}{///<\ Максимальное\ количество\ каналов\ измерения}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00075}00075\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00076}00076\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00077}00077\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00078}00078\ \textcolor{comment}{\ \ *\ @brief\ Структура\ статистики\ измерений}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00079}00079\ \textcolor{comment}{\ \ */}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00080}00080\ \textcolor{keyword}{typedef}\ \textcolor{keyword}{struct\ }\{}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00081}00081\ \ \ uint32\_t\ min\_ticks;\ \ \ \ \ \ \textcolor{comment}{///<\ Минимальное\ время\ в\ тиках}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00082}00082\ \ \ uint32\_t\ max\_ticks;\ \ \ \ \ \ \textcolor{comment}{///<\ Максимальное\ время\ в\ тиках\ \ }}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00083}00083\ \ \ uint32\_t\ total\_ticks;\ \ \ \ \textcolor{comment}{///<\ Суммарное\ время\ в\ тиках}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00084}00084\ \ \ uint32\_t\ count;\ \ \ \ \ \ \ \ \ \ \textcolor{comment}{///<\ Количество\ измерений}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00085}00085\ \ \ uint32\_t\ last\_ticks;\ \ \ \ \ \textcolor{comment}{///<\ Последнее\ измеренное\ время}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00086}00086\ \}\ BenchTimeStats\_t;}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00087}00087\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00088}00088\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00089}00089\ \textcolor{comment}{\ \ *\ @brief\ Структура\ канала\ измерения}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00090}00090\ \textcolor{comment}{\ \ */}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00091}00091\ \textcolor{keyword}{typedef}\ \textcolor{keyword}{struct\ }\{}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00092}00092\ \ \ uint32\_t\ start\_tick;\ \ \ \ \ \textcolor{comment}{///<\ Время\ старта\ в\ тиках}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00093}00093\ \ \ uint32\_t\ tick\_period;\ \ \ \ \textcolor{comment}{///<\ Период\ тиков\ для\ переполнения}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00094}00094\ \ \ uint32\_t\ is\_running;\ \ \ \ \ \ \ \ \ \textcolor{comment}{///<\ Флаг\ активного\ измерения}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00095}00095\ \ \ BenchTimeStats\_t\ stats;\ \ \textcolor{comment}{///<\ Статистика\ измерений}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00096}00096\ \}\ BenchTimeChannel\_t;}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00097}00097\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00098}00098\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00099}00099\ \textcolor{comment}{\ \ *\ @brief\ Основная\ структура\ менеджера\ измерений}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00100}00100\ \textcolor{comment}{\ \ */}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00101}00101\ \textcolor{keyword}{typedef}\ \textcolor{keyword}{struct\ }\{}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00102}00102\ \ \ BenchTimeChannel\_t\ channels[\mbox{\hyperlink{group___g_e_n___c_o_n_f_i_g_ga74fdf777ceefa5e7d67120fbda4cde52}{BENCH\_TIME\_MAX\_CHANNELS}}];\ \textcolor{comment}{///<\ Каналы\ измерения}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00103}00103\ \}\ BenchTime\_t;}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00104}00104\ }
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00105}00105\ \textcolor{keyword}{static}\ BenchTime\_t\ hbt\ =\ \{0\};\ \textcolor{comment}{///<\ Внутренний\ экземпляр}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00106}00106\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00107}00107\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00108}00108\ \textcolor{comment}{\ \ *\ @brief\ Инициализация\ системы\ измерения\ времени}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00109}00109\ \textcolor{comment}{\ \ */}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00110}00110\ \textcolor{keyword}{static}\ \textcolor{keyword}{inline}\ \textcolor{keywordtype}{void}\ BenchTime\_Init(\textcolor{keywordtype}{void})\ \{}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00111}00111\ \ \ \textcolor{keywordflow}{for}\ (\textcolor{keywordtype}{int}\ i\ =\ 0;\ i\ <\ \mbox{\hyperlink{group___g_e_n___c_o_n_f_i_g_ga74fdf777ceefa5e7d67120fbda4cde52}{BENCH\_TIME\_MAX\_CHANNELS}};\ i++)\ \{}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00112}00112\ \ \ \ \ hbt.channels[i].start\_tick\ =\ 0;}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00113}00113\ \ \ \ \ hbt.channels[i].tick\_period\ =\ 0xFFFFFFFF;}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00114}00114\ \ \ \ \ hbt.channels[i].is\_running\ =\ 0;}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00115}00115\ \ \ \ \ hbt.channels[i].stats.min\_ticks\ =\ 0xFFFFFFFF;}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00116}00116\ \ \ \ \ hbt.channels[i].stats.max\_ticks\ =\ 0;}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00117}00117\ \ \ \ \ hbt.channels[i].stats.total\_ticks\ =\ 0;}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00118}00118\ \ \ \ \ hbt.channels[i].stats.count\ =\ 0;}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00119}00119\ \ \ \ \ hbt.channels[i].stats.last\_ticks\ =\ 0;}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00120}00120\ \ \ \}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00121}00121\ \}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00122}00122\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00123}00123\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00124}00124\ \textcolor{comment}{\ \ *\ @brief\ Начало\ измерения\ на\ указанном\ канале}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00125}00125\ \textcolor{comment}{\ \ *\ @param\ channel\ Номер\ канала\ (0..BENCH\_TIME\_MAX\_CHANNELS-\/1)}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00126}00126\ \textcolor{comment}{\ \ *\ @param\ ticks\ Источник\ тиков\ (например:\ HAL\_GetTick(),\ TIM2-\/>CNT,\ DWT-\/>CYCCNT)}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00127}00127\ \textcolor{comment}{\ \ *\ @param\ tick\_period\ Период\ тиков\ для\ переполнения}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00128}00128\ \textcolor{comment}{\ \ *\ @return\ 1\ -\/\ успех,\ 0\ -\/\ ошибка}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00129}00129\ \textcolor{comment}{\ \ */}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00130}00130\ \textcolor{keyword}{static}\ \textcolor{keyword}{inline}\ uint32\_t\ BenchTime\_Start(uint8\_t\ channel,\ uint32\_t\ ticks,\ uint32\_t\ tick\_period)\ \{}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00131}00131\ \ \ \textcolor{keywordflow}{if}\ (channel\ >=\ \mbox{\hyperlink{group___g_e_n___c_o_n_f_i_g_ga74fdf777ceefa5e7d67120fbda4cde52}{BENCH\_TIME\_MAX\_CHANNELS}})\ \textcolor{keywordflow}{return}\ 0;}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00132}00132\ \ \ \textcolor{keywordflow}{if}\ (hbt.channels[channel].is\_running)\ \textcolor{keywordflow}{return}\ 0;}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00133}00133\ \ \ }
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00134}00134\ \ \ hbt.channels[channel].start\_tick\ =\ ticks;}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00135}00135\ \ \ hbt.channels[channel].tick\_period\ =\ tick\_period;}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00136}00136\ \ \ hbt.channels[channel].is\_running\ =\ 1;}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00137}00137\ \ \ \textcolor{keywordflow}{return}\ 1;}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00138}00138\ \}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00139}00139\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00140}00140\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00141}00141\ \textcolor{comment}{\ \ *\ @brief\ Окончание\ измерения\ на\ указанном\ канале}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00142}00142\ \textcolor{comment}{\ \ *\ @param\ channel\ Номер\ канала\ (0..BENCH\_TIME\_MAX\_CHANNELS-\/1)}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00143}00143\ \textcolor{comment}{\ \ *\ @param\ ticks\ Источник\ тиков\ (должен\ быть\ тот\ же\ что\ в\ Start)}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00144}00144\ \textcolor{comment}{\ \ *\ @return\ Измеренное\ время\ в\ тиках,\ 0\ -\/\ в\ случае\ ошибки}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00145}00145\ \textcolor{comment}{\ \ */}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00146}00146\ \textcolor{keyword}{static}\ \textcolor{keyword}{inline}\ uint32\_t\ BenchTime\_End(uint8\_t\ channel,\ uint32\_t\ ticks)\ \{}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00147}00147\ \ \ \textcolor{keywordflow}{if}\ (channel\ >=\ \mbox{\hyperlink{group___g_e_n___c_o_n_f_i_g_ga74fdf777ceefa5e7d67120fbda4cde52}{BENCH\_TIME\_MAX\_CHANNELS}})\ \textcolor{keywordflow}{return}\ 0;}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00148}00148\ \ \ \textcolor{keywordflow}{if}\ (!hbt.channels[channel].is\_running)\ \textcolor{keywordflow}{return}\ 0;}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00149}00149\ \ \ }
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00150}00150\ \ \ uint32\_t\ end\_tick\ =\ ticks;}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00151}00151\ \ \ uint32\_t\ start\_tick\ =\ hbt.channels[channel].start\_tick;}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00152}00152\ \ \ uint32\_t\ tick\_period\ =\ hbt.channels[channel].tick\_period;}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00153}00153\ \ \ uint32\_t\ elapsed\_ticks;}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00154}00154\ \ \ }
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00155}00155\ \ \ \textcolor{keywordflow}{if}\ (end\_tick\ >=\ start\_tick)\ \{}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00156}00156\ \ \ \ \ elapsed\_ticks\ =\ end\_tick\ -\/\ start\_tick;}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00157}00157\ \ \ \}\ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00158}00158\ \ \ \ \ elapsed\_ticks\ =\ (tick\_period\ -\/\ start\_tick)\ +\ end\_tick\ +\ 1;}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00159}00159\ \ \ \}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00160}00160\ \ \ }
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00161}00161\ \ \ \textcolor{keywordflow}{if}\ (elapsed\_ticks\ >\ tick\_period)\ \{}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00162}00162\ \ \ \ \ elapsed\_ticks\ =\ tick\_period;}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00163}00163\ \ \ \}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00164}00164\ \ \ }
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00165}00165\ \ \ hbt.channels[channel].is\_running\ =\ 0;}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00166}00166\ \ \ }
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00167}00167\ \ \ \textcolor{comment}{//\ Обновление\ статистики}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00168}00168\ \ \ BenchTimeStats\_t*\ stats\ =\ \&hbt.channels[channel].stats;}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00169}00169\ \ \ stats-\/>last\_ticks\ =\ elapsed\_ticks;}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00170}00170\ \ \ }
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00171}00171\ \ \ \textcolor{keywordflow}{if}\ (elapsed\_ticks\ <\ stats-\/>min\_ticks)\ \{}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00172}00172\ \ \ \ \ stats-\/>min\_ticks\ =\ elapsed\_ticks;}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00173}00173\ \ \ \}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00174}00174\ \ \ }
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00175}00175\ \ \ \textcolor{keywordflow}{if}\ (elapsed\_ticks\ >\ stats-\/>max\_ticks)\ \{}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00176}00176\ \ \ \ \ stats-\/>max\_ticks\ =\ elapsed\_ticks;}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00177}00177\ \ \ \}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00178}00178\ \ \ }
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00179}00179\ \ \ stats-\/>total\_ticks\ +=\ elapsed\_ticks;}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00180}00180\ \ \ stats-\/>count++;}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00181}00181\ \ \ }
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00182}00182\ \ \ \textcolor{keywordflow}{return}\ elapsed\_ticks;}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00183}00183\ \}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00184}00184\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00185}00185\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00186}00186\ \textcolor{comment}{\ \ *\ @brief\ Получение\ минимального\ времени\ измерения}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00187}00187\ \textcolor{comment}{\ \ */}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00188}00188\ \textcolor{keyword}{static}\ \textcolor{keyword}{inline}\ uint32\_t\ BenchTime\_GetMin(uint8\_t\ channel)\ \{}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00189}00189\ \ \ \textcolor{keywordflow}{if}\ (channel\ >=\ \mbox{\hyperlink{group___g_e_n___c_o_n_f_i_g_ga74fdf777ceefa5e7d67120fbda4cde52}{BENCH\_TIME\_MAX\_CHANNELS}})\ \textcolor{keywordflow}{return}\ 0;}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00190}00190\ \ \ \textcolor{keywordflow}{return}\ hbt.channels[channel].stats.min\_ticks;}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00191}00191\ \}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00192}00192\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00193}00193\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00194}00194\ \textcolor{comment}{\ \ *\ @brief\ Получение\ максимального\ времени\ измерения}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00195}00195\ \textcolor{comment}{\ \ */}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00196}00196\ \textcolor{keyword}{static}\ \textcolor{keyword}{inline}\ uint32\_t\ BenchTime\_GetMax(uint8\_t\ channel)\ \{}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00197}00197\ \ \ \textcolor{keywordflow}{if}\ (channel\ >=\ \mbox{\hyperlink{group___g_e_n___c_o_n_f_i_g_ga74fdf777ceefa5e7d67120fbda4cde52}{BENCH\_TIME\_MAX\_CHANNELS}})\ \textcolor{keywordflow}{return}\ 0;}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00198}00198\ \ \ \textcolor{keywordflow}{return}\ hbt.channels[channel].stats.max\_ticks;}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00199}00199\ \}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00200}00200\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00201}00201\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00202}00202\ \textcolor{comment}{\ \ *\ @brief\ Получение\ среднего\ времени\ измерения}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00203}00203\ \textcolor{comment}{\ \ */}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00204}00204\ \textcolor{keyword}{static}\ \textcolor{keyword}{inline}\ uint32\_t\ BenchTime\_GetAverage(uint8\_t\ channel)\ \{}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00205}00205\ \ \ \textcolor{keywordflow}{if}\ (channel\ >=\ \mbox{\hyperlink{group___g_e_n___c_o_n_f_i_g_ga74fdf777ceefa5e7d67120fbda4cde52}{BENCH\_TIME\_MAX\_CHANNELS}})\ \textcolor{keywordflow}{return}\ 0;}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00206}00206\ \ \ BenchTimeStats\_t*\ stats\ =\ \&hbt.channels[channel].stats;}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00207}00207\ \ \ \textcolor{keywordflow}{if}\ (stats-\/>count\ ==\ 0)\ \textcolor{keywordflow}{return}\ 0;}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00208}00208\ \ \ \textcolor{keywordflow}{return}\ stats-\/>total\_ticks\ /\ stats-\/>count;}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00209}00209\ \}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00210}00210\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00211}00211\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00212}00212\ \textcolor{comment}{\ \ *\ @brief\ Получение\ количества\ измерений}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00213}00213\ \textcolor{comment}{\ \ */}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00214}00214\ \textcolor{keyword}{static}\ \textcolor{keyword}{inline}\ uint32\_t\ BenchTime\_GetCount(uint8\_t\ channel)\ \{}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00215}00215\ \ \ \textcolor{keywordflow}{if}\ (channel\ >=\ \mbox{\hyperlink{group___g_e_n___c_o_n_f_i_g_ga74fdf777ceefa5e7d67120fbda4cde52}{BENCH\_TIME\_MAX\_CHANNELS}})\ \textcolor{keywordflow}{return}\ 0;}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00216}00216\ \ \ \textcolor{keywordflow}{return}\ hbt.channels[channel].stats.count;}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00217}00217\ \}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00218}00218\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00219}00219\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00220}00220\ \textcolor{comment}{\ \ *\ @brief\ Получение\ последнего\ измеренного\ времени}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00221}00221\ \textcolor{comment}{\ \ */}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00222}00222\ \textcolor{keyword}{static}\ \textcolor{keyword}{inline}\ uint32\_t\ BenchTime\_GetLast(uint8\_t\ channel)\ \{}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00223}00223\ \ \ \textcolor{keywordflow}{if}\ (channel\ >=\ \mbox{\hyperlink{group___g_e_n___c_o_n_f_i_g_ga74fdf777ceefa5e7d67120fbda4cde52}{BENCH\_TIME\_MAX\_CHANNELS}})\ \textcolor{keywordflow}{return}\ 0;}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00224}00224\ \ \ \textcolor{keywordflow}{return}\ hbt.channels[channel].stats.last\_ticks;}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00225}00225\ \}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00226}00226\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00227}00227\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00228}00228\ \textcolor{comment}{\ \ *\ @brief\ Сброс\ статистики\ для\ канала}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00229}00229\ \textcolor{comment}{\ \ */}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00230}00230\ \textcolor{keyword}{static}\ \textcolor{keyword}{inline}\ \textcolor{keywordtype}{void}\ BenchTime\_ResetStats(uint8\_t\ channel)\ \{}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00231}00231\ \ \ \textcolor{keywordflow}{if}\ (channel\ >=\ \mbox{\hyperlink{group___g_e_n___c_o_n_f_i_g_ga74fdf777ceefa5e7d67120fbda4cde52}{BENCH\_TIME\_MAX\_CHANNELS}})\ \textcolor{keywordflow}{return};}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00232}00232\ \ \ BenchTimeStats\_t*\ stats\ =\ \&hbt.channels[channel].stats;}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00233}00233\ \ \ stats-\/>min\_ticks\ =\ 0xFFFFFFFF;}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00234}00234\ \ \ stats-\/>max\_ticks\ =\ 0;}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00235}00235\ \ \ stats-\/>total\_ticks\ =\ 0;}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00236}00236\ \ \ stats-\/>count\ =\ 0;}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00237}00237\ \ \ stats-\/>last\_ticks\ =\ 0;}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00238}00238\ \}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00239}00239\ \textcolor{preprocessor}{\#else\ }\textcolor{comment}{//BENCH\_TIME\_ENABLE}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00240}00240\ }
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00241}00241\ \textcolor{preprocessor}{\#define\ BenchTime\_Init()}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00242}00242\ \textcolor{preprocessor}{\#define\ BenchTime\_Start(channel,\ ticks,\ tick\_period)\ \ 0}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00243}00243\ \textcolor{preprocessor}{\#define\ BenchTime\_End(channel,\ ticks)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 0}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00244}00244\ \textcolor{preprocessor}{\#define\ BenchTime\_GetMin(channel)\ \ \ \ \ \ \ 0}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00245}00245\ \textcolor{preprocessor}{\#define\ BenchTime\_GetMax(channel)\ \ \ \ \ \ \ 0}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00246}00246\ \textcolor{preprocessor}{\#define\ BenchTime\_GetAverage(channel)\ \ \ 0}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00247}00247\ \textcolor{preprocessor}{\#define\ BenchTime\_GetCount(channel)\ \ \ \ \ 0}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00248}00248\ \textcolor{preprocessor}{\#define\ BenchTime\_GetLast(channel)\ \ \ \ \ \ 0}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00249}00249\ \textcolor{preprocessor}{\#define\ BenchTime\_ResetStats(channel)}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00250}00250\ }
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00251}00251\ \textcolor{preprocessor}{\#endif\ }\textcolor{comment}{//BENCH\_TIME\_ENABLE}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00252}00252\ }
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00253}00253\ \textcolor{preprocessor}{\#endif\ }\textcolor{comment}{//\ \_\_BENCH\_TIME\_H\_}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00254}00254\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00255}00255\ \textcolor{comment}{/**\ BENCH\_TIME}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00256}00256\ \textcolor{comment}{\ \ *\ @\}}}
\DoxyCodeLine{\Hypertarget{bench__time_8h_source_l00257}00257\ \textcolor{comment}{\ \ */}}
\end{DoxyCode}

View File

@@ -0,0 +1,47 @@
\doxysection{E\+:/.WORK/\+STM32/\+STM\+\_\+\+Libs/\+STM32\+\_\+\+Extended\+Libs/\+My\+Libs/\+Inc/bit\+\_\+access.h File Reference}
\hypertarget{bit__access_8h}{}\label{bit__access_8h}\index{E:/.WORK/STM32/STM\_Libs/STM32\_ExtendedLibs/MyLibs/Inc/bit\_access.h@{E:/.WORK/STM32/STM\_Libs/STM32\_ExtendedLibs/MyLibs/Inc/bit\_access.h}}
Заголочный файл для дефайнов битового доступа.
{\ttfamily \#include "{}mylibs\+\_\+defs.\+h"{}}\newline
Include dependency graph for bit\+\_\+access.\+h\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=218pt]{bit__access_8h__incl}
\end{center}
\end{figure}
\doxysubsubsection*{Classes}
\begin{DoxyCompactItemize}
\item
union \mbox{\hyperlink{unionuint8___bit_type_def}{uint8\+\_\+\+Bit\+Type\+Def}}
\item
union \mbox{\hyperlink{unionuint16___bit_type_def}{uint16\+\_\+\+Bit\+Type\+Def}}
\item
union \mbox{\hyperlink{unionuint32___bit_type_def}{uint32\+\_\+\+Bit\+Type\+Def}}
\item
union \mbox{\hyperlink{unionuint64___bit_type_def}{uint64\+\_\+\+Bit\+Type\+Def}}
\end{DoxyCompactItemize}
\doxysubsubsection*{Macros}
\begin{DoxyCompactItemize}
\item
\#define \mbox{\hyperlink{group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s_ga57dc3bb3472a66fc92312f89d42d2396}{uint8\+\_\+bit}}(\+\_\+uint8\+\_\+, \+\_\+bit\+\_\+)
\begin{DoxyCompactList}\small\item\em Получить n-\/й бит из uint8\+\_\+t. \end{DoxyCompactList}\item
\#define \mbox{\hyperlink{group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s_ga6a122b536ad99ae611c8cf01437af086}{uint16\+\_\+bit}}(\+\_\+uint8\+\_\+, \+\_\+bit\+\_\+)
\begin{DoxyCompactList}\small\item\em Получить n-\/й бит из uint16\+\_\+t. \end{DoxyCompactList}\item
\#define \mbox{\hyperlink{group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s_gafaa2080168b1b6f7281e8bfabab022d1}{uint32\+\_\+bit}}(\+\_\+uint8\+\_\+, \+\_\+bit\+\_\+)
\begin{DoxyCompactList}\small\item\em Получить n-\/й бит из uint32\+\_\+t. \end{DoxyCompactList}\item
\#define \mbox{\hyperlink{group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s_ga47eb69ce9330a1c73fe8031240f02f0a}{uint64\+\_\+bit}}(\+\_\+uint8\+\_\+, \+\_\+bit\+\_\+)
\begin{DoxyCompactList}\small\item\em Получить n-\/й бит из uint64\+\_\+t. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection{Detailed Description}
Заголочный файл для дефайнов битового доступа.
Definition in file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}.

View File

@@ -0,0 +1 @@
612c78aae62267607a8a4cead7a97af0

Binary file not shown.

View File

@@ -0,0 +1,165 @@
\doxysection{bit\+\_\+access.\+h}
\hypertarget{bit__access_8h_source}{}\label{bit__access_8h_source}\index{E:/.WORK/STM32/STM\_Libs/STM32\_ExtendedLibs/MyLibs/Inc/bit\_access.h@{E:/.WORK/STM32/STM\_Libs/STM32\_ExtendedLibs/MyLibs/Inc/bit\_access.h}}
\mbox{\hyperlink{bit__access_8h}{Go to the documentation of this file.}}
\begin{DoxyCode}{0}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00001}00001\ \textcolor{comment}{/**\ }}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00002}00002\ \textcolor{comment}{**************************************************************************}}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00003}00003\ \textcolor{comment}{*\ @file\ bit\_access.h}}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00004}00004\ \textcolor{comment}{*\ @brief\ Заголочный\ файл\ для\ дефайнов\ битового\ доступа.}}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00005}00005\ \textcolor{comment}{**************************************************************************}}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00006}00006\ \textcolor{comment}{*\ @defgroup\ BIT\_ACCESS\_DEFINES\ \ \ \ Bit\ access\ defines}}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00007}00007\ \textcolor{comment}{*\ @ingroup\ \ MYLIBS\_TOOLS\ }}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00008}00008\ \textcolor{comment}{*\ @brief\ \ \ \ \ Макросы\ и\ typedef'ы\ для\ работы\ с\ битами\ в\ unsigned\ типах.}}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00009}00009\ \textcolor{comment}{*\ @details}}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00010}00010\ \textcolor{comment}{В\ этом\ файле\ определены\ макросы\ для\ получения\ значения\ конкретного\ бита\string^}}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00011}00011\ \textcolor{comment}{-\/\ @ref\ uint8\_bit}}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00012}00012\ \textcolor{comment}{-\/\ @ref\ uint16\_bit}}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00013}00013\ \textcolor{comment}{-\/\ @ref\ uint32\_bit}}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00014}00014\ \textcolor{comment}{-\/\ @ref\ uint64\_bit}}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00015}00015\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00016}00016\ \textcolor{comment}{Особенности\ использования:}}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00017}00017\ \textcolor{comment}{-\/\ Индекс\ бита\ должен\ быть\ **константой\ на\ этапе\ компиляции**.}}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00018}00018\ \textcolor{comment}{\ \ Пример\ верного\ использования:}}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00019}00019\ \textcolor{comment}{\ \ \ \ @code}}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00020}00020\ \textcolor{comment}{\ \ \ \ \ \ uint8\_t\ val\ =\ 0x05;}}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00021}00021\ \textcolor{comment}{\ \ \ \ \ \ uint8\_t\ b2\ =\ uint8\_bit(val,\ 2);\ //\ Получить\ бит\ 2}}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00022}00022\ \textcolor{comment}{\ \ \ \ \ \ uint8\_bit(val,\ 6)\ =\ 1;\ //\ Записать\ бит\ 6}}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00023}00023\ \textcolor{comment}{\ \ \ \ @endcode}}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00024}00024\ \textcolor{comment}{-\/\ Нельзя\ использовать\ переменные\ в\ качестве\ индекса:}}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00025}00025\ \textcolor{comment}{\ \ \ \ @code}}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00026}00026\ \textcolor{comment}{\ \ \ \ \ \ uint8\_t\ i\ =\ 2;}}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00027}00027\ \textcolor{comment}{\ \ \ \ \ \ uint8\_bit(val,\ i);\ //\ Не\ сработает!}}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00028}00028\ \textcolor{comment}{\ \ \ \ @endcode}}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00029}00029\ \textcolor{comment}{-\/\ Макросы\ возвращают\ 0\ или\ 1.}}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00030}00030\ \textcolor{comment}{-\/\ Доступ\ реализован\ через\ приведение\ к\ \`{}union`\ с\ битовыми\ полями,\ поэтому\ это}}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00031}00031\ \textcolor{comment}{\ \ безопасный\ способ\ работы\ с\ отдельными\ битами\ без\ ручного\ сдвига\ и\ маскирования.}}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00032}00032\ \textcolor{comment}{*\ @\{}}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00033}00033\ \textcolor{comment}{*************************************************************************/}}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00034}00034\ \textcolor{preprocessor}{\#ifndef\ \_\_BIT\_ACCESS\_H\_}}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00035}00035\ \textcolor{preprocessor}{\#define\ \_\_BIT\_ACCESS\_H\_}}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00036}00036\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{mylibs__defs_8h}{mylibs\_defs.h}}"{}}}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00037}00037\ }
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00038}00038\ \ \ }
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00039}\mbox{\hyperlink{unionuint8___bit_type_def}{00039}}\ \textcolor{keyword}{typedef}\ \textcolor{keyword}{union}}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00040}00040\ \{}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00041}00041\ \ \ uint8\_t\ all;}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00042}00042\ \ \ \textcolor{keyword}{struct}}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00043}00043\ \ \ \{}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00044}00044\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit0:1;}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00045}00045\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit1:1;}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00046}00046\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit2:1;}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00047}00047\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit3:1;}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00048}00048\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit4:1;}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00049}00049\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit5:1;}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00050}00050\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit6:1;}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00051}00051\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit7:1;}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00052}00052\ \ \ \}bit;}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00053}00053\ \}\mbox{\hyperlink{unionuint8___bit_type_def}{uint8\_BitTypeDef}};}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00054}00054\ }
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00055}\mbox{\hyperlink{unionuint16___bit_type_def}{00055}}\ \textcolor{keyword}{typedef}\ \textcolor{keyword}{union}}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00056}00056\ \{}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00057}00057\ \ \ uint16\_t\ all;}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00058}00058\ \ \ \textcolor{keyword}{struct}}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00059}00059\ \ \ \{}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00060}00060\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit0:1;}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00061}00061\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit1:1;}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00062}00062\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit2:1;}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00063}00063\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit3:1;}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00064}00064\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit4:1;}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00065}00065\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit5:1;}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00066}00066\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit6:1;}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00067}00067\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit7:1;}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00068}00068\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit8:1;}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00069}00069\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit9:1;}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00070}00070\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit10:1;}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00071}00071\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit11:1;}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00072}00072\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit12:1;}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00073}00073\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit13:1;}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00074}00074\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit14:1;}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00075}00075\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit15:1;}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00076}00076\ \ \ \}bit;}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00077}00077\ \}\mbox{\hyperlink{unionuint16___bit_type_def}{uint16\_BitTypeDef}};}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00078}00078\ }
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00079}00079\ }
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00080}\mbox{\hyperlink{unionuint32___bit_type_def}{00080}}\ \textcolor{keyword}{typedef}\ \textcolor{keyword}{union}}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00081}00081\ \{}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00082}00082\ \ \ uint32\_t\ all;}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00083}00083\ \ \ \textcolor{keyword}{struct}}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00084}00084\ \ \ \{}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00085}00085\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit0:1;\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit1:1;\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit2:1;\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit3:1;}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00086}00086\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit4:1;\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit5:1;\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit6:1;\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit7:1;}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00087}00087\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit8:1;\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit9:1;\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit10:1;\ \ \ \ \textcolor{keywordtype}{unsigned}\ bit11:1;}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00088}00088\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit12:1;\ \ \ \ \textcolor{keywordtype}{unsigned}\ bit13:1;\ \ \ \ \textcolor{keywordtype}{unsigned}\ bit14:1;\ \ \ \ \textcolor{keywordtype}{unsigned}\ bit15:1;}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00089}00089\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit16:1;\ \ \ \ \textcolor{keywordtype}{unsigned}\ bit17:1;\ \ \ \ \textcolor{keywordtype}{unsigned}\ bit18:1;\ \ \ \ \textcolor{keywordtype}{unsigned}\ bit19:1;}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00090}00090\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit20:1;\ \ \ \ \textcolor{keywordtype}{unsigned}\ bit21:1;\ \ \ \ \textcolor{keywordtype}{unsigned}\ bit22:1;\ \ \ \ \textcolor{keywordtype}{unsigned}\ bit23:1;}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00091}00091\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit24:1;\ \ \ \ \textcolor{keywordtype}{unsigned}\ bit25:1;\ \ \ \ \textcolor{keywordtype}{unsigned}\ bit26:1;\ \ \ \ \textcolor{keywordtype}{unsigned}\ bit27:1;}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00092}00092\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit28:1;\ \ \ \ \textcolor{keywordtype}{unsigned}\ bit29:1;\ \ \ \ \textcolor{keywordtype}{unsigned}\ bit30:1;\ \ \ \ \textcolor{keywordtype}{unsigned}\ bit31:1;}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00093}00093\ \ \ \}bit;}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00094}00094\ \}\mbox{\hyperlink{unionuint32___bit_type_def}{uint32\_BitTypeDef}};}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00095}00095\ }
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00096}00096\ }
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00097}\mbox{\hyperlink{unionuint64___bit_type_def}{00097}}\ \textcolor{keyword}{typedef}\ \textcolor{keyword}{union}}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00098}00098\ \{}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00099}00099\ \ \ uint64\_t\ all;}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00100}00100\ \ \ \textcolor{keyword}{struct}}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00101}00101\ \ \ \{}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00102}00102\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit0:1;\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit1:1;\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit2:1;\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit3:1;}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00103}00103\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit4:1;\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit5:1;\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit6:1;\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit7:1;}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00104}00104\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit8:1;\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit9:1;\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit10:1;\ \ \ \ \textcolor{keywordtype}{unsigned}\ bit11:1;}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00105}00105\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit12:1;\ \ \ \ \textcolor{keywordtype}{unsigned}\ bit13:1;\ \ \ \ \textcolor{keywordtype}{unsigned}\ bit14:1;\ \ \ \ \textcolor{keywordtype}{unsigned}\ bit15:1;}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00106}00106\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit16:1;\ \ \ \ \textcolor{keywordtype}{unsigned}\ bit17:1;\ \ \ \ \textcolor{keywordtype}{unsigned}\ bit18:1;\ \ \ \ \textcolor{keywordtype}{unsigned}\ bit19:1;}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00107}00107\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit20:1;\ \ \ \ \textcolor{keywordtype}{unsigned}\ bit21:1;\ \ \ \ \textcolor{keywordtype}{unsigned}\ bit22:1;\ \ \ \ \textcolor{keywordtype}{unsigned}\ bit23:1;}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00108}00108\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit24:1;\ \ \ \ \textcolor{keywordtype}{unsigned}\ bit25:1;\ \ \ \ \textcolor{keywordtype}{unsigned}\ bit26:1;\ \ \ \ \textcolor{keywordtype}{unsigned}\ bit27:1;}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00109}00109\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit28:1;\ \ \ \ \textcolor{keywordtype}{unsigned}\ bit29:1;\ \ \ \ \textcolor{keywordtype}{unsigned}\ bit30:1;\ \ \ \ \textcolor{keywordtype}{unsigned}\ bit31:1;}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00110}00110\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit32:1;\ \ \ \ \textcolor{keywordtype}{unsigned}\ bit33:1;\ \ \ \ \textcolor{keywordtype}{unsigned}\ bit34:1;\ \ \ \ \textcolor{keywordtype}{unsigned}\ bit35:1;}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00111}00111\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit36:1;\ \ \ \ \textcolor{keywordtype}{unsigned}\ bit37:1;\ \ \ \ \textcolor{keywordtype}{unsigned}\ bit38:1;\ \ \ \ \textcolor{keywordtype}{unsigned}\ bit39:1;}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00112}00112\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit40:1;\ \ \ \ \textcolor{keywordtype}{unsigned}\ bit41:1;\ \ \ \ \textcolor{keywordtype}{unsigned}\ bit42:1;\ \ \ \ \textcolor{keywordtype}{unsigned}\ bit43:1;}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00113}00113\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit44:1;\ \ \ \ \textcolor{keywordtype}{unsigned}\ bit45:1;\ \ \ \ \textcolor{keywordtype}{unsigned}\ bit46:1;\ \ \ \ \textcolor{keywordtype}{unsigned}\ bit47:1;}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00114}00114\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit48:1;\ \ \ \ \textcolor{keywordtype}{unsigned}\ bit49:1;\ \ \ \ \textcolor{keywordtype}{unsigned}\ bit50:1;\ \ \ \ \textcolor{keywordtype}{unsigned}\ bit51:1;}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00115}00115\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit52:1;\ \ \ \ \textcolor{keywordtype}{unsigned}\ bit53:1;\ \ \ \ \textcolor{keywordtype}{unsigned}\ bit54:1;\ \ \ \ \textcolor{keywordtype}{unsigned}\ bit55:1;}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00116}00116\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit56:1;\ \ \ \ \textcolor{keywordtype}{unsigned}\ bit57:1;\ \ \ \ \textcolor{keywordtype}{unsigned}\ bit58:1;\ \ \ \ \textcolor{keywordtype}{unsigned}\ bit59:1;}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00117}00117\ \ \ \ \ \textcolor{keywordtype}{unsigned}\ bit60:1;\ \ \ \ \textcolor{keywordtype}{unsigned}\ bit61:1;\ \ \ \ \textcolor{keywordtype}{unsigned}\ bit62:1;\ \ \ \ \textcolor{keywordtype}{unsigned}\ bit63:1;}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00118}00118\ \ \ \}bit;}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00119}00119\ \}\mbox{\hyperlink{unionuint64___bit_type_def}{uint64\_BitTypeDef}};}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00120}00120\ }
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00121}00121\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00122}00122\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00123}00123\ \textcolor{comment}{\ \ *\ @brief\ Получить\ n-\/й\ бит\ из\ uint8\_t}}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00124}00124\ \textcolor{comment}{\ \ *\ @param\ \_uint8\_\ Переменная\ типа\ uint8\_t}}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00125}00125\ \textcolor{comment}{\ \ *\ @param\ \_bit\_\ \ \ Константный\ номер\ бита\ (0..7)}}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00126}00126\ \textcolor{comment}{\ \ *\ @return\ Значение\ выбранного\ бита\ (0\ или\ 1)}}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00127}00127\ \textcolor{comment}{\ \ *\ @note\ \ \ \ Индекс\ бита\ должен\ быть\ известен\ на\ этапе\ компиляции!}}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00128}00128\ \textcolor{comment}{\ \ */}}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00129}\mbox{\hyperlink{group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s_ga57dc3bb3472a66fc92312f89d42d2396}{00129}}\ \textcolor{preprocessor}{\#define\ uint8\_bit(\_uint8\_,\ \_bit\_)\ \ \ \ \ \ \ (*(uint8\_BitTypeDef\ *)(\&(\_uint8\_))).bit.bit\#\#\_bit\_}\textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00130}00130\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00131}00131\ \textcolor{comment}{\ \ *\ @brief\ Получить\ n-\/й\ бит\ из\ uint16\_t}}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00132}00132\ \textcolor{comment}{\ \ *\ @param\ \_uint16\_\ Переменная\ типа\ uint16\_t}}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00133}00133\ \textcolor{comment}{\ \ *\ @param\ \_bit\_\ \ \ \ Константный\ номер\ бита\ (0..15)}}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00134}00134\ \textcolor{comment}{\ \ *\ @return\ Значение\ выбранного\ бита\ (0\ или\ 1)}}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00135}00135\ \textcolor{comment}{\ \ *\ @note\ \ \ \ Индекс\ бита\ должен\ быть\ известен\ на\ этапе\ компиляции!}}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00136}00136\ \textcolor{comment}{\ \ */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00137}\mbox{\hyperlink{group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s_ga6a122b536ad99ae611c8cf01437af086}{00137}}\ \textcolor{preprocessor}{\#define\ uint16\_bit(\_uint8\_,\ \_bit\_)\ \ \ \ \ \ (*(uint16\_BitTypeDef\ *)(\&(\_uint8\_))).bit.bit\#\#\_bit\_}\textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00138}00138\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00139}00139\ \textcolor{comment}{\ \ *\ @brief\ Получить\ n-\/й\ бит\ из\ uint32\_t}}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00140}00140\ \textcolor{comment}{\ \ *\ @param\ \_uint32\_\ Переменная\ типа\ uint32\_t}}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00141}00141\ \textcolor{comment}{\ \ *\ @param\ \_bit\_\ \ \ \ Константный\ номер\ бита\ (0..31)}}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00142}00142\ \textcolor{comment}{\ \ *\ @return\ Значение\ выбранного\ бита\ (0\ или\ 1)}}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00143}00143\ \textcolor{comment}{\ \ *\ @note\ \ \ \ Индекс\ бита\ должен\ быть\ известен\ на\ этапе\ компиляции!}}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00144}00144\ \textcolor{comment}{\ \ */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00145}\mbox{\hyperlink{group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s_gafaa2080168b1b6f7281e8bfabab022d1}{00145}}\ \textcolor{preprocessor}{\#define\ uint32\_bit(\_uint8\_,\ \_bit\_)\ \ \ \ \ \ (*(uint32\_BitTypeDef\ *)(\&(\_uint8\_))).bit.bit\#\#\_bit\_}\textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00146}00146\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00147}00147\ \textcolor{comment}{\ \ *\ @brief\ Получить\ n-\/й\ бит\ из\ uint64\_t}}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00148}00148\ \textcolor{comment}{\ \ *\ @param\ \_uint64\_\ Переменная\ типа\ uint64\_t}}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00149}00149\ \textcolor{comment}{\ \ *\ @param\ \_bit\_\ \ \ \ Константный\ номер\ бита\ (0..63)}}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00150}00150\ \textcolor{comment}{\ \ *\ @return\ Значение\ выбранного\ бита\ (0\ или\ 1)}}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00151}00151\ \textcolor{comment}{\ \ *\ @note\ \ \ \ Индекс\ бита\ должен\ быть\ известен\ на\ этапе\ компиляции!}}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00152}00152\ \textcolor{comment}{\ \ */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00153}\mbox{\hyperlink{group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s_ga47eb69ce9330a1c73fe8031240f02f0a}{00153}}\ \textcolor{preprocessor}{\#define\ uint64\_bit(\_uint8\_,\ \_bit\_)\ \ \ \ \ \ (*(uint64\_BitTypeDef\ *)(\&(\_uint8\_))).bit.bit\#\#\_bit\_}}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00154}00154\ }
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00155}00155\ \textcolor{preprocessor}{\#endif\ }\textcolor{comment}{//\_\_BIT\_ACCESS\_H\_\ }}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00156}00156\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00157}00157\ \textcolor{comment}{/**\ BIT\_ACCESS\_DEFINES}}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00158}00158\ \textcolor{comment}{\ \ *\ @\}}}
\DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00159}00159\ \textcolor{comment}{\ \ */}}
\end{DoxyCode}

View File

@@ -0,0 +1,745 @@
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{doxygen}
% Packages used by this style file
\RequirePackage{alltt}
%%\RequirePackage{array} %% moved to refman.tex due to workaround for LaTex 2019 version and unmaintained tabu package
\RequirePackage{calc}
\RequirePackage{float}
%%\RequirePackage{ifthen} %% moved to refman.tex due to workaround for LaTex 2019 version and unmaintained tabu package
\RequirePackage{verbatim}
\RequirePackage[table]{xcolor}
\RequirePackage{longtable_doxygen}
\RequirePackage{tabu_doxygen}
\RequirePackage{fancyvrb}
\RequirePackage{tabularx}
\RequirePackage{multicol}
\RequirePackage{multirow}
\RequirePackage{hanging}
\RequirePackage{ifpdf}
\RequirePackage{adjustbox}
\RequirePackage{amssymb}
\RequirePackage{stackengine}
\RequirePackage{enumitem}
\RequirePackage{alphalph}
\RequirePackage[normalem]{ulem} % for strikeout, but don't modify emphasis
%---------- Internal commands used in this style file ----------------
\newcommand{\ensurespace}[1]{%
\begingroup%
\setlength{\dimen@}{#1}%
\vskip\z@\@plus\dimen@%
\penalty -100\vskip\z@\@plus -\dimen@%
\vskip\dimen@%
\penalty 9999%
\vskip -\dimen@%
\vskip\z@skip% hide the previous |\vskip| from |\addvspace|
\endgroup%
}
\newcommand{\DoxyHorRuler}[1]{%
\setlength{\parskip}{0ex plus 0ex minus 0ex}%
\ifthenelse{#1=0}%
{%
\hrule%
}%
{%
\hrulefilll%
}%
}
\newcommand{\DoxyLabelFont}{}
\newcommand{\entrylabel}[1]{%
{%
\parbox[b]{\labelwidth-4pt}{%
\makebox[0pt][l]{\DoxyLabelFont#1}%
\vspace{1.5\baselineskip}%
}%
}%
}
\newenvironment{DoxyDesc}[1]{%
\ensurespace{4\baselineskip}%
\begin{list}{}{%
\settowidth{\labelwidth}{20pt}%
%\setlength{\parsep}{0pt}%
\setlength{\itemsep}{0pt}%
\setlength{\leftmargin}{\labelwidth+\labelsep}%
\renewcommand{\makelabel}{\entrylabel}%
}%
\item[#1]%
}{%
\end{list}%
}
\newsavebox{\xrefbox}
\newlength{\xreflength}
\newcommand{\xreflabel}[1]{%
\sbox{\xrefbox}{#1}%
\setlength{\xreflength}{\wd\xrefbox}%
\ifthenelse{\xreflength>\labelwidth}{%
\begin{minipage}{\textwidth}%
\setlength{\parindent}{0pt}%
\hangindent=15pt\bfseries #1\vspace{1.2\itemsep}%
\end{minipage}%
}{%
\parbox[b]{\labelwidth}{\makebox[0pt][l]{\textbf{#1}}}%
}%
}
%---------- Commands used by doxygen LaTeX output generator ----------
% Used by <pre> ... </pre>
\newenvironment{DoxyPre}{%
\small%
\begin{alltt}%
}{%
\end{alltt}%
\normalsize%
}
% Necessary for redefining not defined characters, i.e. "Replacement Character" in tex output.
\newlength{\CodeWidthChar}
\newlength{\CodeHeightChar}
\settowidth{\CodeWidthChar}{?}
\settoheight{\CodeHeightChar}{?}
% Necessary for hanging indent
\newlength{\DoxyCodeWidth}
\newcommand\DoxyCodeLine[1]{
\ifthenelse{\equal{\detokenize{#1}}{}}
{
\vspace*{\baselineskip}
}
{
\hangpara{\DoxyCodeWidth}{1}{#1}\par
}
}
\newcommand\NiceSpace{%
\discretionary{}{\kern\fontdimen2\font}{\kern\fontdimen2\font}%
}
% Used by @code ... @endcode
\newenvironment{DoxyCode}[1]{%
\par%
\vspace{2pt}%
\scriptsize%
\normalfont\ttfamily%
\rightskip0pt plus 1fil%
\settowidth{\DoxyCodeWidth}{000000}%
\settowidth{\CodeWidthChar}{?}%
\settoheight{\CodeHeightChar}{?}%
\setlength{\parskip}{0ex plus 0ex minus 0ex}%
\ifthenelse{\equal{#1}{0}}%
{%
{\lccode`~32 \lowercase{\global\let~}\NiceSpace}\obeyspaces%
}%
{%
{\lccode`~32 \lowercase{\global\let~}}\obeyspaces%
}%
\vspace{2pt}%
}{%
\normalfont%
\normalsize%
\settowidth{\CodeWidthChar}{?}%
\settoheight{\CodeHeightChar}{?}%
}
% Redefining not defined characters, i.e. "Replacement Character" in tex output.
\def\ucr{\adjustbox{width=\CodeWidthChar,height=\CodeHeightChar}{\stackinset{c}{}{c}{-.2pt}{%
\textcolor{white}{\sffamily\bfseries\small ?}}{%
\rotatebox{45}{$\blacksquare$}}}}
% Used by @example, @include, @includelineno and @dontinclude
\newenvironment{DoxyCodeInclude}[1]{%
\DoxyCode{#1}%
}{%
\endDoxyCode%
}
% Used by @verbatim ... @endverbatim
\newenvironment{DoxyVerb}{%
\par%
\footnotesize%
\verbatim%
}{%
\endverbatim%
\normalsize%
}
% Used by @verbinclude
\newenvironment{DoxyVerbInclude}{%
\DoxyVerb%
}{%
\endDoxyVerb%
}
% Used by numbered lists (using '-#' or <ol> ... </ol>)
\setlistdepth{12}
\newlist{DoxyEnumerate}{enumerate}{12}
\setlist[DoxyEnumerate,1]{label=\arabic*.}
\setlist[DoxyEnumerate,2]{label=(\enumalphalphcnt*)}
\setlist[DoxyEnumerate,3]{label=\roman*.}
\setlist[DoxyEnumerate,4]{label=\enumAlphAlphcnt*.}
\setlist[DoxyEnumerate,5]{label=\arabic*.}
\setlist[DoxyEnumerate,6]{label=(\enumalphalphcnt*)}
\setlist[DoxyEnumerate,7]{label=\roman*.}
\setlist[DoxyEnumerate,8]{label=\enumAlphAlphcnt*.}
\setlist[DoxyEnumerate,9]{label=\arabic*.}
\setlist[DoxyEnumerate,10]{label=(\enumalphalphcnt*)}
\setlist[DoxyEnumerate,11]{label=\roman*.}
\setlist[DoxyEnumerate,12]{label=\enumAlphAlphcnt*.}
% Used by bullet lists (using '-', @li, @arg, or <ul> ... </ul>)
\setlistdepth{12}
\newlist{DoxyItemize}{itemize}{12}
\setlist[DoxyItemize]{label=\textperiodcentered}
\setlist[DoxyItemize,1]{label=\textbullet}
\setlist[DoxyItemize,2]{label=\normalfont\bfseries \textendash}
\setlist[DoxyItemize,3]{label=\textasteriskcentered}
\setlist[DoxyItemize,4]{label=\textperiodcentered}
% Used for check boxes
\newcommand{\DoxyUnchecked}{$\square$}
\newcommand{\DoxyChecked}{\rlap{\raisebox{0.3ex}{\hspace{0.4ex}\tiny \checkmark}}$\square$}
% Used by description lists (using <dl> ... </dl>)
\newenvironment{DoxyDescription}{%
\description%
}{%
\enddescription%
}
% Used by @image, @dotfile, @dot ... @enddot, and @msc ... @endmsc
% (only if caption is specified)
\newenvironment{DoxyImage}{%
\begin{figure}[H]%
\centering%
}{%
\end{figure}%
}
% Used by @image, @dotfile, @dot ... @enddot, and @msc ... @endmsc
% (only if no caption is specified)
\newenvironment{DoxyImageNoCaption}{%
\begin{center}%
}{%
\end{center}%
}
% Used by @image
% (only if inline is specified)
\newenvironment{DoxyInlineImage}{%
}{%
}
% Used by @attention
\newenvironment{DoxyAttention}[1]{%
\begin{DoxyDesc}{#1}%
}{%
\end{DoxyDesc}%
}
% Used by @important
\newenvironment{DoxyImportant}[1]{%
\begin{DoxyDesc}{#1}%
}{%
\end{DoxyDesc}%
}
% Used by @author and @authors
\newenvironment{DoxyAuthor}[1]{%
\begin{DoxyDesc}{#1}%
}{%
\end{DoxyDesc}%
}
% Used by @date
\newenvironment{DoxyDate}[1]{%
\begin{DoxyDesc}{#1}%
}{%
\end{DoxyDesc}%
}
% Used by @invariant
\newenvironment{DoxyInvariant}[1]{%
\begin{DoxyDesc}{#1}%
}{%
\end{DoxyDesc}%
}
% Used by @note
\newenvironment{DoxyNote}[1]{%
\begin{DoxyDesc}{#1}%
}{%
\end{DoxyDesc}%
}
% Used by @post
\newenvironment{DoxyPostcond}[1]{%
\begin{DoxyDesc}{#1}%
}{%
\end{DoxyDesc}%
}
% Used by @pre
\newenvironment{DoxyPrecond}[1]{%
\begin{DoxyDesc}{#1}%
}{%
\end{DoxyDesc}%
}
% Used by @copyright
\newenvironment{DoxyCopyright}[1]{%
\begin{DoxyDesc}{#1}%
}{%
\end{DoxyDesc}%
}
% Used by @remark
\newenvironment{DoxyRemark}[1]{%
\begin{DoxyDesc}{#1}%
}{%
\end{DoxyDesc}%
}
% Used by @return and @returns
\newenvironment{DoxyReturn}[1]{%
\begin{DoxyDesc}{#1}%
}{%
\end{DoxyDesc}%
}
% Used by @since
\newenvironment{DoxySince}[1]{%
\begin{DoxyDesc}{#1}%
}{%
\end{DoxyDesc}%
}
% Used by @see
\newenvironment{DoxySeeAlso}[1]{%
\begin{DoxyDesc}{#1}%
}{%
\end{DoxyDesc}%
}
% Used by @version
\newenvironment{DoxyVersion}[1]{%
\begin{DoxyDesc}{#1}%
}{%
\end{DoxyDesc}%
}
% Used by @warning
\newenvironment{DoxyWarning}[1]{%
\begin{DoxyDesc}{#1}%
}{%
\end{DoxyDesc}%
}
% Used by @par and @paragraph
\newenvironment{DoxyParagraph}[1]{%
\begin{DoxyDesc}{#1}%
}{%
\end{DoxyDesc}%
}
% Used by parameter lists
\newenvironment{DoxyParams}[2][]{%
\tabulinesep=1mm%
\par%
\ifthenelse{\equal{#1}{}}%
{\begin{longtabu*}spread 0pt [l]{|X[-1,l]|X[-1,l]|}}% name + description
{\ifthenelse{\equal{#1}{1}}%
{\begin{longtabu*}spread 0pt [l]{|X[-1,l]|X[-1,l]|X[-1,l]|}}% in/out + name + desc
{\begin{longtabu*}spread 0pt [l]{|X[-1,l]|X[-1,l]|X[-1,l]|X[-1,l]|}}% in/out + type + name + desc
}
\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #2}\\[1ex]%
\hline%
\endfirsthead%
\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #2}\\[1ex]%
\hline%
\endhead%
}{%
\end{longtabu*}%
\vspace{6pt}%
}
% Used for fields of simple structs
\newenvironment{DoxyFields}[1]{%
\tabulinesep=1mm%
\par%
\begin{longtabu*}spread 0pt [l]{|X[-1,r]|X[-1,l]|X[-1,l]|}%
\multicolumn{3}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
\hline%
\endfirsthead%
\multicolumn{3}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
\hline%
\endhead%
}{%
\end{longtabu*}%
\vspace{6pt}%
}
% Used for fields simple class style enums
\newenvironment{DoxyEnumFields}[2][]{%
\tabulinesep=1mm%
\par%
\ifthenelse{\equal{#1}{2}}%
{\begin{longtabu*}spread 0pt [l]{|X[-1,r]|X[-1,l]|}}%
{\begin{longtabu*}spread 0pt [l]{|X[-1,l]|X[-1,r]|X[-1,l]|}}% with init value
\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #2}\\[1ex]%
\hline%
\endfirsthead%
\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #2}\\[1ex]%
\hline%
\endhead%
}{%
\end{longtabu*}%
\vspace{6pt}%
}
% Used for parameters within a detailed function description
\newenvironment{DoxyParamCaption}{%
\renewcommand{\item}[3][]{\\ \hspace*{2.0cm} ##1 {\em ##2}##3}%
}{%
}
% Used by return value lists
\newenvironment{DoxyRetVals}[1]{%
\tabulinesep=1mm%
\par%
\begin{longtabu*}spread 0pt [l]{|X[-1,r]|X[-1,l]|}%
\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
\hline%
\endfirsthead%
\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
\hline%
\endhead%
}{%
\end{longtabu*}%
\vspace{6pt}%
}
% Used by exception lists
\newenvironment{DoxyExceptions}[1]{%
\tabulinesep=1mm%
\par%
\begin{longtabu*}spread 0pt [l]{|X[-1,r]|X[-1,l]|}%
\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
\hline%
\endfirsthead%
\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
\hline%
\endhead%
}{%
\end{longtabu*}%
\vspace{6pt}%
}
% Used by template parameter lists
\newenvironment{DoxyTemplParams}[1]{%
\tabulinesep=1mm%
\par%
\begin{longtabu*}spread 0pt [l]{|X[-1,r]|X[-1,l]|}%
\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
\hline%
\endfirsthead%
\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
\hline%
\endhead%
}{%
\end{longtabu*}%
\vspace{6pt}%
}
% Used for member lists
\newenvironment{DoxyCompactItemize}{%
\begin{itemize}%
\setlength{\itemsep}{-3pt}%
\setlength{\parsep}{0pt}%
\setlength{\topsep}{0pt}%
\setlength{\partopsep}{0pt}%
}{%
\end{itemize}%
}
% Used for member descriptions
\newenvironment{DoxyCompactList}{%
\begin{list}{}{%
\setlength{\leftmargin}{0.5cm}%
\setlength{\itemsep}{0pt}%
\setlength{\parsep}{0pt}%
\setlength{\topsep}{0pt}%
\renewcommand{\makelabel}{\hfill}%
}%
}{%
\end{list}%
}
% Used for reference lists (@bug, @deprecated, @todo, etc.)
\newenvironment{DoxyRefList}{%
\begin{list}{}{%
\setlength{\labelwidth}{10pt}%
\setlength{\leftmargin}{\labelwidth}%
\addtolength{\leftmargin}{\labelsep}%
\renewcommand{\makelabel}{\xreflabel}%
}%
}{%
\end{list}%
}
% Used by @bug, @deprecated, @todo, etc.
\newenvironment{DoxyRefDesc}[1]{%
\begin{list}{}{%
\renewcommand\makelabel[1]{\textbf{##1}}%
\settowidth\labelwidth{\makelabel{#1}}%
\setlength\leftmargin{\labelwidth+\labelsep}%
}%
}{%
\end{list}%
}
% Used by parameter lists and simple sections
\newenvironment{Desc}
{\begin{list}{}{%
\settowidth{\labelwidth}{20pt}%
\setlength{\parsep}{0pt}%
\setlength{\itemsep}{0pt}%
\setlength{\leftmargin}{\labelwidth+\labelsep}%
\renewcommand{\makelabel}{\entrylabel}%
}
}{%
\end{list}%
}
% Used by tables
\newcommand{\PBS}[1]{\let\temp=\\#1\let\\=\temp}%
\newenvironment{TabularC}[1]%
{\tabulinesep=1mm
\begin{longtabu*}spread 0pt [c]{*#1{|X[-1]}|}}%
{\end{longtabu*}\par}%
\newenvironment{TabularNC}[1]%
{\begin{tabu}spread 0pt [l]{*#1{|X[-1]}|}}%
{\end{tabu}\par}%
% Used for member group headers
\newenvironment{Indent}{%
\begin{list}{}{%
\setlength{\leftmargin}{0.5cm}%
}%
\item[]\ignorespaces%
}{%
\unskip%
\end{list}%
}
% Used when hyperlinks are turned on
\newcommand{\doxylink}[2]{%
\mbox{\hyperlink{#1}{#2}}%
}
% Used for the cite command
\newcommand{\DoxyCite}[3]{%
\ifthenelse{#3=1}% 1 with square parenthesis
{
\ifthenelse{\equal{#2}{number}}%
{ \cite{#1} }%
{%
\ifthenelse{\equal{#2}{shortauthor}}%
{ \citetext{\citeauthor{#1}} }%
{%
\ifthenelse{\equal{#2}{year}}%
{ \citeyearpar{#1} }%
{}%
}%
}%
}%
{%
\ifthenelse{\equal{#2}{number}}%
{ \citealp{#1} }%
{%
\ifthenelse{\equal{#2}{shortauthor}}%
{ \citeauthor{#1} }%
{%
\ifthenelse{\equal{#2}{year}}%
{ \citeyear{#1} }%
{}%
}%
}%
}%
}
% Used when hyperlinks are turned on
% Third argument is the SectionType, see the doxygen internal
% documentation for the values (relevant: Page ... Subsubsection).
\newcommand{\doxysectlink}[3]{%
\mbox{\hyperlink{#1}{#2}}%
}
% Used when hyperlinks are turned off
\newcommand{\doxyref}[3]{%
\textbf{#1} (\textnormal{#2}\,\pageref{#3})%
}
% Used when hyperlinks are turned off
% Fourth argument is the SectionType, see the doxygen internal
% documentation for the values (relevant: Page ... Subsubsection).
\newcommand{\doxysectref}[4]{%
\textbf{#1} (\textnormal{#2}\,\pageref{#3})%
}
% Used to link to a table when hyperlinks are turned on
\newcommand{\doxytablelink}[2]{%
\ref{#1}%
}
% Used to link to a table when hyperlinks are turned off
\newcommand{\doxytableref}[3]{%
\ref{#3}%
}
% Used by @addindex
\newcommand{\lcurly}{\{}
\newcommand{\rcurly}{\}}
% Colors used for syntax highlighting
\definecolor{comment}{rgb}{0.5,0.0,0.0}
\definecolor{keyword}{rgb}{0.0,0.5,0.0}
\definecolor{keywordtype}{rgb}{0.38,0.25,0.125}
\definecolor{keywordflow}{rgb}{0.88,0.5,0.0}
\definecolor{preprocessor}{rgb}{0.5,0.38,0.125}
\definecolor{stringliteral}{rgb}{0.0,0.125,0.25}
\definecolor{charliteral}{rgb}{0.0,0.5,0.5}
\definecolor{xmlcdata}{rgb}{0.0,0.0,0.0}
\definecolor{vhdldigit}{rgb}{1.0,0.0,1.0}
\definecolor{vhdlkeyword}{rgb}{0.43,0.0,0.43}
\definecolor{vhdllogic}{rgb}{1.0,0.0,0.0}
\definecolor{vhdlchar}{rgb}{0.0,0.0,0.0}
% Color used for table heading
\newcommand{\tableheadbgcolor}{lightgray}%
% Version of hypertarget with correct landing location
\newcommand{\Hypertarget}[1]{\Hy@raisedlink{\hypertarget{#1}{}}}
% possibility to have sections etc. be within the margins
% unfortunately had to copy part of book.cls and add \raggedright
\makeatletter
\newcounter{subsubsubsection}[subsubsection]
\newcounter{subsubsubsubsection}[subsubsubsection]
\newcounter{subsubsubsubsubsection}[subsubsubsubsection]
\newcounter{subsubsubsubsubsubsection}[subsubsubsubsubsection]
\renewcommand{\thesubsubsubsection}{\thesubsubsection.\arabic{subsubsubsection}}
\renewcommand{\thesubsubsubsubsection}{\thesubsubsubsection.\arabic{subsubsubsubsection}}
\renewcommand{\thesubsubsubsubsubsection}{\thesubsubsubsubsection.\arabic{subsubsubsubsubsection}}
\renewcommand{\thesubsubsubsubsubsubsection}{\thesubsubsubsubsubsection.\arabic{subsubsubsubsubsubsection}}
\newcommand{\subsubsubsectionmark}[1]{}
\newcommand{\subsubsubsubsectionmark}[1]{}
\newcommand{\subsubsubsubsubsectionmark}[1]{}
\newcommand{\subsubsubsubsubsubsectionmark}[1]{}
\def\toclevel@subsubsubsection{4}
\def\toclevel@subsubsubsubsection{5}
\def\toclevel@subsubsubsubsubsection{6}
\def\toclevel@subsubsubsubsubsubsection{7}
\def\toclevel@paragraph{8}
\def\toclevel@subparagraph{9}
\newcommand\doxysection{\@startsection {section}{1}{\z@}%
{-3.5ex \@plus -1ex \@minus -.2ex}%
{2.3ex \@plus.2ex}%
{\raggedright\normalfont\Large\bfseries}}
\newcommand\doxysubsection{\@startsection{subsection}{2}{\z@}%
{-3.25ex\@plus -1ex \@minus -.2ex}%
{1.5ex \@plus .2ex}%
{\raggedright\normalfont\large\bfseries}}
\newcommand\doxysubsubsection{\@startsection{subsubsection}{3}{\z@}%
{-3.25ex\@plus -1ex \@minus -.2ex}%
{1.5ex \@plus .2ex}%
{\raggedright\normalfont\normalsize\bfseries}}
\newcommand\doxysubsubsubsection{\@startsection{subsubsubsection}{4}{\z@}%
{-3.25ex\@plus -1ex \@minus -.2ex}%
{1.5ex \@plus .2ex}%
{\raggedright\normalfont\normalsize\bfseries}}
\newcommand\doxysubsubsubsubsection{\@startsection{subsubsubsubsection}{5}{\z@}%
{-3.25ex\@plus -1ex \@minus -.2ex}%
{1.5ex \@plus .2ex}%
{\raggedright\normalfont\normalsize\bfseries}}
\newcommand\doxysubsubsubsubsubsection{\@startsection{subsubsubsubsubsection}{6}{\z@}%
{-3.25ex\@plus -1ex \@minus -.2ex}%
{1.5ex \@plus .2ex}%
{\raggedright\normalfont\normalsize\bfseries}}
\newcommand\doxysubsubsubsubsubsubsection{\@startsection{subsubsubsubsubsubsection}{7}{\z@}%
{-3.25ex\@plus -1ex \@minus -.2ex}%
{1.5ex \@plus .2ex}%
{\raggedright\normalfont\normalsize\bfseries}}
\newcommand\doxyparagraph{\@startsection{paragraph}{8}{\z@}%
{-3.25ex\@plus -1ex \@minus -.2ex}%
{1.5ex \@plus .2ex}%
{\raggedright\normalfont\normalsize\bfseries}}
\newcommand\doxysubparagraph{\@startsection{subparagraph}{9}{\parindent}%
{-3.25ex\@plus -1ex \@minus -.2ex}%
{1.5ex \@plus .2ex}%
{\raggedright\normalfont\normalsize\bfseries}}
\newcommand\l@subsubsubsection{\@dottedtocline{4}{10.0em}{7.8em}}
\newcommand\l@subsubsubsubsection{\@dottedtocline{5}{13.0em}{9.4em}}
\newcommand\l@subsubsubsubsubsection{\@dottedtocline{6}{15.0em}{11em}}
\newcommand\l@subsubsubsubsubsubsection{\@dottedtocline{7}{18.0em}{12.6em}}
\renewcommand\l@paragraph{\@dottedtocline{8}{21.0em}{14.2em}}
\renewcommand\l@subparagraph{\@dottedtocline{9}{24.0em}{15.8em}}
\makeatother
% the sectsty doesn't look to be maintained but gives, in our case, some warning like:
% LaTeX Warning: Command \underline has changed.
% Check if current package is valid.
% unfortunately had to copy the relevant part
\newcommand*{\doxypartfont} [1]
{\gdef\SS@partnumberfont{\SS@sectid{0}\SS@nopart\SS@makeulinepartchap#1}
\gdef\SS@parttitlefont{\SS@sectid{0}\SS@titlepart\SS@makeulinepartchap#1}}
\newcommand*{\doxychapterfont} [1]
{\gdef\SS@chapnumfont{\SS@sectid{1}\SS@nopart\SS@makeulinepartchap#1}
\gdef\SS@chaptitlefont{\SS@sectid{1}\SS@titlepart\SS@makeulinepartchap#1}}
\newcommand*{\doxysectionfont} [1]
{\gdef\SS@sectfont{\SS@sectid{2}\SS@rr\SS@makeulinesect#1}}
\newcommand*{\doxysubsectionfont} [1]
{\gdef\SS@subsectfont{\SS@sectid{3}\SS@rr\SS@makeulinesect#1}}
\newcommand*{\doxysubsubsectionfont} [1]
{\gdef\SS@subsubsectfont{\SS@sectid{4}\SS@rr\SS@makeulinesect#1}}
\newcommand*{\doxyparagraphfont} [1]
{\gdef\SS@parafont{\SS@sectid{5}\SS@rr\SS@makeulinesect#1}}
\newcommand*{\doxysubparagraphfont} [1]
{\gdef\SS@subparafont{\SS@sectid{6}\SS@rr\SS@makeulinesect#1}}
\newcommand*{\doxyminisecfont} [1]
{\gdef\SS@minisecfont{\SS@sectid{7}\SS@rr\SS@makeulinepartchap#1}}
\newcommand*{\doxyallsectionsfont} [1] {\doxypartfont{#1}%
\doxychapterfont{#1}%
\doxysectionfont{#1}%
\doxysubsectionfont{#1}%
\doxysubsubsectionfont{#1}%
\doxyparagraphfont{#1}%
\doxysubparagraphfont{#1}%
\doxyminisecfont{#1}}%
% Define caption that is also suitable in a table
% for usage with hyperlinks
\makeatletter
\def\doxyfigcaption{%
\H@refstepcounter{figure}%
\@dblarg{\@caption{figure}}}
% for usage without hyperlinks
\def\doxyfigcaptionnolink{%
\refstepcounter{figure}%
\@dblarg{\@caption{figure}}}
\makeatother
% Define alpha enumarative names for counters > 26
\makeatletter
\def\enumalphalphcnt#1{\expandafter\@enumalphalphcnt\csname c@#1\endcsname}
\def\@enumalphalphcnt#1{\alphalph{#1}}
\def\enumAlphAlphcnt#1{\expandafter\@enumAlphAlphcnt\csname c@#1\endcsname}
\def\@enumAlphAlphcnt#1{\AlphAlph{#1}}
\makeatother
\AddEnumerateCounter{\enumalphalphcnt}{\@enumalphalphcnt}{aa}
\AddEnumerateCounter{\enumAlphAlphcnt}{\@enumAlphAlphcnt}{AA}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,16 @@
\doxysection{File List}
Here is a list of all documented files with brief descriptions\+:\begin{DoxyCompactList}
\item\contentsline{section}{E\+:/.\+WORK/\+STM32/\+STM\+\_\+\+Libs/\+STM32\+\_\+\+Extended\+Libs/\mbox{\hyperlink{____mylibs__config_8h_source}{\+\_\+\+\_\+mylibs\+\_\+config.\+h}} }{\pageref{____mylibs__config_8h_source}}{}
\item\contentsline{section}{E\+:/.\+WORK/\+STM32/\+STM\+\_\+\+Libs/\+STM32\+\_\+\+Extended\+Libs/\mbox{\hyperlink{____mylibs__include_8h_source}{\+\_\+\+\_\+mylibs\+\_\+include.\+h}} }{\pageref{____mylibs__include_8h_source}}{}
\item\contentsline{section}{E\+:/.\+WORK/\+STM32/\+STM\+\_\+\+Libs/\+STM32\+\_\+\+Extended\+Libs/\mbox{\hyperlink{_____s_e_g_g_e_r___r_t_t___conf_8h_source}{\+\_\+\+\_\+\+SEGGER\+\_\+\+RTT\+\_\+\+Conf.\+h}} }{\pageref{_____s_e_g_g_e_r___r_t_t___conf_8h_source}}{}
\item\contentsline{section}{E\+:/.\+WORK/\+STM32/\+STM\+\_\+\+Libs/\+STM32\+\_\+\+Extended\+Libs/\+My\+Libs/\+Inc/\mbox{\hyperlink{bench__time_8h}{bench\+\_\+time.\+h}} \\*Заголовочный файл для измерения времени между событиями }{\pageref{bench__time_8h}}{}
\item\contentsline{section}{E\+:/.\+WORK/\+STM32/\+STM\+\_\+\+Libs/\+STM32\+\_\+\+Extended\+Libs/\+My\+Libs/\+Inc/\mbox{\hyperlink{bit__access_8h}{bit\+\_\+access.\+h}} \\*Заголочный файл для дефайнов битового доступа }{\pageref{bit__access_8h}}{}
\item\contentsline{section}{E\+:/.\+WORK/\+STM32/\+STM\+\_\+\+Libs/\+STM32\+\_\+\+Extended\+Libs/\+My\+Libs/\+Inc/\mbox{\hyperlink{gen__optimizer_8h}{gen\+\_\+optimizer.\+h}} \\*Заголовочный файл для адаптивного подбора параметров }{\pageref{gen__optimizer_8h}}{}
\item\contentsline{section}{E\+:/.\+WORK/\+STM32/\+STM\+\_\+\+Libs/\+STM32\+\_\+\+Extended\+Libs/\+My\+Libs/\+Inc/\mbox{\hyperlink{mylibs__defs_8h}{mylibs\+\_\+defs.\+h}} \\*Заголочный файл для дефайнов библиотеки My\+Libs\+General }{\pageref{mylibs__defs_8h}}{}
\item\contentsline{section}{E\+:/.\+WORK/\+STM32/\+STM\+\_\+\+Libs/\+STM32\+\_\+\+Extended\+Libs/\+My\+Libs/\+Inc/\mbox{\hyperlink{trace_8h}{trace.\+h}} \\*Заголочный файл для работы с трассировкой }{\pageref{trace_8h}}{}
\item\contentsline{section}{E\+:/.\+WORK/\+STM32/\+STM\+\_\+\+Libs/\+STM32\+\_\+\+Extended\+Libs/\+My\+Libs/\+Inc/\mbox{\hyperlink{trackers_8h}{trackers.\+h}} \\*Заголочный файл для работы с трекерами \doxylink{group___t_r_a_c_k_e_r_s}{Trackers defines} }{\pageref{trackers_8h}}{}
\item\contentsline{section}{E\+:/.\+WORK/\+STM32/\+STM\+\_\+\+Libs/\+STM32\+\_\+\+Extended\+Libs/\+RTT/\mbox{\hyperlink{_s_e_g_g_e_r___r_t_t_8c_source}{SEGGER\+\_\+\+RTT.\+c}} }{\pageref{_s_e_g_g_e_r___r_t_t_8c_source}}{}
\item\contentsline{section}{E\+:/.\+WORK/\+STM32/\+STM\+\_\+\+Libs/\+STM32\+\_\+\+Extended\+Libs/\+RTT/\mbox{\hyperlink{_s_e_g_g_e_r___r_t_t_8h_source}{SEGGER\+\_\+\+RTT.\+h}} }{\pageref{_s_e_g_g_e_r___r_t_t_8h_source}}{}
\item\contentsline{section}{E\+:/.\+WORK/\+STM32/\+STM\+\_\+\+Libs/\+STM32\+\_\+\+Extended\+Libs/\+RTT/\mbox{\hyperlink{_s_e_g_g_e_r___r_t_t__printf_8c_source}{SEGGER\+\_\+\+RTT\+\_\+printf.\+c}} }{\pageref{_s_e_g_g_e_r___r_t_t__printf_8c_source}}{}
\item\contentsline{section}{E\+:/.\+WORK/\+STM32/\+STM\+\_\+\+Libs/\+STM32\+\_\+\+Extended\+Libs/\+RTT/\mbox{\hyperlink{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source}{SEGGER\+\_\+\+RTT\+\_\+\+Syscalls\+\_\+\+KEIL.\+c}} }{\pageref{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source}}{}
\end{DoxyCompactList}

View File

@@ -0,0 +1,43 @@
\doxysection{E\+:/.WORK/\+STM32/\+STM\+\_\+\+Libs/\+STM32\+\_\+\+Extended\+Libs/\+My\+Libs/\+Inc/gen\+\_\+optimizer.h File Reference}
\hypertarget{gen__optimizer_8h}{}\label{gen__optimizer_8h}\index{E:/.WORK/STM32/STM\_Libs/STM32\_ExtendedLibs/MyLibs/Inc/gen\_optimizer.h@{E:/.WORK/STM32/STM\_Libs/STM32\_ExtendedLibs/MyLibs/Inc/gen\_optimizer.h}}
Заголовочный файл для адаптивного подбора параметров
{\ttfamily \#include "{}mylibs\+\_\+defs.\+h"{}}\newline
{\ttfamily \#include $<$stdint.\+h$>$}\newline
{\ttfamily \#include $<$stdlib.\+h$>$}\newline
Include dependency graph for gen\+\_\+optimizer.\+h\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=293pt]{gen__optimizer_8h__incl}
\end{center}
\end{figure}
\doxysubsubsection*{Classes}
\begin{DoxyCompactItemize}
\item
struct \mbox{\hyperlink{struct_gen_optimizer__t}{Gen\+Optimizer\+\_\+t}}
\end{DoxyCompactItemize}
\doxysubsubsection*{Macros}
\begin{DoxyCompactItemize}
\item
\#define \mbox{\hyperlink{group___g_e_n___o_p_t_i_m_i_z_e_r_ga3e654886869ea8182effbfcb99278670}{Gen\+Optimizer\+\_\+\+Init}}(opt, n\+\_\+params, n\+\_\+cand, n\+\_\+best, mutation\+\_\+amp, start\+\_\+params)
\item
\#define \mbox{\hyperlink{group___g_e_n___o_p_t_i_m_i_z_e_r_ga33bbb9131ac7f94c3731dd4130321885}{Gen\+Optimizer\+\_\+\+Step}}(opt, params, Loss\+Func)
\item
\#define \mbox{\hyperlink{group___g_e_n___o_p_t_i_m_i_z_e_r_ga83abbcabaff9111c03ae2475ee72ea3e}{PARAM\+\_\+\+SCALE}}(x, min\+\_\+val, max\+\_\+val)
\item
\#define \mbox{\hyperlink{group___g_e_n___o_p_t_i_m_i_z_e_r_gaa1d5510fe5f0bd989473f3ebe324bde3}{PARAM\+\_\+\+UNSCALE}}(val, min\+\_\+val, max\+\_\+val)
\end{DoxyCompactItemize}
\doxysubsection{Detailed Description}
Заголовочный файл для адаптивного подбора параметров
Definition in file \mbox{\hyperlink{gen__optimizer_8h_source}{gen\+\_\+optimizer.\+h}}.

View File

@@ -0,0 +1 @@
0a0ba23d15b760cc1639d73ae907a331

Binary file not shown.

View File

@@ -0,0 +1,343 @@
\doxysection{gen\+\_\+optimizer.\+h}
\hypertarget{gen__optimizer_8h_source}{}\label{gen__optimizer_8h_source}\index{E:/.WORK/STM32/STM\_Libs/STM32\_ExtendedLibs/MyLibs/Inc/gen\_optimizer.h@{E:/.WORK/STM32/STM\_Libs/STM32\_ExtendedLibs/MyLibs/Inc/gen\_optimizer.h}}
\mbox{\hyperlink{gen__optimizer_8h}{Go to the documentation of this file.}}
\begin{DoxyCode}{0}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00001}00001\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00002}00002\ \textcolor{comment}{******************************************************************************}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00003}00003\ \textcolor{comment}{*\ @file\ gen\_optimizer.h}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00004}00004\ \textcolor{comment}{*\ @brief\ Заголовочный\ файл\ для\ адаптивного\ подбора\ параметров}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00005}00005\ \textcolor{comment}{******************************************************************************}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00006}00006\ \textcolor{comment}{*\ @addtogroup\ GEN\_OPTIMIZER\ \ \ \ Genetic\ optimizer}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00007}00007\ \textcolor{comment}{*\ @brief\ \ \ \ \ \ Библиотека\ для\ эволюционного\ подбора\ параметров}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00008}00008\ \textcolor{comment}{*\ @details}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00009}00009\ \textcolor{comment}{Поддерживает:}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00010}00010\ \textcolor{comment}{-\/\ Любое\ количество\ параметров}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00011}00011\ \textcolor{comment}{-\/\ Генерацию\ новых\ параметров\ на\ основе\ лучших\ кандидатов}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00012}00012\ \textcolor{comment}{-\/\ Мутацию\ для\ поиска\ оптимальных\ параметров}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00013}00013\ \textcolor{comment}{-\/\ Несколько\ независимых\ оптимизаторов\ в\ одной\ программе}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00014}00014\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00015}00015\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00016}00016\ \textcolor{comment}{Параметры\ для\ конфигурации:}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00017}00017\ \textcolor{comment}{-\/\ @ref\ GEN\_OPTIMIZATION\_ENABLE\ -\/\ Включить\ оптимизацию\ параметров}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00018}00018\ \textcolor{comment}{\ \ Если\ библиотека\ отключена\ @ref\ GEN\_OPTIMIZATION\_ENABLE,\ то\ вставляются\ }}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00019}00019\ \textcolor{comment}{\ \ заглушки,\ никак\ не\ влияющие\ на\ параметры\ и\ остальную\ программу}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00020}00020\ \textcolor{comment}{-\/\ @ref\ GEN\_MAX\_PARAMS\ \ \ \ \ \ \ \ \ \ -\/\ Максимальное\ количество\ параметров}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00021}00021\ \textcolor{comment}{-\/\ @ref\ GEN\_MAX\_CANDIDATES\ \ \ \ \ \ -\/\ Максимальное\ количество\ кандидатов\ для\ обучения}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00022}00022\ \textcolor{comment}{-\/\ (опционально)\ @ref\ GEN\_MUTATION\_MIN\_PCT\ \ \ \ \ \ \ -\/\ Минимальная\ мутация\ в\ процентах\ от\ Loss\ (по\ умолчанию\ 10\%)}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00023}00023\ \textcolor{comment}{-\/\ (опционально)\ @ref\ GEN\_MUTATION\_MAX\_PCT\ \ \ \ \ \ \ -\/\ Максимальная\ мутация\ в\ процентах\ от\ Loss\ (по\ умолчанию\ 100\%)}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00024}00024\ \textcolor{comment}{-\/\ (опционально)\ @ref\ ELOVLE\_N\_ELITE\_CANDIDATE\ \ \ -\/\ Количество\ кандидатов,\ которые\ проходят\ в\ поколение\ без\ изменений}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00025}00025\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00026}00026\ \textcolor{comment}{@par\ Пример\ использования:}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00027}00027\ \textcolor{comment}{@code}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00028}00028\ \textcolor{comment}{\#include\ "{}gen\_optimizer.h"{}}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00029}00029\ \textcolor{comment}{\#define\ N\_PARAMS\ \ \ \ \ \ \ \ 4}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00030}00030\ \textcolor{comment}{\#define\ N\_CANDIDATES\ \ \ \ 100}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00031}00031\ \textcolor{comment}{\#define\ N\_BEST\ \ \ \ \ \ \ \ \ \ 10}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00032}00032\ \textcolor{comment}{\#define\ MUTATION\ \ \ \ \ \ \ \ 0.1f}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00033}00033\ \textcolor{comment}{float\ params[N\_PARAMS];}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00034}00034\ \textcolor{comment}{GenOptimizer\_t\ optimizer;}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00035}00035\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00036}00036\ \textcolor{comment}{//\ Формирование\ параметров}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00037}00037\ \textcolor{comment}{uint16\_t\ \ param\_u16\ =\ 800;}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00038}00038\ \textcolor{comment}{float\ \ \ \ \ param\_f\ \ \ =\ 0.01f;}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00039}00039\ \textcolor{comment}{uint8\_t\ \ \ param\_u8\ \ =\ 40;}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00040}00040\ \textcolor{comment}{int16\_t\ \ \ param\_i16\ =\ 1600;}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00041}00041\ \textcolor{comment}{params[0]\ =\ PARAM\_SCALE(param\_u16,\ \ 0.0f,\ \ \ 1000.0f);}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00042}00042\ \textcolor{comment}{params[1]\ =\ PARAM\_SCALE(param\_f,\ \ \ \ 0.001f,\ 0.1f);}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00043}00043\ \textcolor{comment}{params[2]\ =\ PARAM\_SCALE(param\_u8,\ \ \ 10.0f,\ \ 100.0f);}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00044}00044\ \textcolor{comment}{params[3]\ =\ PARAM\_SCALE(param\_i16,\ \ 500.0f,\ 5000.0f);}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00045}00045\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00046}00046\ \textcolor{comment}{//\ Инициалиазция}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00047}00047\ \textcolor{comment}{GenOptimizer\_Init(\&optimizer,\ N\_PARAMS,\ N\_CANDIDATES,\ N\_BEST,\ MUTATION,\ params);}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00048}00048\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00049}00049\ \textcolor{comment}{//\ Шаг\ эволюции}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00050}00050\ \textcolor{comment}{float\ loss\ =\ calc\_loss();\ //\ расчет\ эффективности\ параметров\ (от\ 0\ до\ 1)}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00051}00051\ \textcolor{comment}{GenOptimizer\_Step(\&optimizer,\ params,\ loss);}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00052}00052\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00053}00053\ \textcolor{comment}{//\ Взятие\ следующих\ для\ эволюции\ параметров}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00054}00054\ \textcolor{comment}{param\_u16\ =\ PARAM\_UNSCALE(params[0],\ \ 0.0f,\ \ \ 1000.0f);}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00055}00055\ \textcolor{comment}{param\_f\ \ \ =\ PARAM\_UNSCALE(params[1],\ \ 0.001f,\ 0.1f);}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00056}00056\ \textcolor{comment}{param\_u8\ \ =\ PARAM\_UNSCALE(params[2],\ \ 10.0f,\ \ 100.0f);}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00057}00057\ \textcolor{comment}{param\_i16\ =\ PARAM\_UNSCALE(params[3],\ \ 500.0f,\ 5000.0f);}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00058}00058\ \textcolor{comment}{@endcode}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00059}00059\ \textcolor{comment}{*\ @\{\ \ }}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00060}00060\ \textcolor{comment}{*****************************************************************************/}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00061}00061\ \textcolor{preprocessor}{\#ifndef\ \_\_GEN\_OPTIMIZER\_H\_}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00062}00062\ \textcolor{preprocessor}{\#define\ \_\_GEN\_OPTIMIZER\_H\_}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00063}00063\ }
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00064}00064\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{mylibs__defs_8h}{mylibs\_defs.h}}"{}}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00065}00065\ \textcolor{preprocessor}{\#include\ <stdint.h>}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00066}00066\ \textcolor{preprocessor}{\#include\ <stdlib.h>}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00067}00067\ }
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00068}00068\ \textcolor{preprocessor}{\#ifdef\ GEN\_OPTIMIZATION\_ENABLE}\textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00069}00069\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00070}00070\ \textcolor{comment}{\ \ *\ @brief\ Линейное\ масштабирование\ x\ из\ диапазона\ [min\_val,\ max\_val]\ в\ диапазон\ [0,\ 1)}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00071}00071\ \textcolor{comment}{\ \ */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00072}00072\ \textcolor{preprocessor}{\#define\ PARAM\_SCALE(x,\ min\_val,\ max\_val)\ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00073}00073\ \textcolor{preprocessor}{(((float)(x)\ -\/\ (float)(min\_val))\ /\ ((float)(max\_val)\ -\/\ (float)(min\_val)))}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00074}00074\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00075}00075\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00076}00076\ \textcolor{comment}{\ \ *\ @brief\ Обратное\ линейное\ масштабирование\ значения\ из\ [0,\ 1)\ в\ диапазон\ [min\_val,\ max\_val]}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00077}00077\ \textcolor{comment}{\ \ */}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00078}00078\ \textcolor{preprocessor}{\#define\ PARAM\_UNSCALE(val,\ min\_val,\ max\_val)\ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00079}00079\ \textcolor{preprocessor}{(((float)(val))\ *\ ((float)(max\_val)\ -\/\ (float)(min\_val))\ +\ (float)(min\_val))}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00080}00080\ }
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00081}00081\ \textcolor{preprocessor}{\#ifndef\ local\_time}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00082}00082\ \textcolor{preprocessor}{\#define\ local\_time()\ \ HAL\_GetTick()\ }\textcolor{comment}{///<\ Локальное\ время}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00083}00083\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00084}00084\ }
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00085}00085\ }
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00086}00086\ }
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00087}00087\ \textcolor{preprocessor}{\#ifndef\ GEN\_MUTATION\_MIN\_PCT}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00088}00088\ \textcolor{preprocessor}{\#define\ GEN\_MUTATION\_MIN\_PCT\ \ \ 10\ \ \ \ }\textcolor{comment}{///<\ Минимальная\ мутация\ \ процентах\ от\ Loss)}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00089}00089\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00090}00090\ \textcolor{preprocessor}{\#ifndef\ GEN\_MUTATION\_MAX\_PCT}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00091}00091\ \textcolor{preprocessor}{\#define\ GEN\_MUTATION\_MAX\_PCT\ \ \ 100\ \ \ }\textcolor{comment}{///<\ Максимальная\ мутация\ \ процентах\ от\ Loss)}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00092}00092\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00093}00093\ \textcolor{preprocessor}{\#ifndef\ ELOVLE\_N\_ELITE\_CANDIDATE}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00094}00094\ \textcolor{preprocessor}{\#define\ ELOVLE\_N\_ELITE\_CANDIDATE\ \ 2\ \ \ \ \ }\textcolor{comment}{///<\ Количество\ кандидатов,\ которые\ проходят\ в\ поколение\ без\ изменений\ (по\ умолчанию\ 2)}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00095}00095\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00096}00096\ }
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00097}00097\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00098}00098\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00099}00099\ \textcolor{comment}{\ \ *\ @brief\ Структура\ эволюционного\ оптимизатора}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00100}00100\ \textcolor{comment}{\ \ */}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00101}00101\ \textcolor{keyword}{typedef}\ \textcolor{keyword}{struct\ }\{}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00102}00102\ \ \ \textcolor{keywordtype}{float}\ \ \ \ \ stability;\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{///<\ Коэффициент\ насколько\ стабильная\ популяция\ (0..1)(@ref\ n\_cand)}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00103}00103\ }
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00104}00104\ \ \ uint16\_t\ \ n\_params;\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{///<\ Количество\ параметров}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00105}00105\ \ \ uint16\_t\ \ n\_cand;\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{///<\ Количество\ кандидатов\ в\ популяции}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00106}00106\ \ \ uint16\_t\ \ n\_best;\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{///<\ Количество\ лучших,\ усредняемых}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00107}00107\ \ \ \textcolor{keywordtype}{float}\ \ \ \ \ mutation\_amp;\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{///<\ Амплитуда\ мутации\ (0..1)}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00108}00108\ \ \ }
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00109}00109\ \ \ uint16\_t\ \ cand\_index;\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{///<\ Индекс\ текущего\ кандидата}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00110}00110\ \ \ uint16\_t\ \ gen\_index;\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{///<\ Индекс\ популяции\ \ }}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00111}00111\ \ \ }
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00112}00112\ \ \ \textcolor{comment}{//INTERNAL}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00113}00113\ \ \ \textcolor{keywordtype}{float}\ \ \ \ \ gen\_mut;\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{///<\ Амплитуда\ мутации\ у\ текущей\ популяции\ \ }}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00114}00114\ \ \ }
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00115}00115\ \ \ \textcolor{keywordtype}{float}\ \ \ \ \ loss[\mbox{\hyperlink{group___g_e_n___c_o_n_f_i_g_ga201cffde04ebc6540869c74bd1dae869}{GEN\_MAX\_CANDIDATES}}];\ \ \ \ \textcolor{comment}{///<\ Loss\ для\ каждого\ кандидата}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00116}00116\ \ \ \textcolor{keywordtype}{float}\ \ \ \ \ candidates[\mbox{\hyperlink{group___g_e_n___c_o_n_f_i_g_ga201cffde04ebc6540869c74bd1dae869}{GEN\_MAX\_CANDIDATES}}][\mbox{\hyperlink{group___g_e_n___c_o_n_f_i_g_ga8daf4b266a95353d580bd7946f47c0ab}{GEN\_MAX\_PARAMS}}];\ \textcolor{comment}{///<\ Параметры\ кандидатов}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00117}00117\ \ \ uint16\_t\ \ sorted\_idx[\mbox{\hyperlink{group___g_e_n___c_o_n_f_i_g_ga201cffde04ebc6540869c74bd1dae869}{GEN\_MAX\_CANDIDATES}}];\ \textcolor{comment}{///<\ Индексы\ отсортированных\ кандидатов}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00118}00118\ \}\ \mbox{\hyperlink{struct_gen_optimizer__t}{GenOptimizer\_t}};}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00119}00119\ }
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00120}00120\ }
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00121}00121\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00122}00122\ \textcolor{comment}{/**\ }}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00123}00123\ \textcolor{comment}{\ *\ @cond\ GEN\_INTERNAL}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00124}00124\ \textcolor{comment}{\ */}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00125}00125\ }
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00126}00126\ \textcolor{comment}{//\ Вспомогательный\ указатель\ для\ сортировки}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00127}00127\ \textcolor{keyword}{static}\ \mbox{\hyperlink{struct_gen_optimizer__t}{GenOptimizer\_t}}\ *g\_sort\_opt;\ \textcolor{comment}{//\ глобальный\ указатель\ на\ текущий\ оптимизатор}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00128}00128\ }
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00129}00129\ \textcolor{comment}{//\ функция\ условия\ сортировки}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00130}00130\ \textcolor{keyword}{static}\ \textcolor{keywordtype}{int}\ cmp\_idx(\textcolor{keyword}{const}\ \textcolor{keywordtype}{void}\ *a,\ \textcolor{keyword}{const}\ \textcolor{keywordtype}{void}\ *b)\ \{}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00131}00131\ \ \ \textcolor{keywordflow}{if}\ (g\_sort\_opt-\/>loss[*(\textcolor{keyword}{const}\ uint16\_t*)a]\ <\ g\_sort\_opt-\/>loss[*(\textcolor{keyword}{const}\ uint16\_t*)b])\ }
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00132}00132\ \ \ \ \ \textcolor{keywordflow}{return}\ -\/1;}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00133}00133\ \ \ \textcolor{keywordflow}{if}\ (g\_sort\_opt-\/>loss[*(\textcolor{keyword}{const}\ uint16\_t*)a]\ >\ g\_sort\_opt-\/>loss[*(\textcolor{keyword}{const}\ uint16\_t*)b])\ }
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00134}00134\ \ \ \ \ \textcolor{keywordflow}{return}\ 1;}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00135}00135\ \ \ \textcolor{keywordflow}{return}\ 0;}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00136}00136\ \}\textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00137}00137\ \textcolor{comment}{/**\ @endcond\ */}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00138}00138\ }
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00139}00139\ }
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00140}00140\ }
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00141}00141\ }
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00142}00142\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00143}00143\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00144}00144\ \textcolor{comment}{\ \ *\ @brief\ Инициализация\ эволюционного\ оптимизатора.}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00145}00145\ \textcolor{comment}{\ \ *\ @param\ opt\ \ \ \ \ \ \ \ \ \ Указатель\ на\ структуру\ оптимизатора}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00146}00146\ \textcolor{comment}{\ \ *\ @param\ n\_params\ \ \ \ \ Количество\ параметров\ в\ одном\ кандидате}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00147}00147\ \textcolor{comment}{\ \ *\ @param\ n\_cand\ \ \ \ \ \ \ Количество\ кандидатов}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00148}00148\ \textcolor{comment}{\ \ *\ @param\ n\_best\ \ \ \ \ \ \ Количество\ лучших,\ усредняемых}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00149}00149\ \textcolor{comment}{\ \ *\ @param\ mutation\_amp\ Амплитуда\ мутации\ \ диапазоне\ 0.01.0)}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00150}00150\ \textcolor{comment}{\ \ *\ @param\ start\_params\ Начальные\ параметры\ \ диапазоне\ 0.01.0)}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00151}00151\ \textcolor{comment}{\ \ *\ @return\ 0\ \ \ \ если\ окей,\ }}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00152}00152\ \textcolor{comment}{\ \ *\ \ \ \ \ \ \ \ \ -\/1\ \ \ если\ ошибка}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00153}00153\ \textcolor{comment}{\ \ */}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00154}00154\ \textcolor{keyword}{static}\ \textcolor{keywordtype}{int}\ GenOptimizer\_Init(\mbox{\hyperlink{struct_gen_optimizer__t}{GenOptimizer\_t}}*\ opt,}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00155}00155\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ uint16\_t\ n\_params,}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00156}00156\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ uint16\_t\ n\_cand,}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00157}00157\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ uint16\_t\ n\_best,}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00158}00158\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{float}\ mutation\_amp,}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00159}00159\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{float}*\ start\_params)}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00160}00160\ \{}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00161}00161\ \ \ \textcolor{keywordflow}{if}((opt\ ==\ NULL)\ ||\ (start\_params\ ==\ NULL))}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00162}00162\ \ \ \ \ \textcolor{keywordflow}{return}\ -\/1;}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00163}00163\ }
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00164}00164\ \ \ \textcolor{keywordflow}{if}(n\_params\ >\ \mbox{\hyperlink{group___g_e_n___c_o_n_f_i_g_ga8daf4b266a95353d580bd7946f47c0ab}{GEN\_MAX\_PARAMS}})}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00165}00165\ \ \ \ \ \textcolor{keywordflow}{return}\ -\/1;\ \ }
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00166}00166\ \ \ opt-\/>n\_params\ \ \ \ \ =\ n\_params;}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00167}00167\ \ \ }
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00168}00168\ \ \ \textcolor{keywordflow}{if}(n\_cand\ >\ \mbox{\hyperlink{group___g_e_n___c_o_n_f_i_g_ga201cffde04ebc6540869c74bd1dae869}{GEN\_MAX\_CANDIDATES}})}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00169}00169\ \ \ \ \ \textcolor{keywordflow}{return}\ -\/1;\ \ }
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00170}00170\ \ \ opt-\/>n\_cand\ \ \ \ \ \ \ =\ n\_cand;}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00171}00171\ \ \ }
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00172}00172\ \ \ \textcolor{keywordflow}{if}(n\_best\ >\ \mbox{\hyperlink{group___g_e_n___c_o_n_f_i_g_ga201cffde04ebc6540869c74bd1dae869}{GEN\_MAX\_CANDIDATES}}/2)}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00173}00173\ \ \ \ \ \textcolor{keywordflow}{return}\ -\/1;\ \ }
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00174}00174\ \ \ opt-\/>n\_best\ \ \ \ \ \ \ =\ n\_best;}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00175}00175\ \ \ }
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00176}00176\ \ \ }
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00177}00177\ \ \ \textcolor{keywordflow}{if}((mutation\_amp\ >\ 1)\ ||\ (mutation\_amp\ <\ 0))}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00178}00178\ \ \ \ \ \textcolor{keywordflow}{return}\ -\/1;\ \ \ \ }
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00179}00179\ \ \ \textcolor{keywordflow}{if}(mutation\_amp\ <=\ 0.001f)}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00180}00180\ \ \ \ \ mutation\_amp\ =\ 0.001f;\ \ }
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00181}00181\ \ \ opt-\/>mutation\_amp\ \ =\ mutation\_amp;}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00182}00182\ }
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00183}00183\ \ \ uint32\_t\ seed\ =\ \mbox{\hyperlink{group___t_r_a_c_e___s_e_r_i_a_l_ga9c853b02c22f26023c34d1d404b6d653}{local\_time}}();}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00184}00184\ \textcolor{preprocessor}{\#ifdef\ ADC1}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00185}00185\ \ \ seed\ +=\ (ADC1-\/>DR\ \&\ 0xFF);}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00186}00186\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00187}00187\ \ \ srand(seed);}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00188}00188\ \ \ }
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00189}00189\ \ \ \textcolor{keywordflow}{for}\ (uint16\_t\ i\ =\ 0;\ i\ <\ n\_cand;\ i++)\ \{}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00190}00190\ \ \ \ \ \textcolor{keywordflow}{for}\ (uint16\_t\ j\ =\ 0;\ j\ <\ n\_params;\ j++)\ \{}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00191}00191\ \ \ \ \ \ \ \textcolor{comment}{//\ Добавляем\ случайную\ мутацию\ вокруг\ стартового\ параметра}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00192}00192\ \ \ \ \ \ \ \textcolor{keywordtype}{float}\ base\ =\ start\_params[j];}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00193}00193\ \ \ \ \ \ \ \textcolor{keywordtype}{float}\ inv\_randmax\ =\ 1.0f\ /\ (float)RAND\_MAX;}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00194}00194\ \ \ \ \ \ \ \textcolor{keywordtype}{float}\ noise\ =\ ((float)rand()\ *\ inv\_randmax\ *\ 2.0f\ -\/\ 1.0f)\ *\ mutation\_amp;}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00195}00195\ \ \ \ \ \ \ opt-\/>candidates[i][j]\ =\ base\ +\ noise;}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00196}00196\ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (opt-\/>candidates[i][j]\ <\ 0.0f)\ opt-\/>candidates[i][j]\ =\ 0.0f;}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00197}00197\ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (opt-\/>candidates[i][j]\ >\ 1.0f)\ opt-\/>candidates[i][j]\ =\ 1.0f;}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00198}00198\ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00199}00199\ \ \ \ \ opt-\/>loss[i]\ =\ 0.0f;}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00200}00200\ \ \ \}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00201}00201\ \ \ }
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00202}00202\ \ \ opt-\/>cand\_index\ =\ 0;}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00203}00203\ \ \ opt-\/>gen\_index\ =\ 0;}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00204}00204\ \ \ \textcolor{keywordflow}{return}\ 0;}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00205}00205\ \}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00206}00206\ }
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00207}00207\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00208}00208\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00209}00209\ \textcolor{comment}{\ \ *\ @brief\ Один\ шаг\ эволюционного\ оптимизатора.}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00210}00210\ \textcolor{comment}{\ \ *\ @param\ opt\ \ \ \ Указатель\ на\ структуру\ оптимизатора}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00211}00211\ \textcolor{comment}{\ \ *\ @param\ params\ Массив\ параметров,\ которые\ будут\ обновлены\ (на\ выходе\ \ новые\ параметры)}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00212}00212\ \textcolor{comment}{\ \ *\ @param\ loss\ \ \ Loss\ текущего\ кандидата}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00213}00213\ \textcolor{comment}{\ \ *\ @return\ 0\ \ \ \ если\ окей,\ }}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00214}00214\ \textcolor{comment}{\ \ *\ \ \ \ \ \ \ \ \ -\/1\ \ \ если\ ошибка}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00215}00215\ \textcolor{comment}{\ \ *\ @details}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00216}00216\ \textcolor{comment}{\ \ *\ Сохраняет\ loss\ текущего\ кандидата\ и\ формирует\ параметры\ следующего\ кандидата.}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00217}00217\ \textcolor{comment}{\ \ *\ Если\ накоплено\ n\_cand\ кандидатов,\ генерируется\ новое\ поколение.}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00218}00218\ \textcolor{comment}{\ \ *\ Новое\ поколение\ формируется\ случайным\ выбором\ из\ n\_best\ лучших\ с\ добавлением\ мутации.}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00219}00219\ \textcolor{comment}{\ \ *}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00220}00220\ \textcolor{comment}{\ \ *\ На\ выходе\ params\ содержит\ параметры\ следующего\ кандидата\ для\ измерений.}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00221}00221\ \textcolor{comment}{\ \ *\ @note\ Функция\ использует\ глобальную\ внутреннюю\ переменную\ для\ сортировки.}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00222}00222\ \textcolor{comment}{\ \ *\ Надо\ убедится\ что\ только\ один\ экземпляр\ функции\ запущен\ в\ момент\ времени}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00223}00223\ \textcolor{comment}{\ \ */}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00224}00224\ \textcolor{keyword}{static}\ \textcolor{keywordtype}{int}\ GenOptimizer\_Step(\mbox{\hyperlink{struct_gen_optimizer__t}{GenOptimizer\_t}}*\ opt,}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00225}00225\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{float}*\ params,}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00226}00226\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{float}\ loss)}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00227}00227\ \{}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00228}00228\ \ \ \textcolor{keywordflow}{if}((opt\ ==\ NULL)\ ||\ (params\ ==\ NULL))}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00229}00229\ \ \ \ \ \textcolor{keywordflow}{return}\ -\/1;}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00230}00230\ }
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00231}00231\ \ \ uint16\_t\ n\_params\ =\ opt-\/>n\_params;\ }
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00232}00232\ \ \ \textcolor{keywordflow}{if}(n\_params\ >\ \mbox{\hyperlink{group___g_e_n___c_o_n_f_i_g_ga8daf4b266a95353d580bd7946f47c0ab}{GEN\_MAX\_PARAMS}})}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00233}00233\ \ \ \ \ \textcolor{keywordflow}{return}\ -\/1;\ \ }
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00234}00234\ \ \ }
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00235}00235\ \ \ uint16\_t\ n\_cand\ =\ opt-\/>n\_cand;\ }
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00236}00236\ \ \ \textcolor{keywordflow}{if}(n\_cand\ >\ \mbox{\hyperlink{group___g_e_n___c_o_n_f_i_g_ga201cffde04ebc6540869c74bd1dae869}{GEN\_MAX\_CANDIDATES}})}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00237}00237\ \ \ \ \ \textcolor{keywordflow}{return}\ -\/1;\ \ }
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00238}00238\ \ \ }
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00239}00239\ \ \ uint16\_t\ n\_best\ =\ opt-\/>n\_best;\ }
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00240}00240\ \ \ \textcolor{keywordflow}{if}(n\_best\ >\ \mbox{\hyperlink{group___g_e_n___c_o_n_f_i_g_ga201cffde04ebc6540869c74bd1dae869}{GEN\_MAX\_CANDIDATES}}/2)}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00241}00241\ \ \ \ \ \textcolor{keywordflow}{return}\ -\/1;}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00242}00242\ \ \ }
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00243}00243\ \ \ \textcolor{keywordtype}{float}\ \ \ \ mut\ \ \ \ \ \ =\ opt-\/>mutation\_amp;}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00244}00244\ \ \ \textcolor{keywordflow}{if}((mut\ >\ 1)\ ||(mut\ <\ 0))}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00245}00245\ \ \ \ \ \textcolor{keywordflow}{return}\ -\/1;}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00246}00246\ }
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00247}00247\ \ \ \textcolor{comment}{//\ 1.\ Сохраняем\ loss\ текущего\ кандидата}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00248}00248\ \ \ opt-\/>loss[opt-\/>cand\_index]\ =\ loss;}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00249}00249\ \ \ opt-\/>cand\_index++;}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00250}00250\ }
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00251}00251\ \ \ \textcolor{keywordflow}{if}\ (opt-\/>cand\_index\ >=\ n\_cand)\ \{}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00252}00252\ \ \ \ \ \textcolor{comment}{//\ 2.\ Сортируем\ текущее\ поколение\ по\ loss}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00253}00253\ \ \ \ \ \textcolor{keywordflow}{for}(uint16\_t\ i\ =\ 0;\ i\ <\ opt-\/>n\_cand;\ i++)}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00254}00254\ \ \ \ \ \ \ opt-\/>sorted\_idx[i]\ =\ i;}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00255}00255\ \ \ \ \ }
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00256}00256\ \ \ \ \ g\_sort\_opt\ =\ opt;}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00257}00257\ \ \ \ \ qsort(opt-\/>sorted\_idx,\ opt-\/>n\_cand,\ \textcolor{keyword}{sizeof}(uint16\_t),\ cmp\_idx);}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00258}00258\ \ \ \ \ g\_sort\_opt\ =\ NULL;}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00259}00259\ }
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00260}00260\ \ \ \ \ \textcolor{comment}{//\ -\/-\/-\/\ Адаптивная\ мутация\ в\ зависимости\ от\ Loss\ -\/-\/-\/}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00261}00261\ \ \ \ \ \textcolor{keywordtype}{float}\ best\_loss\ =\ opt-\/>loss[opt-\/>sorted\_idx[0]];}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00262}00262\ \ \ \ \ \textcolor{keywordtype}{float}\ worst\_loss\ =\ opt-\/>loss[opt-\/>sorted\_idx[opt-\/>n\_cand\ -\/\ 1]];}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00263}00263\ \ \ \ \ \textcolor{keywordtype}{float}\ diff\ =\ worst\_loss\ -\/\ best\_loss;}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00264}00264\ }
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00265}00265\ \ \ \ \ \textcolor{keywordtype}{float}\ sum\_loss\ =\ 0.0f;}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00266}00266\ \ \ \ \ \textcolor{keywordflow}{for}\ (uint16\_t\ i\ =\ 0;\ i\ <\ n\_cand;\ i++)}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00267}00267\ \ \ \ \ \ \ sum\_loss\ +=\ opt-\/>loss[i];}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00268}00268\ \ \ \ \ \textcolor{keywordtype}{float}\ avg\_loss\ =\ sum\_loss\ /\ (float)n\_cand;}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00269}00269\ \ \ \ \ }
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00270}00270\ \ \ \ \ }
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00271}00271\ \ \ \ \ \textcolor{keywordtype}{float}\ loss\_ratio\ =\ (diff\ >\ 0.0f)\ ?\ ((avg\_loss\ -\/\ best\_loss)\ /\ diff)\ :\ 0.5f;}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00272}00272\ \ \ \ \ \textcolor{keywordflow}{if}\ (loss\_ratio\ <\ 0.0f)\ loss\_ratio\ =\ 0.0f;}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00273}00273\ \ \ \ \ \textcolor{keywordflow}{if}\ (loss\_ratio\ >\ 1.0f)\ loss\_ratio\ =\ 1.0f;}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00274}00274\ \ \ \ \ }
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00275}00275\ \ \ \ \ \textcolor{comment}{//\ Записываем\ стабильность\ популяции\ в\ структуру}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00276}00276\ \ \ \ \ \textcolor{keywordflow}{if}(diff\ <\ 0.0f)\ diff\ =\ 0.0f;}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00277}00277\ \ \ \ \ \textcolor{keywordflow}{if}(diff\ >\ 1.0f)\ diff\ =\ 1.0f;}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00278}00278\ \ \ \ \ opt-\/>stability\ =\ (1.0f\ -\/\ worst\_loss)\ *\ (1.0f\ -\/\ (worst\_loss\ -\/\ best\_loss));}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00279}00279\ \ \ \ \ \textcolor{keywordflow}{if}(opt-\/>stability\ <\ 0.0f)\ opt-\/>stability\ =\ 0.0f;}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00280}00280\ \ \ \ \ \textcolor{keywordflow}{if}(opt-\/>stability\ >\ 1.0f)\ opt-\/>stability\ =\ 1.0f;}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00281}00281\ }
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00282}00282\ \ \ \ \ \textcolor{keywordtype}{float}\ mut\_pct\ =\ GEN\_MUTATION\_MIN\_PCT\ +}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00283}00283\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (GEN\_MUTATION\_MAX\_PCT\ -\/\ GEN\_MUTATION\_MIN\_PCT)\ *\ loss\_ratio;}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00284}00284\ \ \ \ \ \textcolor{keywordtype}{float}\ adaptive\_mut\ =\ mut\ *\ (mut\_pct\ /\ 100.0f);}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00285}00285\ \ \ \ \ \textcolor{keywordflow}{if}\ (adaptive\_mut\ <\ 0.0001f)\ adaptive\_mut\ =\ 0.0001f;}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00286}00286\ \ \ \ \ opt-\/>gen\_mut\ =\ adaptive\_mut;}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00287}00287\ }
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00288}00288\ \ \ \ \ \textcolor{comment}{//\ 3.\ Генерируем\ новое\ поколение}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00289}00289\ \ \ \ \ uint16\_t\ n\_elite\ =\ ELOVLE\_N\_ELITE\_CANDIDATE;}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00290}00290\ \ \ \ \ \textcolor{keywordflow}{for}\ (uint16\_t\ c\ =\ 0;\ c\ <\ n\_cand;\ c++)\ \{}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00291}00291\ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (c\ <\ n\_elite)\ \{}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00292}00292\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{for}\ (uint16\_t\ i\ =\ 0;\ i\ <\ n\_params;\ i++)}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00293}00293\ \ \ \ \ \ \ \ \ \ \ opt-\/>candidates[c][i]\ =\ opt-\/>candidates[opt-\/>sorted\_idx[c]][i];}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00294}00294\ \ \ \ \ \ \ \ \ opt-\/>loss[c]\ =\ 0.0f;}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00295}00295\ \ \ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00296}00296\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{for}\ (uint16\_t\ i\ =\ 0;\ i\ <\ n\_params;\ i++)\ \{}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00297}00297\ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{float}\ inv\_randmax\ =\ 1.0f\ /\ (float)RAND\_MAX;}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00298}00298\ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{float}\ noise\ =\ ((float)rand()\ *\ inv\_randmax\ *\ 2.0f\ -\/\ 1.0f)\ *\ adaptive\_mut;}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00299}00299\ \ \ \ \ \ \ \ \ \ \ uint16\_t\ parent\ =\ opt-\/>sorted\_idx[rand()\ \%\ opt-\/>n\_best];}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00300}00300\ \ \ \ \ \ \ \ \ \ \ opt-\/>candidates[c][i]\ =\ opt-\/>candidates[parent][i]\ +\ noise;}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00301}00301\ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (opt-\/>candidates[c][i]\ <\ 0.0f)\ opt-\/>candidates[c][i]\ =\ 0.0f;}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00302}00302\ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (opt-\/>candidates[c][i]\ >\ 1.0f)\ opt-\/>candidates[c][i]\ =\ 1.0f;}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00303}00303\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00304}00304\ \ \ \ \ \ \ \ \ opt-\/>loss[c]\ =\ 0.0f;}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00305}00305\ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00306}00306\ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00307}00307\ \ \ \ \ opt-\/>cand\_index\ =\ 0;}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00308}00308\ \ \ \ \ opt-\/>gen\_index++;}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00309}00309\ \ \ \}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00310}00310\ }
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00311}00311\ \ \ \textcolor{comment}{//\ 4.\ Возвращаем\ параметры\ следующего\ кандидата}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00312}00312\ \ \ \textcolor{keywordflow}{for}\ (uint16\_t\ i\ =\ 0;\ i\ <\ opt-\/>n\_params;\ i++)}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00313}00313\ \ \ \ \ params[i]\ =\ opt-\/>candidates[opt-\/>cand\_index][i];}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00314}00314\ \ \ }
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00315}00315\ \ \ \textcolor{keywordflow}{return}\ 0;}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00316}00316\ \}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00317}00317\ \textcolor{preprocessor}{\#else\ }\textcolor{comment}{//\ GEN\_OPTIMIZATION\_ENABLE}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00318}00318\ \textcolor{comment}{//заглушки}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00319}\mbox{\hyperlink{struct_gen_optimizer__t}{00319}}\ \textcolor{keyword}{typedef}\ \textcolor{keyword}{struct\ }\{}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00320}00320\ \ \ uint16\_t\ n\_params;\ }
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00321}00321\ \ \ uint16\_t\ n\_cand;\ }
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00322}00322\ \ \ uint16\_t\ n\_best;\ }
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00323}00323\ \ \ \textcolor{keywordtype}{float}\ mutation\_amp;\ }
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00324}00324\ \ \ \textcolor{keywordtype}{float}\ loss[0];\ }
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00325}00325\ \ \ \textcolor{keywordtype}{float}\ candidates[0][0];\ }
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00326}00326\ \}\ \mbox{\hyperlink{struct_gen_optimizer__t}{GenOptimizer\_t}};}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00327}00327\ \textcolor{preprocessor}{\#define\ GenOptimizer\_Init(opt,\ n\_params,\ n\_cand,\ n\_best,\ mutation\_amp,\ start\_params)}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00328}00328\ \textcolor{preprocessor}{\#define\ GenOptimizer\_Step(opt,\ params,\ LossFunc)}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00329}00329\ \textcolor{preprocessor}{\#define\ PARAM\_SCALE(x,\ min\_val,\ max\_val)\ \ \ \ \ \ \ \ \ (x)}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00330}00330\ \textcolor{preprocessor}{\#define\ PARAM\_UNSCALE(val,\ min\_val,\ max\_val)\ \ \ \ \ (val)}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00331}00331\ \textcolor{preprocessor}{\#endif\ }\textcolor{comment}{//\ GEN\_OPTIMIZATION\_ENABLE}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00332}00332\ }
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00333}00333\ \textcolor{preprocessor}{\#endif\ }\textcolor{comment}{//\ \_\_GEN\_OPTIMIZER\_H\_}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00334}00334\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00335}00335\ \textcolor{comment}{/**\ GEN\_OPTIMIZER}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00336}00336\ \textcolor{comment}{\ \ *\ @\}}}
\DoxyCodeLine{\Hypertarget{gen__optimizer_8h_source_l00337}00337\ \textcolor{comment}{\ \ */}}
\end{DoxyCode}

View File

@@ -0,0 +1 @@
6705808550d728844cfae44f809a322b

View File

@@ -0,0 +1,232 @@
\doxysubsubsection{Time measurement }
\hypertarget{group___b_e_n_c_h___t_i_m_e}{}\label{group___b_e_n_c_h___t_i_m_e}\index{Time measurement@{Time measurement}}
Библиотека для измерения времени/тиков между событиями
Collaboration diagram for Time measurement\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=286pt]{group___b_e_n_c_h___t_i_m_e}
\end{center}
\end{figure}
\doxysubsubsubsubsection*{Macros}
\begin{DoxyCompactItemize}
\item
\#define \mbox{\hyperlink{group___b_e_n_c_h___t_i_m_e_ga31b9f2267c562f3ceb533606daf0b789}{Bench\+Time\+\_\+\+Init}}()
\item
\#define \mbox{\hyperlink{group___b_e_n_c_h___t_i_m_e_ga89ff6c06fc21fb2bbfbf8cbf863316f1}{Bench\+Time\+\_\+\+Start}}(channel, ticks, tick\+\_\+period)
\item
\#define \mbox{\hyperlink{group___b_e_n_c_h___t_i_m_e_gadddc120d43a10fad50fbdeeab8d086b5}{Bench\+Time\+\_\+\+End}}(channel, ticks)
\item
\#define \mbox{\hyperlink{group___b_e_n_c_h___t_i_m_e_ga91e352219014c7ea5507bbbe4b15912d}{Bench\+Time\+\_\+\+Get\+Min}}(channel)
\item
\#define \mbox{\hyperlink{group___b_e_n_c_h___t_i_m_e_gab8103362e89bad95d965ac668284065c}{Bench\+Time\+\_\+\+Get\+Max}}(channel)
\item
\#define \mbox{\hyperlink{group___b_e_n_c_h___t_i_m_e_ga9f82f5ed8cfae31292dc3dca41471dd5}{Bench\+Time\+\_\+\+Get\+Average}}(channel)
\item
\#define \mbox{\hyperlink{group___b_e_n_c_h___t_i_m_e_gaafbca7155cfc97b68428da2b0b1200ef}{Bench\+Time\+\_\+\+Get\+Count}}(channel)
\item
\#define \mbox{\hyperlink{group___b_e_n_c_h___t_i_m_e_ga9911aa13a8fa67c35a261d1cb3dc11e7}{Bench\+Time\+\_\+\+Get\+Last}}(channel)
\item
\#define \mbox{\hyperlink{group___b_e_n_c_h___t_i_m_e_ga09b9a6ef9b60605fc0015f6b379d8420}{Bench\+Time\+\_\+\+Reset\+Stats}}(channel)
\end{DoxyCompactItemize}
\doxysubsubsubsection{Detailed Description}
Библиотека для измерения времени/тиков между событиями
Поддерживает\+:
\begin{DoxyItemize}
\item Многоканальные измерения (несколько независимых таймеров)
\item Платформонезависимый интерфейс
\item Измерение в тиках или временных единицах
\item Статистику измерений (мин/макс/среднее)
\item Настраиваемый размер тиков для каждого канала
\end{DoxyItemize}
Параметры для конфигурации\+:
\begin{DoxyItemize}
\item \doxylink{group___g_e_n___c_o_n_f_i_g_ga67c3c54503b9bbd5d175ac46d37866d9}{BENCH\+\_\+\+TIME\+\_\+\+ENABLE} -\/ Включить бенч времени
\item \doxylink{group___g_e_n___c_o_n_f_i_g_ga74fdf777ceefa5e7d67120fbda4cde52}{BENCH\+\_\+\+TIME\+\_\+\+MAX\+\_\+\+CHANNELS} -\/ Максимальное количество каналов измерения (по умолчанию 8)
\end{DoxyItemize}
\begin{DoxyParagraph}{Пример использования\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{\textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{bench__time_8h}{bench\_time.h}}"{}}}
\DoxyCodeLine{}
\DoxyCodeLine{\textcolor{comment}{//\ Инициализация}}
\DoxyCodeLine{BenchTime\_Init();}
\DoxyCodeLine{}
\DoxyCodeLine{\textcolor{comment}{//\ Измерение\ с\ SysTick}}
\DoxyCodeLine{BenchTime\_Start(0,\ HAL\_GetTick,\ 0xFFFFFFFF);}
\DoxyCodeLine{some\_function();}
\DoxyCodeLine{uint32\_t\ time\ =\ BenchTime\_End(0,\ HAL\_GetTick);}
\DoxyCodeLine{}
\DoxyCodeLine{\textcolor{comment}{//\ Измерение\ с\ TIM2\ (16-\/бит)}}
\DoxyCodeLine{BenchTime\_Start(1,\ TIM2-\/>CNT,\ 0xFFFF);}
\DoxyCodeLine{fast\_function();\ }
\DoxyCodeLine{uint32\_t\ time2\ =\ BenchTime\_End(1,\ TIM2-\/>CNT);}
\DoxyCodeLine{}
\DoxyCodeLine{\textcolor{comment}{//\ Измерение\ с\ DWT\ цикловым\ счетчиком}}
\DoxyCodeLine{BenchTime\_Start(2,\ DWT-\/>CYCCNT,\ 0xFFFFFFFF);}
\DoxyCodeLine{critical\_function();}
\DoxyCodeLine{uint32\_t\ cycles\ =\ BenchTime\_End(2,\ DWT-\/>CYCCNT);}
\DoxyCodeLine{}
\DoxyCodeLine{\textcolor{comment}{//\ Многоканальное\ измерение}}
\DoxyCodeLine{BenchTime\_Start(0,\ HAL\_GetTick,\ 1000);\ \ \ \ \ \ \ \ \textcolor{comment}{//\ общее\ время}}
\DoxyCodeLine{BenchTime\_Start(1,\ TIM3-\/>CNT,\ 500);\ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ часть\ 1}}
\DoxyCodeLine{}
\DoxyCodeLine{\textcolor{comment}{//\ ...\ код\ 1}}
\DoxyCodeLine{}
\DoxyCodeLine{uint32\_t\ part1\ =\ BenchTime\_End(1,\ TIM3-\/>CNT);}
\DoxyCodeLine{BenchTime\_Start(2,\ TIM4-\/>CNT,\ 200);\ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ часть\ 2\ \ }}
\DoxyCodeLine{}
\DoxyCodeLine{\textcolor{comment}{//\ ...\ код\ 2}}
\DoxyCodeLine{}
\DoxyCodeLine{uint32\_t\ part2\ =\ BenchTime\_End(2,\ TIM4-\/>CNT);}
\DoxyCodeLine{uint32\_t\ total\ =\ BenchTime\_End(0,\ HAL\_GetTick);\ \textcolor{comment}{//\ общее\ время}}
\DoxyCodeLine{}
\DoxyCodeLine{\textcolor{comment}{//\ Статистика}}
\DoxyCodeLine{uint32\_t\ min\_time\ =\ BenchTime\_GetMin(0);}
\DoxyCodeLine{uint32\_t\ max\_time\ =\ BenchTime\_GetMax(0);}
\DoxyCodeLine{uint32\_t\ avg\_time\ =\ BenchTime\_GetAverage(0);}
\DoxyCodeLine{uint32\_t\ count\ =\ BenchTime\_GetCount(0);}
\end{DoxyCode}
\end{DoxyParagraph}
\label{doc-define-members}
\Hypertarget{group___b_e_n_c_h___t_i_m_e_doc-define-members}
\doxysubsubsubsection{Macro Definition Documentation}
\Hypertarget{group___b_e_n_c_h___t_i_m_e_ga31b9f2267c562f3ceb533606daf0b789}\index{Time measurement@{Time measurement}!BenchTime\_Init@{BenchTime\_Init}}
\index{BenchTime\_Init@{BenchTime\_Init}!Time measurement@{Time measurement}}
\doxysubsubsubsubsection{\texorpdfstring{BenchTime\_Init}{BenchTime\_Init}}
{\footnotesize\ttfamily \label{group___b_e_n_c_h___t_i_m_e_ga31b9f2267c562f3ceb533606daf0b789}
\#define Bench\+Time\+\_\+\+Init(\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption})}
Definition at line \mbox{\hyperlink{bench__time_8h_source_l00241}{241}} of file \mbox{\hyperlink{bench__time_8h_source}{bench\+\_\+time.\+h}}.
\Hypertarget{group___b_e_n_c_h___t_i_m_e_ga89ff6c06fc21fb2bbfbf8cbf863316f1}\index{Time measurement@{Time measurement}!BenchTime\_Start@{BenchTime\_Start}}
\index{BenchTime\_Start@{BenchTime\_Start}!Time measurement@{Time measurement}}
\doxysubsubsubsubsection{\texorpdfstring{BenchTime\_Start}{BenchTime\_Start}}
{\footnotesize\ttfamily \label{group___b_e_n_c_h___t_i_m_e_ga89ff6c06fc21fb2bbfbf8cbf863316f1}
\#define Bench\+Time\+\_\+\+Start(\begin{DoxyParamCaption}\item[{}]{channel}{, }\item[{}]{ticks}{, }\item[{}]{tick\+\_\+period}{}\end{DoxyParamCaption})}
{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{0}
\end{DoxyCode}
Definition at line \mbox{\hyperlink{bench__time_8h_source_l00242}{242}} of file \mbox{\hyperlink{bench__time_8h_source}{bench\+\_\+time.\+h}}.
\Hypertarget{group___b_e_n_c_h___t_i_m_e_gadddc120d43a10fad50fbdeeab8d086b5}\index{Time measurement@{Time measurement}!BenchTime\_End@{BenchTime\_End}}
\index{BenchTime\_End@{BenchTime\_End}!Time measurement@{Time measurement}}
\doxysubsubsubsubsection{\texorpdfstring{BenchTime\_End}{BenchTime\_End}}
{\footnotesize\ttfamily \label{group___b_e_n_c_h___t_i_m_e_gadddc120d43a10fad50fbdeeab8d086b5}
\#define Bench\+Time\+\_\+\+End(\begin{DoxyParamCaption}\item[{}]{channel}{, }\item[{}]{ticks}{}\end{DoxyParamCaption})}
{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{0}
\end{DoxyCode}
Definition at line \mbox{\hyperlink{bench__time_8h_source_l00243}{243}} of file \mbox{\hyperlink{bench__time_8h_source}{bench\+\_\+time.\+h}}.
\Hypertarget{group___b_e_n_c_h___t_i_m_e_ga91e352219014c7ea5507bbbe4b15912d}\index{Time measurement@{Time measurement}!BenchTime\_GetMin@{BenchTime\_GetMin}}
\index{BenchTime\_GetMin@{BenchTime\_GetMin}!Time measurement@{Time measurement}}
\doxysubsubsubsubsection{\texorpdfstring{BenchTime\_GetMin}{BenchTime\_GetMin}}
{\footnotesize\ttfamily \label{group___b_e_n_c_h___t_i_m_e_ga91e352219014c7ea5507bbbe4b15912d}
\#define Bench\+Time\+\_\+\+Get\+Min(\begin{DoxyParamCaption}\item[{}]{channel}{}\end{DoxyParamCaption})}
{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{0}
\end{DoxyCode}
Definition at line \mbox{\hyperlink{bench__time_8h_source_l00244}{244}} of file \mbox{\hyperlink{bench__time_8h_source}{bench\+\_\+time.\+h}}.
\Hypertarget{group___b_e_n_c_h___t_i_m_e_gab8103362e89bad95d965ac668284065c}\index{Time measurement@{Time measurement}!BenchTime\_GetMax@{BenchTime\_GetMax}}
\index{BenchTime\_GetMax@{BenchTime\_GetMax}!Time measurement@{Time measurement}}
\doxysubsubsubsubsection{\texorpdfstring{BenchTime\_GetMax}{BenchTime\_GetMax}}
{\footnotesize\ttfamily \label{group___b_e_n_c_h___t_i_m_e_gab8103362e89bad95d965ac668284065c}
\#define Bench\+Time\+\_\+\+Get\+Max(\begin{DoxyParamCaption}\item[{}]{channel}{}\end{DoxyParamCaption})}
{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{0}
\end{DoxyCode}
Definition at line \mbox{\hyperlink{bench__time_8h_source_l00245}{245}} of file \mbox{\hyperlink{bench__time_8h_source}{bench\+\_\+time.\+h}}.
\Hypertarget{group___b_e_n_c_h___t_i_m_e_ga9f82f5ed8cfae31292dc3dca41471dd5}\index{Time measurement@{Time measurement}!BenchTime\_GetAverage@{BenchTime\_GetAverage}}
\index{BenchTime\_GetAverage@{BenchTime\_GetAverage}!Time measurement@{Time measurement}}
\doxysubsubsubsubsection{\texorpdfstring{BenchTime\_GetAverage}{BenchTime\_GetAverage}}
{\footnotesize\ttfamily \label{group___b_e_n_c_h___t_i_m_e_ga9f82f5ed8cfae31292dc3dca41471dd5}
\#define Bench\+Time\+\_\+\+Get\+Average(\begin{DoxyParamCaption}\item[{}]{channel}{}\end{DoxyParamCaption})}
{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{0}
\end{DoxyCode}
Definition at line \mbox{\hyperlink{bench__time_8h_source_l00246}{246}} of file \mbox{\hyperlink{bench__time_8h_source}{bench\+\_\+time.\+h}}.
\Hypertarget{group___b_e_n_c_h___t_i_m_e_gaafbca7155cfc97b68428da2b0b1200ef}\index{Time measurement@{Time measurement}!BenchTime\_GetCount@{BenchTime\_GetCount}}
\index{BenchTime\_GetCount@{BenchTime\_GetCount}!Time measurement@{Time measurement}}
\doxysubsubsubsubsection{\texorpdfstring{BenchTime\_GetCount}{BenchTime\_GetCount}}
{\footnotesize\ttfamily \label{group___b_e_n_c_h___t_i_m_e_gaafbca7155cfc97b68428da2b0b1200ef}
\#define Bench\+Time\+\_\+\+Get\+Count(\begin{DoxyParamCaption}\item[{}]{channel}{}\end{DoxyParamCaption})}
{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{0}
\end{DoxyCode}
Definition at line \mbox{\hyperlink{bench__time_8h_source_l00247}{247}} of file \mbox{\hyperlink{bench__time_8h_source}{bench\+\_\+time.\+h}}.
\Hypertarget{group___b_e_n_c_h___t_i_m_e_ga9911aa13a8fa67c35a261d1cb3dc11e7}\index{Time measurement@{Time measurement}!BenchTime\_GetLast@{BenchTime\_GetLast}}
\index{BenchTime\_GetLast@{BenchTime\_GetLast}!Time measurement@{Time measurement}}
\doxysubsubsubsubsection{\texorpdfstring{BenchTime\_GetLast}{BenchTime\_GetLast}}
{\footnotesize\ttfamily \label{group___b_e_n_c_h___t_i_m_e_ga9911aa13a8fa67c35a261d1cb3dc11e7}
\#define Bench\+Time\+\_\+\+Get\+Last(\begin{DoxyParamCaption}\item[{}]{channel}{}\end{DoxyParamCaption})}
{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{0}
\end{DoxyCode}
Definition at line \mbox{\hyperlink{bench__time_8h_source_l00248}{248}} of file \mbox{\hyperlink{bench__time_8h_source}{bench\+\_\+time.\+h}}.
\Hypertarget{group___b_e_n_c_h___t_i_m_e_ga09b9a6ef9b60605fc0015f6b379d8420}\index{Time measurement@{Time measurement}!BenchTime\_ResetStats@{BenchTime\_ResetStats}}
\index{BenchTime\_ResetStats@{BenchTime\_ResetStats}!Time measurement@{Time measurement}}
\doxysubsubsubsubsection{\texorpdfstring{BenchTime\_ResetStats}{BenchTime\_ResetStats}}
{\footnotesize\ttfamily \label{group___b_e_n_c_h___t_i_m_e_ga09b9a6ef9b60605fc0015f6b379d8420}
\#define Bench\+Time\+\_\+\+Reset\+Stats(\begin{DoxyParamCaption}\item[{}]{channel}{}\end{DoxyParamCaption})}
Definition at line \mbox{\hyperlink{bench__time_8h_source_l00249}{249}} of file \mbox{\hyperlink{bench__time_8h_source}{bench\+\_\+time.\+h}}.

View File

@@ -0,0 +1 @@
b15e6059b024c1bd57db4f03c04931dd

View File

@@ -0,0 +1,202 @@
\doxysubsubsection{Bit access defines }
\hypertarget{group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s}{}\label{group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s}\index{Bit access defines@{Bit access defines}}
Макросы и typedef\textquotesingle{}ы для работы с битами в unsigned типах.
Collaboration diagram for Bit access defines\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=288pt]{group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s}
\end{center}
\end{figure}
\doxysubsubsubsubsection*{Classes}
\begin{DoxyCompactItemize}
\item
union \mbox{\hyperlink{unionuint8___bit_type_def}{uint8\+\_\+\+Bit\+Type\+Def}}
\item
union \mbox{\hyperlink{unionuint16___bit_type_def}{uint16\+\_\+\+Bit\+Type\+Def}}
\item
union \mbox{\hyperlink{unionuint32___bit_type_def}{uint32\+\_\+\+Bit\+Type\+Def}}
\item
union \mbox{\hyperlink{unionuint64___bit_type_def}{uint64\+\_\+\+Bit\+Type\+Def}}
\end{DoxyCompactItemize}
\doxysubsubsubsubsection*{Macros}
\begin{DoxyCompactItemize}
\item
\#define \mbox{\hyperlink{group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s_ga57dc3bb3472a66fc92312f89d42d2396}{uint8\+\_\+bit}}(\+\_\+uint8\+\_\+, \+\_\+bit\+\_\+)
\begin{DoxyCompactList}\small\item\em Получить n-\/й бит из uint8\+\_\+t. \end{DoxyCompactList}\item
\#define \mbox{\hyperlink{group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s_ga6a122b536ad99ae611c8cf01437af086}{uint16\+\_\+bit}}(\+\_\+uint8\+\_\+, \+\_\+bit\+\_\+)
\begin{DoxyCompactList}\small\item\em Получить n-\/й бит из uint16\+\_\+t. \end{DoxyCompactList}\item
\#define \mbox{\hyperlink{group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s_gafaa2080168b1b6f7281e8bfabab022d1}{uint32\+\_\+bit}}(\+\_\+uint8\+\_\+, \+\_\+bit\+\_\+)
\begin{DoxyCompactList}\small\item\em Получить n-\/й бит из uint32\+\_\+t. \end{DoxyCompactList}\item
\#define \mbox{\hyperlink{group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s_ga47eb69ce9330a1c73fe8031240f02f0a}{uint64\+\_\+bit}}(\+\_\+uint8\+\_\+, \+\_\+bit\+\_\+)
\begin{DoxyCompactList}\small\item\em Получить n-\/й бит из uint64\+\_\+t. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsubsection{Detailed Description}
Макросы и typedef\textquotesingle{}ы для работы с битами в unsigned типах.
В этом файле определены макросы для получения значения конкретного бита\texorpdfstring{$^\wedge$}{\string^}
\begin{DoxyItemize}
\item \doxylink{group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s_ga57dc3bb3472a66fc92312f89d42d2396}{uint8\+\_\+bit}
\item \doxylink{group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s_ga6a122b536ad99ae611c8cf01437af086}{uint16\+\_\+bit}
\item \doxylink{group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s_gafaa2080168b1b6f7281e8bfabab022d1}{uint32\+\_\+bit}
\item \doxylink{group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s_ga47eb69ce9330a1c73fe8031240f02f0a}{uint64\+\_\+bit}
\end{DoxyItemize}
Особенности использования\+:
\begin{DoxyItemize}
\item Индекс бита должен быть {\bfseries{константой на этапе компиляции}}. Пример верного использования\+:
\begin{DoxyCode}{0}
\DoxyCodeLine{uint8\_t\ val\ =\ 0x05;}
\DoxyCodeLine{uint8\_t\ b2\ =\ \mbox{\hyperlink{group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s_ga57dc3bb3472a66fc92312f89d42d2396}{uint8\_bit}}(val,\ 2);\ \textcolor{comment}{//\ Получить\ бит\ 2}}
\DoxyCodeLine{\mbox{\hyperlink{group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s_ga57dc3bb3472a66fc92312f89d42d2396}{uint8\_bit}}(val,\ 6)\ =\ 1;\ \textcolor{comment}{//\ Записать\ бит\ 6}}
\end{DoxyCode}
\item Нельзя использовать переменные в качестве индекса\+:
\begin{DoxyCode}{0}
\DoxyCodeLine{uint8\_t\ i\ =\ 2;}
\DoxyCodeLine{\mbox{\hyperlink{group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s_ga57dc3bb3472a66fc92312f89d42d2396}{uint8\_bit}}(val,\ i);\ \textcolor{comment}{//\ Не\ сработает!}}
\end{DoxyCode}
\item Макросы возвращают 0 или 1.
\item Доступ реализован через приведение к {\ttfamily union} с битовыми полями, поэтому это безопасный способ работы с отдельными битами без ручного сдвига и маскирования.
\end{DoxyItemize}
\label{doc-define-members}
\Hypertarget{group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s_doc-define-members}
\doxysubsubsubsection{Macro Definition Documentation}
\Hypertarget{group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s_ga57dc3bb3472a66fc92312f89d42d2396}\index{Bit access defines@{Bit access defines}!uint8\_bit@{uint8\_bit}}
\index{uint8\_bit@{uint8\_bit}!Bit access defines@{Bit access defines}}
\doxysubsubsubsubsection{\texorpdfstring{uint8\_bit}{uint8\_bit}}
{\footnotesize\ttfamily \label{group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s_ga57dc3bb3472a66fc92312f89d42d2396}
\#define uint8\+\_\+bit(\begin{DoxyParamCaption}\item[{}]{\+\_\+uint8\+\_\+}{, }\item[{}]{\+\_\+bit\+\_\+}{}\end{DoxyParamCaption})}
{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{(*(\mbox{\hyperlink{unionuint8___bit_type_def}{uint8\_BitTypeDef}}\ *)(\&(\_uint8\_))).bit.bit\#\#\_bit\_}
\end{DoxyCode}
Получить n-\/й бит из uint8\+\_\+t.
\begin{DoxyParams}{Parameters}
{\em \+\_\+uint8\+\_\+} & Переменная типа uint8\+\_\+t \\
\hline
{\em \+\_\+bit\+\_\+} & Константный номер бита (0..7) \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Значение выбранного бита (0 или 1)
\end{DoxyReturn}
\begin{DoxyNote}{Note}
Индекс бита должен быть известен на этапе компиляции!
\end{DoxyNote}
Definition at line \mbox{\hyperlink{bit__access_8h_source_l00129}{129}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}.
\Hypertarget{group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s_ga6a122b536ad99ae611c8cf01437af086}\index{Bit access defines@{Bit access defines}!uint16\_bit@{uint16\_bit}}
\index{uint16\_bit@{uint16\_bit}!Bit access defines@{Bit access defines}}
\doxysubsubsubsubsection{\texorpdfstring{uint16\_bit}{uint16\_bit}}
{\footnotesize\ttfamily \label{group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s_ga6a122b536ad99ae611c8cf01437af086}
\#define uint16\+\_\+bit(\begin{DoxyParamCaption}\item[{}]{\+\_\+uint8\+\_\+}{, }\item[{}]{\+\_\+bit\+\_\+}{}\end{DoxyParamCaption})}
{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{(*(\mbox{\hyperlink{unionuint16___bit_type_def}{uint16\_BitTypeDef}}\ *)(\&(\_uint8\_))).bit.bit\#\#\_bit\_}
\end{DoxyCode}
Получить n-\/й бит из uint16\+\_\+t.
\begin{DoxyParams}{Parameters}
{\em \+\_\+uint16\+\_\+} & Переменная типа uint16\+\_\+t \\
\hline
{\em \+\_\+bit\+\_\+} & Константный номер бита (0..15) \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Значение выбранного бита (0 или 1)
\end{DoxyReturn}
\begin{DoxyNote}{Note}
Индекс бита должен быть известен на этапе компиляции!
\end{DoxyNote}
Definition at line \mbox{\hyperlink{bit__access_8h_source_l00137}{137}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}.
\Hypertarget{group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s_gafaa2080168b1b6f7281e8bfabab022d1}\index{Bit access defines@{Bit access defines}!uint32\_bit@{uint32\_bit}}
\index{uint32\_bit@{uint32\_bit}!Bit access defines@{Bit access defines}}
\doxysubsubsubsubsection{\texorpdfstring{uint32\_bit}{uint32\_bit}}
{\footnotesize\ttfamily \label{group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s_gafaa2080168b1b6f7281e8bfabab022d1}
\#define uint32\+\_\+bit(\begin{DoxyParamCaption}\item[{}]{\+\_\+uint8\+\_\+}{, }\item[{}]{\+\_\+bit\+\_\+}{}\end{DoxyParamCaption})}
{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{(*(\mbox{\hyperlink{unionuint32___bit_type_def}{uint32\_BitTypeDef}}\ *)(\&(\_uint8\_))).bit.bit\#\#\_bit\_}
\end{DoxyCode}
Получить n-\/й бит из uint32\+\_\+t.
\begin{DoxyParams}{Parameters}
{\em \+\_\+uint32\+\_\+} & Переменная типа uint32\+\_\+t \\
\hline
{\em \+\_\+bit\+\_\+} & Константный номер бита (0..31) \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Значение выбранного бита (0 или 1)
\end{DoxyReturn}
\begin{DoxyNote}{Note}
Индекс бита должен быть известен на этапе компиляции!
\end{DoxyNote}
Definition at line \mbox{\hyperlink{bit__access_8h_source_l00145}{145}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}.
\Hypertarget{group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s_ga47eb69ce9330a1c73fe8031240f02f0a}\index{Bit access defines@{Bit access defines}!uint64\_bit@{uint64\_bit}}
\index{uint64\_bit@{uint64\_bit}!Bit access defines@{Bit access defines}}
\doxysubsubsubsubsection{\texorpdfstring{uint64\_bit}{uint64\_bit}}
{\footnotesize\ttfamily \label{group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s_ga47eb69ce9330a1c73fe8031240f02f0a}
\#define uint64\+\_\+bit(\begin{DoxyParamCaption}\item[{}]{\+\_\+uint8\+\_\+}{, }\item[{}]{\+\_\+bit\+\_\+}{}\end{DoxyParamCaption})}
{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{(*(\mbox{\hyperlink{unionuint64___bit_type_def}{uint64\_BitTypeDef}}\ *)(\&(\_uint8\_))).bit.bit\#\#\_bit\_}
\end{DoxyCode}
Получить n-\/й бит из uint64\+\_\+t.
\begin{DoxyParams}{Parameters}
{\em \+\_\+uint64\+\_\+} & Переменная типа uint64\+\_\+t \\
\hline
{\em \+\_\+bit\+\_\+} & Константный номер бита (0..63) \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Значение выбранного бита (0 или 1)
\end{DoxyReturn}
\begin{DoxyNote}{Note}
Индекс бита должен быть известен на этапе компиляции!
\end{DoxyNote}
Definition at line \mbox{\hyperlink{bit__access_8h_source_l00153}{153}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}.

View File

@@ -0,0 +1 @@
9bb1fbf15e0d245a5219c269dfcf886b

View File

@@ -0,0 +1,178 @@
\doxysubsubsection{Delays defines }
\hypertarget{group___d_e_l_a_y_s___d_e_f_i_n_e_s}{}\label{group___d_e_l_a_y_s___d_e_f_i_n_e_s}\index{Delays defines@{Delays defines}}
Макросы и определения для работы с задержками в миллисекундах.
Collaboration diagram for Delays defines\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=273pt]{group___d_e_l_a_y_s___d_e_f_i_n_e_s}
\end{center}
\end{figure}
\doxysubsubsubsubsection*{Macros}
\begin{DoxyCompactItemize}
\item
\#define \mbox{\hyperlink{group___d_e_l_a_y_s___d_e_f_i_n_e_s_gabeb97579daeb622c6651ed03c4a27479}{ms\+Delay}}(\+\_\+ms\+\_\+)
\begin{DoxyCompactList}\small\item\em Блокирующая задержка на указанное количество миллисекунд. \end{DoxyCompactList}\item
\#define \mbox{\hyperlink{group___d_e_l_a_y_s___d_e_f_i_n_e_s_ga8a5051b1292d1019fe8dd3fc5521ab25}{ms\+Delay\+Start}}(\+\_\+pvar\+\_\+)
\begin{DoxyCompactList}\small\item\em Начать отсчет задержки. \end{DoxyCompactList}\item
\#define \mbox{\hyperlink{group___d_e_l_a_y_s___d_e_f_i_n_e_s_ga0b97e172659a59ee4fa56f851643ae85}{ms\+Delay\+While\+Active}}(\+\_\+ms\+\_\+, \+\_\+pvar\+\_\+)
\begin{DoxyCompactList}\small\item\em Проверяет, активна ли задержка. \end{DoxyCompactList}\item
\#define \mbox{\hyperlink{group___d_e_l_a_y_s___d_e_f_i_n_e_s_gaed082c07b9fc4d1894330d885b9b5518}{ms\+Delay\+Wait\+Done}}(\+\_\+ms\+\_\+, \+\_\+pvar\+\_\+)
\begin{DoxyCompactList}\small\item\em Проверяет, завершилась ли задержка. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsubsection{Detailed Description}
Макросы и определения для работы с задержками в миллисекундах.
Этот блок содержит макросы для реализации задержек с использованием HAL или Free\+RTOS\+:
\begin{DoxyItemize}
\item \doxylink{group___d_e_l_a_y_s___d_e_f_i_n_e_s_gabeb97579daeb622c6651ed03c4a27479}{ms\+Delay} — простая задержка заданной длительности;
\item \doxylink{group___d_e_l_a_y_s___d_e_f_i_n_e_s_ga8a5051b1292d1019fe8dd3fc5521ab25}{ms\+Delay\+Start} — сохранение текущего времени начала задержки;
\item \doxylink{group___d_e_l_a_y_s___d_e_f_i_n_e_s_ga0b97e172659a59ee4fa56f851643ae85}{ms\+Delay\+While\+Active} — проверка, активна ли задержка;
\item \doxylink{group___d_e_l_a_y_s___d_e_f_i_n_e_s_gaed082c07b9fc4d1894330d885b9b5518}{ms\+Delay\+Wait\+Done} — проверка, завершена ли задержка. Эти макросы удобны для реализации неблокирующих задержек.
\end{DoxyItemize}
\label{doc-define-members}
\Hypertarget{group___d_e_l_a_y_s___d_e_f_i_n_e_s_doc-define-members}
\doxysubsubsubsection{Macro Definition Documentation}
\Hypertarget{group___d_e_l_a_y_s___d_e_f_i_n_e_s_gabeb97579daeb622c6651ed03c4a27479}\index{Delays defines@{Delays defines}!msDelay@{msDelay}}
\index{msDelay@{msDelay}!Delays defines@{Delays defines}}
\doxysubsubsubsubsection{\texorpdfstring{msDelay}{msDelay}}
{\footnotesize\ttfamily \label{group___d_e_l_a_y_s___d_e_f_i_n_e_s_gabeb97579daeb622c6651ed03c4a27479}
\#define ms\+Delay(\begin{DoxyParamCaption}\item[{}]{\+\_\+ms\+\_\+}{}\end{DoxyParamCaption})}
{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{\ \ \ \ \textcolor{keywordflow}{do}\ \{\ \(\backslash\)}
\DoxyCodeLine{\ \ \ \ \ \ \ \ uint32\_t\ \_start\_\ =\ \mbox{\hyperlink{group___t_r_a_c_e___s_e_r_i_a_l_ga9c853b02c22f26023c34d1d404b6d653}{local\_time}}();\ \(\backslash\)}
\DoxyCodeLine{\ \ \ \ \ \ \ \ while\ (\mbox{\hyperlink{group___t_r_a_c_e___s_e_r_i_a_l_ga9c853b02c22f26023c34d1d404b6d653}{local\_time}}()\ -\/\ \_start\_\ <\ (\_ms\_))\ \{\}\ \(\backslash\)}
\DoxyCodeLine{\ \ \ \ \}\ \textcolor{keywordflow}{while}(0)}
\end{DoxyCode}
Блокирующая задержка на указанное количество миллисекунд.
\begin{DoxyParams}{Parameters}
{\em \+\_\+ms\+\_\+} & Время задержки в миллисекундах. \\
\hline
\end{DoxyParams}
\begin{DoxyNote}{Note}
Использует задержку через \doxylink{group___t_r_a_c_e___s_e_r_i_a_l_ga9c853b02c22f26023c34d1d404b6d653}{local\+\_\+time} или os\+Delay в зависимости от \doxylink{group___l_i_b_s___c_o_n_f_i_g_ga57c369737d5c0cfdb7baeecba0a4b151}{FREERTOS\+\_\+\+DELAY}.
\end{DoxyNote}
Definition at line \mbox{\hyperlink{mylibs__defs_8h_source_l00097}{97}} of file \mbox{\hyperlink{mylibs__defs_8h_source}{mylibs\+\_\+defs.\+h}}.
\Hypertarget{group___d_e_l_a_y_s___d_e_f_i_n_e_s_ga8a5051b1292d1019fe8dd3fc5521ab25}\index{Delays defines@{Delays defines}!msDelayStart@{msDelayStart}}
\index{msDelayStart@{msDelayStart}!Delays defines@{Delays defines}}
\doxysubsubsubsubsection{\texorpdfstring{msDelayStart}{msDelayStart}}
{\footnotesize\ttfamily \label{group___d_e_l_a_y_s___d_e_f_i_n_e_s_ga8a5051b1292d1019fe8dd3fc5521ab25}
\#define ms\+Delay\+Start(\begin{DoxyParamCaption}\item[{}]{\+\_\+pvar\+\_\+}{}\end{DoxyParamCaption})}
{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{*(\_pvar\_)\ =\ \mbox{\hyperlink{group___t_r_a_c_e___s_e_r_i_a_l_ga9c853b02c22f26023c34d1d404b6d653}{local\_time}}()}
\end{DoxyCode}
Начать отсчет задержки.
\begin{DoxyParams}{Parameters}
{\em \+\_\+pvar\+\_\+} & Указатель на переменную типа uint32\+\_\+t для хранения времени старта.\\
\hline
\end{DoxyParams}
После вызова этого макроса переменная {\itshape pvar} содержит текущее количество миллисекунд с момента запуска системы (\doxylink{group___t_r_a_c_e___s_e_r_i_a_l_ga9c853b02c22f26023c34d1d404b6d653}{local\+\_\+time}).
Используется для реализации неблокирующих задержек.
Definition at line \mbox{\hyperlink{mylibs__defs_8h_source_l00113}{113}} of file \mbox{\hyperlink{mylibs__defs_8h_source}{mylibs\+\_\+defs.\+h}}.
\Hypertarget{group___d_e_l_a_y_s___d_e_f_i_n_e_s_ga0b97e172659a59ee4fa56f851643ae85}\index{Delays defines@{Delays defines}!msDelayWhileActive@{msDelayWhileActive}}
\index{msDelayWhileActive@{msDelayWhileActive}!Delays defines@{Delays defines}}
\doxysubsubsubsubsection{\texorpdfstring{msDelayWhileActive}{msDelayWhileActive}}
{\footnotesize\ttfamily \label{group___d_e_l_a_y_s___d_e_f_i_n_e_s_ga0b97e172659a59ee4fa56f851643ae85}
\#define ms\+Delay\+While\+Active(\begin{DoxyParamCaption}\item[{}]{\+\_\+ms\+\_\+}{, }\item[{}]{\+\_\+pvar\+\_\+}{}\end{DoxyParamCaption})}
{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{(\mbox{\hyperlink{group___t_r_a_c_e___s_e_r_i_a_l_ga9c853b02c22f26023c34d1d404b6d653}{local\_time}}()\ -\/\ *(\_pvar\_)\ <\ \_ms\_)}
\end{DoxyCode}
Проверяет, активна ли задержка.
\begin{DoxyParams}{Parameters}
{\em \+\_\+ms\+\_\+} & Длительность задержки в миллисекундах. \\
\hline
{\em \+\_\+pvar\+\_\+} & Указатель на переменную, в которой сохранено время начала (\doxylink{group___d_e_l_a_y_s___d_e_f_i_n_e_s_ga8a5051b1292d1019fe8dd3fc5521ab25}{ms\+Delay\+Start}). \\
\hline
\end{DoxyParams}
\begin{DoxyRetVals}{Return values}
{\em 1} & Задержка еще активна. \\
\hline
{\em 0} & Задержка завершена.\\
\hline
\end{DoxyRetVals}
Возвращает true, пока время задержки не истекло. Используется в проверках, когда нужно {\bfseries{действовать, пока задержка выполняется}}. Пример\+:
\begin{DoxyCode}{0}
\DoxyCodeLine{\textcolor{keywordflow}{while}(\mbox{\hyperlink{group___d_e_l_a_y_s___d_e_f_i_n_e_s_ga0b97e172659a59ee4fa56f851643ae85}{msDelayWhileActive}}(1000,\ \&tick))\ \{}
\DoxyCodeLine{\ \ \ \ \textcolor{comment}{//\ выполняем\ другие\ задачи,\ задержка\ не\ блокирует\ поток}}
\DoxyCodeLine{\}}
\end{DoxyCode}
Definition at line \mbox{\hyperlink{mylibs__defs_8h_source_l00130}{130}} of file \mbox{\hyperlink{mylibs__defs_8h_source}{mylibs\+\_\+defs.\+h}}.
\Hypertarget{group___d_e_l_a_y_s___d_e_f_i_n_e_s_gaed082c07b9fc4d1894330d885b9b5518}\index{Delays defines@{Delays defines}!msDelayWaitDone@{msDelayWaitDone}}
\index{msDelayWaitDone@{msDelayWaitDone}!Delays defines@{Delays defines}}
\doxysubsubsubsubsection{\texorpdfstring{msDelayWaitDone}{msDelayWaitDone}}
{\footnotesize\ttfamily \label{group___d_e_l_a_y_s___d_e_f_i_n_e_s_gaed082c07b9fc4d1894330d885b9b5518}
\#define ms\+Delay\+Wait\+Done(\begin{DoxyParamCaption}\item[{}]{\+\_\+ms\+\_\+}{, }\item[{}]{\+\_\+pvar\+\_\+}{}\end{DoxyParamCaption})}
{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{(\mbox{\hyperlink{group___t_r_a_c_e___s_e_r_i_a_l_ga9c853b02c22f26023c34d1d404b6d653}{local\_time}}()\ -\/\ *(\_pvar\_)\ >=\ \_ms\_)}
\end{DoxyCode}
Проверяет, завершилась ли задержка.
\begin{DoxyParams}{Parameters}
{\em \+\_\+ms\+\_\+} & Длительность задержки в миллисекундах. \\
\hline
{\em \+\_\+pvar\+\_\+} & Указатель на переменную, в которой сохранено время начала (ms\+Delay\+Start). \\
\hline
\end{DoxyParams}
\begin{DoxyRetVals}{Return values}
{\em 1} & Задержка завершена. \\
\hline
{\em 0} & Задержка еще активна.\\
\hline
\end{DoxyRetVals}
Возвращает true, когда задержка уже завершена. Используется в проверках, когда нужно {\bfseries{выполнить действие только после окончания задержки}}. Пример\+:
\begin{DoxyCode}{0}
\DoxyCodeLine{\textcolor{keywordflow}{if}(\mbox{\hyperlink{group___d_e_l_a_y_s___d_e_f_i_n_e_s_gaed082c07b9fc4d1894330d885b9b5518}{msDelayWaitDone}}(1000,\ \&tick))\ \{}
\DoxyCodeLine{\ \ \ \ \textcolor{comment}{//\ выполняем\ действие\ после\ завершения\ задержки}}
\DoxyCodeLine{\}}
\end{DoxyCode}
Definition at line \mbox{\hyperlink{mylibs__defs_8h_source_l00147}{147}} of file \mbox{\hyperlink{mylibs__defs_8h_source}{mylibs\+\_\+defs.\+h}}.

View File

@@ -0,0 +1 @@
48759eae8e94aea68fae58ca8d91b5d1

View File

@@ -0,0 +1,160 @@
\doxysubsubsection{Error Handler defines }
\hypertarget{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s}{}\label{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s}\index{Error Handler defines@{Error Handler defines}}
Дефайны для обработки ошибок
Collaboration diagram for Error Handler defines\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=300pt]{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s}
\end{center}
\end{figure}
\doxysubsubsubsubsection*{Macros}
\begin{DoxyCompactItemize}
\item
\#define \mbox{\hyperlink{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_gae110df81afd885a390bbeb152d7b709f}{My\+Libs\+\_\+\+Error\+\_\+\+Handler}}(params)
\begin{DoxyCompactList}\small\item\em Error\+\_\+\+Handler который будет вызыватся в библиотеке \end{DoxyCompactList}\item
\#define \mbox{\hyperlink{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_ga5d066a5b9781f9437e75d98677489eb9}{check\+\_\+null\+\_\+ptr\+\_\+1}}(p1)
\begin{DoxyCompactList}\small\item\em Проверить один указатель на NULL. \end{DoxyCompactList}\item
\#define \mbox{\hyperlink{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_ga27b363f333cacdccc15f5174e096b5b3}{check\+\_\+null\+\_\+ptr\+\_\+2}}(p1, p2)
\begin{DoxyCompactList}\small\item\em Проверить два указателя на NULL. \end{DoxyCompactList}\item
\#define \mbox{\hyperlink{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_ga838b40542faa9aa273d18f921b21fda2}{check\+\_\+null\+\_\+ptr\+\_\+3}}(p1, p2, p3)
\begin{DoxyCompactList}\small\item\em Проверить три указателя на NULL. \end{DoxyCompactList}\item
\#define \mbox{\hyperlink{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_ga590973be111afc3f9ba15e6939530254}{check\+\_\+null\+\_\+ptr\+\_\+4}}(p1, p2, p3, p4)
\begin{DoxyCompactList}\small\item\em Проверить четыре указателя на NULL. \end{DoxyCompactList}\item
\#define \mbox{\hyperlink{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_gaab0aafd7a4a21ec4f338b19269f65490}{check\+\_\+null\+\_\+ptr\+\_\+5}}(p1, p2, p3, p4, p5)
\begin{DoxyCompactList}\small\item\em Проверить пять указателей на NULL. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsubsubsection*{Functions}
\begin{DoxyCompactItemize}
\item
\Hypertarget{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_ga1730ffe1e560465665eb47d9264826f9}\label{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_ga1730ffe1e560465665eb47d9264826f9}
void {\bfseries Error\+\_\+\+Handler} (void)
\end{DoxyCompactItemize}
\doxysubsubsubsection{Detailed Description}
Дефайны для обработки ошибок
\label{doc-define-members}
\Hypertarget{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_doc-define-members}
\doxysubsubsubsection{Macro Definition Documentation}
\Hypertarget{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_gae110df81afd885a390bbeb152d7b709f}\index{Error Handler defines@{Error Handler defines}!MyLibs\_Error\_Handler@{MyLibs\_Error\_Handler}}
\index{MyLibs\_Error\_Handler@{MyLibs\_Error\_Handler}!Error Handler defines@{Error Handler defines}}
\doxysubsubsubsubsection{\texorpdfstring{MyLibs\_Error\_Handler}{MyLibs\_Error\_Handler}}
{\footnotesize\ttfamily \label{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_gae110df81afd885a390bbeb152d7b709f}
\#define My\+Libs\+\_\+\+Error\+\_\+\+Handler(\begin{DoxyParamCaption}\item[{}]{params}{}\end{DoxyParamCaption})}
{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{Error\_Handler(params)}
\end{DoxyCode}
Error\+\_\+\+Handler который будет вызыватся в библиотеке
Definition at line \mbox{\hyperlink{mylibs__defs_8h_source_l00046}{46}} of file \mbox{\hyperlink{mylibs__defs_8h_source}{mylibs\+\_\+defs.\+h}}.
\Hypertarget{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_ga5d066a5b9781f9437e75d98677489eb9}\index{Error Handler defines@{Error Handler defines}!check\_null\_ptr\_1@{check\_null\_ptr\_1}}
\index{check\_null\_ptr\_1@{check\_null\_ptr\_1}!Error Handler defines@{Error Handler defines}}
\doxysubsubsubsubsection{\texorpdfstring{check\_null\_ptr\_1}{check\_null\_ptr\_1}}
{\footnotesize\ttfamily \label{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_ga5d066a5b9781f9437e75d98677489eb9}
\#define check\+\_\+null\+\_\+ptr\+\_\+1(\begin{DoxyParamCaption}\item[{}]{p1}{}\end{DoxyParamCaption})}
{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{(p1\ ==\ NULL)}
\end{DoxyCode}
Проверить один указатель на NULL.
Definition at line \mbox{\hyperlink{mylibs__defs_8h_source_l00053}{53}} of file \mbox{\hyperlink{mylibs__defs_8h_source}{mylibs\+\_\+defs.\+h}}.
\Hypertarget{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_ga27b363f333cacdccc15f5174e096b5b3}\index{Error Handler defines@{Error Handler defines}!check\_null\_ptr\_2@{check\_null\_ptr\_2}}
\index{check\_null\_ptr\_2@{check\_null\_ptr\_2}!Error Handler defines@{Error Handler defines}}
\doxysubsubsubsubsection{\texorpdfstring{check\_null\_ptr\_2}{check\_null\_ptr\_2}}
{\footnotesize\ttfamily \label{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_ga27b363f333cacdccc15f5174e096b5b3}
\#define check\+\_\+null\+\_\+ptr\+\_\+2(\begin{DoxyParamCaption}\item[{}]{p1}{, }\item[{}]{p2}{}\end{DoxyParamCaption})}
{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{((p1\ ==\ NULL)\ ||\ (p1\ !=\ NULL\ \&\&\ p2\ ==\ NULL))}
\end{DoxyCode}
Проверить два указателя на NULL.
Definition at line \mbox{\hyperlink{mylibs__defs_8h_source_l00056}{56}} of file \mbox{\hyperlink{mylibs__defs_8h_source}{mylibs\+\_\+defs.\+h}}.
\Hypertarget{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_ga838b40542faa9aa273d18f921b21fda2}\index{Error Handler defines@{Error Handler defines}!check\_null\_ptr\_3@{check\_null\_ptr\_3}}
\index{check\_null\_ptr\_3@{check\_null\_ptr\_3}!Error Handler defines@{Error Handler defines}}
\doxysubsubsubsubsection{\texorpdfstring{check\_null\_ptr\_3}{check\_null\_ptr\_3}}
{\footnotesize\ttfamily \label{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_ga838b40542faa9aa273d18f921b21fda2}
\#define check\+\_\+null\+\_\+ptr\+\_\+3(\begin{DoxyParamCaption}\item[{}]{p1}{, }\item[{}]{p2}{, }\item[{}]{p3}{}\end{DoxyParamCaption})}
{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{((p1\ ==\ NULL)\ ||\ (p1\ !=\ NULL\ \&\&\ ((p2\ ==\ NULL)\ ||\ (p2\ !=\ NULL\ \&\&\ p3\ ==\ NULL))))}
\end{DoxyCode}
Проверить три указателя на NULL.
Definition at line \mbox{\hyperlink{mylibs__defs_8h_source_l00059}{59}} of file \mbox{\hyperlink{mylibs__defs_8h_source}{mylibs\+\_\+defs.\+h}}.
\Hypertarget{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_ga590973be111afc3f9ba15e6939530254}\index{Error Handler defines@{Error Handler defines}!check\_null\_ptr\_4@{check\_null\_ptr\_4}}
\index{check\_null\_ptr\_4@{check\_null\_ptr\_4}!Error Handler defines@{Error Handler defines}}
\doxysubsubsubsubsection{\texorpdfstring{check\_null\_ptr\_4}{check\_null\_ptr\_4}}
{\footnotesize\ttfamily \label{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_ga590973be111afc3f9ba15e6939530254}
\#define check\+\_\+null\+\_\+ptr\+\_\+4(\begin{DoxyParamCaption}\item[{}]{p1}{, }\item[{}]{p2}{, }\item[{}]{p3}{, }\item[{}]{p4}{}\end{DoxyParamCaption})}
{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{((p1\ ==\ NULL)\ ||\ (p1\ !=\ NULL\ \&\&\ ((p2\ ==\ NULL)\ ||\ (p2\ !=\ NULL\ \&\&\ ((p3\ ==\ NULL)\ ||\ (p3\ !=\ NULL\ \&\&\ p4\ ==\ NULL))))))}
\end{DoxyCode}
Проверить четыре указателя на NULL.
Definition at line \mbox{\hyperlink{mylibs__defs_8h_source_l00062}{62}} of file \mbox{\hyperlink{mylibs__defs_8h_source}{mylibs\+\_\+defs.\+h}}.
\Hypertarget{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_gaab0aafd7a4a21ec4f338b19269f65490}\index{Error Handler defines@{Error Handler defines}!check\_null\_ptr\_5@{check\_null\_ptr\_5}}
\index{check\_null\_ptr\_5@{check\_null\_ptr\_5}!Error Handler defines@{Error Handler defines}}
\doxysubsubsubsubsection{\texorpdfstring{check\_null\_ptr\_5}{check\_null\_ptr\_5}}
{\footnotesize\ttfamily \label{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_gaab0aafd7a4a21ec4f338b19269f65490}
\#define check\+\_\+null\+\_\+ptr\+\_\+5(\begin{DoxyParamCaption}\item[{}]{p1}{, }\item[{}]{p2}{, }\item[{}]{p3}{, }\item[{}]{p4}{, }\item[{}]{p5}{}\end{DoxyParamCaption})}
{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{((p1\ ==\ NULL)\ ||\ (p1\ !=\ NULL\ \&\&\ ((p2\ ==\ NULL)\ ||\ (p2\ !=\ NULL\ \&\&\ ((p3\ ==\ NULL)\ ||\ (p3\ !=\ NULL\ \&\&\ ((p4\ ==\ NULL)\ ||\ (p4\ !=\ NULL\ \&\&\ p5\ ==\ NULL))))))))}
\end{DoxyCode}
Проверить пять указателей на NULL.
Definition at line \mbox{\hyperlink{mylibs__defs_8h_source_l00065}{65}} of file \mbox{\hyperlink{mylibs__defs_8h_source}{mylibs\+\_\+defs.\+h}}.

View File

@@ -0,0 +1 @@
5f0295c96943053471a3de806e4b1afd

View File

@@ -0,0 +1,108 @@
\doxysubsubsection{Genetic configs }
\hypertarget{group___g_e_n___c_o_n_f_i_g}{}\label{group___g_e_n___c_o_n_f_i_g}\index{Genetic configs@{Genetic configs}}
Конфигурация генетического алгоритма обучения
Collaboration diagram for Genetic configs\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=250pt]{group___g_e_n___c_o_n_f_i_g}
\end{center}
\end{figure}
\doxysubsubsubsubsection*{Macros}
\begin{DoxyCompactItemize}
\item
\#define \mbox{\hyperlink{group___g_e_n___c_o_n_f_i_g_gae6d1db3c0b21f67cb0db2673d207b62c}{GEN\+\_\+\+OPTIMIZATION\+\_\+\+ENABLE}}
\begin{DoxyCompactList}\small\item\em Включить оптимизацию параметров \end{DoxyCompactList}\item
\#define \mbox{\hyperlink{group___g_e_n___c_o_n_f_i_g_ga8daf4b266a95353d580bd7946f47c0ab}{GEN\+\_\+\+MAX\+\_\+\+PARAMS}}~20
\begin{DoxyCompactList}\small\item\em Максимальное количество параметров \end{DoxyCompactList}\item
\#define \mbox{\hyperlink{group___g_e_n___c_o_n_f_i_g_ga201cffde04ebc6540869c74bd1dae869}{GEN\+\_\+\+MAX\+\_\+\+CANDIDATES}}~100
\begin{DoxyCompactList}\small\item\em Максимальное количество кандидатов для обучения \end{DoxyCompactList}\item
\#define \mbox{\hyperlink{group___g_e_n___c_o_n_f_i_g_ga67c3c54503b9bbd5d175ac46d37866d9}{BENCH\+\_\+\+TIME\+\_\+\+ENABLE}}
\begin{DoxyCompactList}\small\item\em Включить бенч времени \end{DoxyCompactList}\item
\#define \mbox{\hyperlink{group___g_e_n___c_o_n_f_i_g_ga74fdf777ceefa5e7d67120fbda4cde52}{BENCH\+\_\+\+TIME\+\_\+\+MAX\+\_\+\+CHANNELS}}~16
\begin{DoxyCompactList}\small\item\em Максимальное количество каналов измерения \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsubsection{Detailed Description}
Конфигурация генетического алгоритма обучения
\label{doc-define-members}
\Hypertarget{group___g_e_n___c_o_n_f_i_g_doc-define-members}
\doxysubsubsubsection{Macro Definition Documentation}
\Hypertarget{group___g_e_n___c_o_n_f_i_g_gae6d1db3c0b21f67cb0db2673d207b62c}\index{Genetic configs@{Genetic configs}!GEN\_OPTIMIZATION\_ENABLE@{GEN\_OPTIMIZATION\_ENABLE}}
\index{GEN\_OPTIMIZATION\_ENABLE@{GEN\_OPTIMIZATION\_ENABLE}!Genetic configs@{Genetic configs}}
\doxysubsubsubsubsection{\texorpdfstring{GEN\_OPTIMIZATION\_ENABLE}{GEN\_OPTIMIZATION\_ENABLE}}
{\footnotesize\ttfamily \label{group___g_e_n___c_o_n_f_i_g_gae6d1db3c0b21f67cb0db2673d207b62c}
\#define GEN\+\_\+\+OPTIMIZATION\+\_\+\+ENABLE}
Включить оптимизацию параметров
Definition at line \mbox{\hyperlink{____mylibs__config_8h_source_l00064}{64}} of file \mbox{\hyperlink{____mylibs__config_8h_source}{\+\_\+\+\_\+mylibs\+\_\+config.\+h}}.
\Hypertarget{group___g_e_n___c_o_n_f_i_g_ga8daf4b266a95353d580bd7946f47c0ab}\index{Genetic configs@{Genetic configs}!GEN\_MAX\_PARAMS@{GEN\_MAX\_PARAMS}}
\index{GEN\_MAX\_PARAMS@{GEN\_MAX\_PARAMS}!Genetic configs@{Genetic configs}}
\doxysubsubsubsubsection{\texorpdfstring{GEN\_MAX\_PARAMS}{GEN\_MAX\_PARAMS}}
{\footnotesize\ttfamily \label{group___g_e_n___c_o_n_f_i_g_ga8daf4b266a95353d580bd7946f47c0ab}
\#define GEN\+\_\+\+MAX\+\_\+\+PARAMS~20}
Максимальное количество параметров
Definition at line \mbox{\hyperlink{____mylibs__config_8h_source_l00065}{65}} of file \mbox{\hyperlink{____mylibs__config_8h_source}{\+\_\+\+\_\+mylibs\+\_\+config.\+h}}.
\Hypertarget{group___g_e_n___c_o_n_f_i_g_ga201cffde04ebc6540869c74bd1dae869}\index{Genetic configs@{Genetic configs}!GEN\_MAX\_CANDIDATES@{GEN\_MAX\_CANDIDATES}}
\index{GEN\_MAX\_CANDIDATES@{GEN\_MAX\_CANDIDATES}!Genetic configs@{Genetic configs}}
\doxysubsubsubsubsection{\texorpdfstring{GEN\_MAX\_CANDIDATES}{GEN\_MAX\_CANDIDATES}}
{\footnotesize\ttfamily \label{group___g_e_n___c_o_n_f_i_g_ga201cffde04ebc6540869c74bd1dae869}
\#define GEN\+\_\+\+MAX\+\_\+\+CANDIDATES~100}
Максимальное количество кандидатов для обучения
Definition at line \mbox{\hyperlink{____mylibs__config_8h_source_l00066}{66}} of file \mbox{\hyperlink{____mylibs__config_8h_source}{\+\_\+\+\_\+mylibs\+\_\+config.\+h}}.
\Hypertarget{group___g_e_n___c_o_n_f_i_g_ga67c3c54503b9bbd5d175ac46d37866d9}\index{Genetic configs@{Genetic configs}!BENCH\_TIME\_ENABLE@{BENCH\_TIME\_ENABLE}}
\index{BENCH\_TIME\_ENABLE@{BENCH\_TIME\_ENABLE}!Genetic configs@{Genetic configs}}
\doxysubsubsubsubsection{\texorpdfstring{BENCH\_TIME\_ENABLE}{BENCH\_TIME\_ENABLE}}
{\footnotesize\ttfamily \label{group___g_e_n___c_o_n_f_i_g_ga67c3c54503b9bbd5d175ac46d37866d9}
\#define BENCH\+\_\+\+TIME\+\_\+\+ENABLE}
Включить бенч времени
Definition at line \mbox{\hyperlink{____mylibs__config_8h_source_l00081}{81}} of file \mbox{\hyperlink{____mylibs__config_8h_source}{\+\_\+\+\_\+mylibs\+\_\+config.\+h}}.
\Hypertarget{group___g_e_n___c_o_n_f_i_g_ga74fdf777ceefa5e7d67120fbda4cde52}\index{Genetic configs@{Genetic configs}!BENCH\_TIME\_MAX\_CHANNELS@{BENCH\_TIME\_MAX\_CHANNELS}}
\index{BENCH\_TIME\_MAX\_CHANNELS@{BENCH\_TIME\_MAX\_CHANNELS}!Genetic configs@{Genetic configs}}
\doxysubsubsubsubsection{\texorpdfstring{BENCH\_TIME\_MAX\_CHANNELS}{BENCH\_TIME\_MAX\_CHANNELS}}
{\footnotesize\ttfamily \label{group___g_e_n___c_o_n_f_i_g_ga74fdf777ceefa5e7d67120fbda4cde52}
\#define BENCH\+\_\+\+TIME\+\_\+\+MAX\+\_\+\+CHANNELS~16}
Максимальное количество каналов измерения
Definition at line \mbox{\hyperlink{____mylibs__config_8h_source_l00082}{82}} of file \mbox{\hyperlink{____mylibs__config_8h_source}{\+\_\+\+\_\+mylibs\+\_\+config.\+h}}.

View File

@@ -0,0 +1 @@
117f38e130c123102c33539947be2ce0

View File

@@ -0,0 +1,146 @@
\doxysubsubsection{Genetic optimizer }
\hypertarget{group___g_e_n___o_p_t_i_m_i_z_e_r}{}\label{group___g_e_n___o_p_t_i_m_i_z_e_r}\index{Genetic optimizer@{Genetic optimizer}}
Библиотека для эволюционного подбора параметров
Collaboration diagram for Genetic optimizer\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=279pt]{group___g_e_n___o_p_t_i_m_i_z_e_r}
\end{center}
\end{figure}
\doxysubsubsubsubsection*{Classes}
\begin{DoxyCompactItemize}
\item
struct \mbox{\hyperlink{struct_gen_optimizer__t}{Gen\+Optimizer\+\_\+t}}
\end{DoxyCompactItemize}
\doxysubsubsubsubsection*{Macros}
\begin{DoxyCompactItemize}
\item
\#define \mbox{\hyperlink{group___g_e_n___o_p_t_i_m_i_z_e_r_ga3e654886869ea8182effbfcb99278670}{Gen\+Optimizer\+\_\+\+Init}}(opt, n\+\_\+params, n\+\_\+cand, n\+\_\+best, mutation\+\_\+amp, start\+\_\+params)
\item
\#define \mbox{\hyperlink{group___g_e_n___o_p_t_i_m_i_z_e_r_ga33bbb9131ac7f94c3731dd4130321885}{Gen\+Optimizer\+\_\+\+Step}}(opt, params, Loss\+Func)
\item
\#define \mbox{\hyperlink{group___g_e_n___o_p_t_i_m_i_z_e_r_ga83abbcabaff9111c03ae2475ee72ea3e}{PARAM\+\_\+\+SCALE}}(x, min\+\_\+val, max\+\_\+val)
\item
\#define \mbox{\hyperlink{group___g_e_n___o_p_t_i_m_i_z_e_r_gaa1d5510fe5f0bd989473f3ebe324bde3}{PARAM\+\_\+\+UNSCALE}}(val, min\+\_\+val, max\+\_\+val)
\end{DoxyCompactItemize}
\doxysubsubsubsection{Detailed Description}
Библиотека для эволюционного подбора параметров
Поддерживает\+:
\begin{DoxyItemize}
\item Любое количество параметров
\item Генерацию новых параметров на основе лучших кандидатов
\item Мутацию для поиска оптимальных параметров
\item Несколько независимых оптимизаторов в одной программе
\end{DoxyItemize}
Параметры для конфигурации\+:
\begin{DoxyItemize}
\item \doxylink{group___g_e_n___c_o_n_f_i_g_gae6d1db3c0b21f67cb0db2673d207b62c}{GEN\+\_\+\+OPTIMIZATION\+\_\+\+ENABLE} -\/ Включить оптимизацию параметров Если библиотека отключена \doxylink{group___g_e_n___c_o_n_f_i_g_gae6d1db3c0b21f67cb0db2673d207b62c}{GEN\+\_\+\+OPTIMIZATION\+\_\+\+ENABLE}, то вставляются заглушки, никак не влияющие на параметры и остальную программу
\item \doxylink{group___g_e_n___c_o_n_f_i_g_ga8daf4b266a95353d580bd7946f47c0ab}{GEN\+\_\+\+MAX\+\_\+\+PARAMS} -\/ Максимальное количество параметров
\item \doxylink{group___g_e_n___c_o_n_f_i_g_ga201cffde04ebc6540869c74bd1dae869}{GEN\+\_\+\+MAX\+\_\+\+CANDIDATES} -\/ Максимальное количество кандидатов для обучения
\item (опционально) GEN\+\_\+\+MUTATION\+\_\+\+MIN\+\_\+\+PCT -\/ Минимальная мутация в процентах от Loss (по умолчанию 10\%)
\item (опционально) GEN\+\_\+\+MUTATION\+\_\+\+MAX\+\_\+\+PCT -\/ Максимальная мутация в процентах от Loss (по умолчанию 100\%)
\item (опционально) ELOVLE\+\_\+\+N\+\_\+\+ELITE\+\_\+\+CANDIDATE -\/ Количество кандидатов, которые проходят в поколение без изменений
\end{DoxyItemize}
\begin{DoxyParagraph}{Пример использования\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{\textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{gen__optimizer_8h}{gen\_optimizer.h}}"{}}}
\DoxyCodeLine{\textcolor{preprocessor}{\#define\ N\_PARAMS\ \ \ \ \ \ \ \ 4}}
\DoxyCodeLine{\textcolor{preprocessor}{\#define\ N\_CANDIDATES\ \ \ \ 100}}
\DoxyCodeLine{\textcolor{preprocessor}{\#define\ N\_BEST\ \ \ \ \ \ \ \ \ \ 10}}
\DoxyCodeLine{\textcolor{preprocessor}{\#define\ MUTATION\ \ \ \ \ \ \ \ 0.1f}}
\DoxyCodeLine{\textcolor{keywordtype}{float}\ params[N\_PARAMS];}
\DoxyCodeLine{\mbox{\hyperlink{struct_gen_optimizer__t}{GenOptimizer\_t}}\ optimizer;}
\DoxyCodeLine{}
\DoxyCodeLine{\textcolor{comment}{//\ Формирование\ параметров}}
\DoxyCodeLine{uint16\_t\ \ param\_u16\ =\ 800;}
\DoxyCodeLine{\textcolor{keywordtype}{float}\ \ \ \ \ param\_f\ \ \ =\ 0.01f;}
\DoxyCodeLine{uint8\_t\ \ \ param\_u8\ \ =\ 40;}
\DoxyCodeLine{int16\_t\ \ \ param\_i16\ =\ 1600;}
\DoxyCodeLine{params[0]\ =\ PARAM\_SCALE(param\_u16,\ \ 0.0f,\ \ \ 1000.0f);}
\DoxyCodeLine{params[1]\ =\ PARAM\_SCALE(param\_f,\ \ \ \ 0.001f,\ 0.1f);}
\DoxyCodeLine{params[2]\ =\ PARAM\_SCALE(param\_u8,\ \ \ 10.0f,\ \ 100.0f);}
\DoxyCodeLine{params[3]\ =\ PARAM\_SCALE(param\_i16,\ \ 500.0f,\ 5000.0f);}
\DoxyCodeLine{}
\DoxyCodeLine{\textcolor{comment}{//\ Инициалиазция}}
\DoxyCodeLine{GenOptimizer\_Init(\&optimizer,\ N\_PARAMS,\ N\_CANDIDATES,\ N\_BEST,\ MUTATION,\ params);}
\DoxyCodeLine{}
\DoxyCodeLine{\textcolor{comment}{//\ Шаг\ эволюции}}
\DoxyCodeLine{\textcolor{keywordtype}{float}\ loss\ =\ calc\_loss();\ \textcolor{comment}{//\ расчет\ эффективности\ параметров\ (от\ 0\ до\ 1)}}
\DoxyCodeLine{GenOptimizer\_Step(\&optimizer,\ params,\ loss);}
\DoxyCodeLine{}
\DoxyCodeLine{\textcolor{comment}{//\ Взятие\ следующих\ для\ эволюции\ параметров}}
\DoxyCodeLine{param\_u16\ =\ PARAM\_UNSCALE(params[0],\ \ 0.0f,\ \ \ 1000.0f);}
\DoxyCodeLine{param\_f\ \ \ =\ PARAM\_UNSCALE(params[1],\ \ 0.001f,\ 0.1f);}
\DoxyCodeLine{param\_u8\ \ =\ PARAM\_UNSCALE(params[2],\ \ 10.0f,\ \ 100.0f);}
\DoxyCodeLine{param\_i16\ =\ PARAM\_UNSCALE(params[3],\ \ 500.0f,\ 5000.0f);}
\end{DoxyCode}
\end{DoxyParagraph}
\label{doc-define-members}
\Hypertarget{group___g_e_n___o_p_t_i_m_i_z_e_r_doc-define-members}
\doxysubsubsubsection{Macro Definition Documentation}
\Hypertarget{group___g_e_n___o_p_t_i_m_i_z_e_r_ga3e654886869ea8182effbfcb99278670}\index{Genetic optimizer@{Genetic optimizer}!GenOptimizer\_Init@{GenOptimizer\_Init}}
\index{GenOptimizer\_Init@{GenOptimizer\_Init}!Genetic optimizer@{Genetic optimizer}}
\doxysubsubsubsubsection{\texorpdfstring{GenOptimizer\_Init}{GenOptimizer\_Init}}
{\footnotesize\ttfamily \label{group___g_e_n___o_p_t_i_m_i_z_e_r_ga3e654886869ea8182effbfcb99278670}
\#define Gen\+Optimizer\+\_\+\+Init(\begin{DoxyParamCaption}\item[{}]{opt}{, }\item[{}]{n\+\_\+params}{, }\item[{}]{n\+\_\+cand}{, }\item[{}]{n\+\_\+best}{, }\item[{}]{mutation\+\_\+amp}{, }\item[{}]{start\+\_\+params}{}\end{DoxyParamCaption})}
Definition at line \mbox{\hyperlink{gen__optimizer_8h_source_l00327}{327}} of file \mbox{\hyperlink{gen__optimizer_8h_source}{gen\+\_\+optimizer.\+h}}.
\Hypertarget{group___g_e_n___o_p_t_i_m_i_z_e_r_ga33bbb9131ac7f94c3731dd4130321885}\index{Genetic optimizer@{Genetic optimizer}!GenOptimizer\_Step@{GenOptimizer\_Step}}
\index{GenOptimizer\_Step@{GenOptimizer\_Step}!Genetic optimizer@{Genetic optimizer}}
\doxysubsubsubsubsection{\texorpdfstring{GenOptimizer\_Step}{GenOptimizer\_Step}}
{\footnotesize\ttfamily \label{group___g_e_n___o_p_t_i_m_i_z_e_r_ga33bbb9131ac7f94c3731dd4130321885}
\#define Gen\+Optimizer\+\_\+\+Step(\begin{DoxyParamCaption}\item[{}]{opt}{, }\item[{}]{params}{, }\item[{}]{Loss\+Func}{}\end{DoxyParamCaption})}
Definition at line \mbox{\hyperlink{gen__optimizer_8h_source_l00328}{328}} of file \mbox{\hyperlink{gen__optimizer_8h_source}{gen\+\_\+optimizer.\+h}}.
\Hypertarget{group___g_e_n___o_p_t_i_m_i_z_e_r_ga83abbcabaff9111c03ae2475ee72ea3e}\index{Genetic optimizer@{Genetic optimizer}!PARAM\_SCALE@{PARAM\_SCALE}}
\index{PARAM\_SCALE@{PARAM\_SCALE}!Genetic optimizer@{Genetic optimizer}}
\doxysubsubsubsubsection{\texorpdfstring{PARAM\_SCALE}{PARAM\_SCALE}}
{\footnotesize\ttfamily \label{group___g_e_n___o_p_t_i_m_i_z_e_r_ga83abbcabaff9111c03ae2475ee72ea3e}
\#define PARAM\+\_\+\+SCALE(\begin{DoxyParamCaption}\item[{}]{x}{, }\item[{}]{min\+\_\+val}{, }\item[{}]{max\+\_\+val}{}\end{DoxyParamCaption})}
{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{(x)}
\end{DoxyCode}
Definition at line \mbox{\hyperlink{gen__optimizer_8h_source_l00329}{329}} of file \mbox{\hyperlink{gen__optimizer_8h_source}{gen\+\_\+optimizer.\+h}}.
\Hypertarget{group___g_e_n___o_p_t_i_m_i_z_e_r_gaa1d5510fe5f0bd989473f3ebe324bde3}\index{Genetic optimizer@{Genetic optimizer}!PARAM\_UNSCALE@{PARAM\_UNSCALE}}
\index{PARAM\_UNSCALE@{PARAM\_UNSCALE}!Genetic optimizer@{Genetic optimizer}}
\doxysubsubsubsubsection{\texorpdfstring{PARAM\_UNSCALE}{PARAM\_UNSCALE}}
{\footnotesize\ttfamily \label{group___g_e_n___o_p_t_i_m_i_z_e_r_gaa1d5510fe5f0bd989473f3ebe324bde3}
\#define PARAM\+\_\+\+UNSCALE(\begin{DoxyParamCaption}\item[{}]{val}{, }\item[{}]{min\+\_\+val}{, }\item[{}]{max\+\_\+val}{}\end{DoxyParamCaption})}
{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{(val)}
\end{DoxyCode}
Definition at line \mbox{\hyperlink{gen__optimizer_8h_source_l00330}{330}} of file \mbox{\hyperlink{gen__optimizer_8h_source}{gen\+\_\+optimizer.\+h}}.

View File

@@ -0,0 +1 @@
808022049140e07e55939aab8e99f2c8

View File

@@ -0,0 +1,145 @@
\doxysubsubsection{Libraries configs }
\hypertarget{group___l_i_b_s___c_o_n_f_i_g}{}\label{group___l_i_b_s___c_o_n_f_i_g}\index{Libraries configs@{Libraries configs}}
Подключение различных модулей библиотеки
Collaboration diagram for Libraries configs\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=253pt]{group___l_i_b_s___c_o_n_f_i_g}
\end{center}
\end{figure}
\doxysubsubsubsubsection*{Macros}
\begin{DoxyCompactItemize}
\item
\#define \mbox{\hyperlink{group___l_i_b_s___c_o_n_f_i_g_ga9c853b02c22f26023c34d1d404b6d653}{local\+\_\+time}}()
\begin{DoxyCompactList}\small\item\em Локальное время \end{DoxyCompactList}\item
\#define \mbox{\hyperlink{group___l_i_b_s___c_o_n_f_i_g_ga3cdc9ef47fd3ff080d38481295327692}{INCLUDE\+\_\+\+GEN\+\_\+\+OPTIMIZER}}
\begin{DoxyCompactList}\small\item\em Подключить библиотеку для оптимизации параметров \end{DoxyCompactList}\item
\#define \mbox{\hyperlink{group___l_i_b_s___c_o_n_f_i_g_gaf4ddb2a71ec0d05c2480e197cd17c0be}{INCLUDE\+\_\+\+BIT\+\_\+\+ACCESS\+\_\+\+LIB}}
\begin{DoxyCompactList}\small\item\em Подключить библиотеку с typedef с битовыми полями \end{DoxyCompactList}\item
\#define \mbox{\hyperlink{group___l_i_b_s___c_o_n_f_i_g_ga4403055986b70bb02b8d37073a122e32}{INCLUDE\+\_\+\+TRACKERS\+\_\+\+LIB}}
\begin{DoxyCompactList}\small\item\em Подключить библиотеку с трекерами \end{DoxyCompactList}\item
\#define \mbox{\hyperlink{group___l_i_b_s___c_o_n_f_i_g_ga0a3ca94b616997069dd53e2c6c2687d7}{INCLUDE\+\_\+\+TRACE\+\_\+\+LIB}}
\begin{DoxyCompactList}\small\item\em Подключить библиотеку с трейсами \end{DoxyCompactList}\item
\#define \mbox{\hyperlink{group___l_i_b_s___c_o_n_f_i_g_ga181a46326e46b60afb160190832c7281}{INCLUDE\+\_\+\+GENERAL\+\_\+\+PERIPH\+\_\+\+LIBS}}
\begin{DoxyCompactList}\small\item\em Подключить библиотеку с периферией \end{DoxyCompactList}\item
\#define \mbox{\hyperlink{group___l_i_b_s___c_o_n_f_i_g_ga57c369737d5c0cfdb7baeecba0a4b151}{FREERTOS\+\_\+\+DELAY}}
\begin{DoxyCompactList}\small\item\em Использовать Free\+RTOS задержку, вместо HAL. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsubsection{Detailed Description}
Подключение различных модулей библиотеки
\label{doc-define-members}
\Hypertarget{group___l_i_b_s___c_o_n_f_i_g_doc-define-members}
\doxysubsubsubsection{Macro Definition Documentation}
\Hypertarget{group___l_i_b_s___c_o_n_f_i_g_ga9c853b02c22f26023c34d1d404b6d653}\index{Libraries configs@{Libraries configs}!local\_time@{local\_time}}
\index{local\_time@{local\_time}!Libraries configs@{Libraries configs}}
\doxysubsubsubsubsection{\texorpdfstring{local\_time}{local\_time}}
{\footnotesize\ttfamily \label{group___l_i_b_s___c_o_n_f_i_g_ga9c853b02c22f26023c34d1d404b6d653}
\#define local\+\_\+time(\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption})}
{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{uwTick}
\end{DoxyCode}
Локальное время
Definition at line \mbox{\hyperlink{____mylibs__config_8h_source_l00097}{97}} of file \mbox{\hyperlink{____mylibs__config_8h_source}{\+\_\+\+\_\+mylibs\+\_\+config.\+h}}.
\Hypertarget{group___l_i_b_s___c_o_n_f_i_g_ga3cdc9ef47fd3ff080d38481295327692}\index{Libraries configs@{Libraries configs}!INCLUDE\_GEN\_OPTIMIZER@{INCLUDE\_GEN\_OPTIMIZER}}
\index{INCLUDE\_GEN\_OPTIMIZER@{INCLUDE\_GEN\_OPTIMIZER}!Libraries configs@{Libraries configs}}
\doxysubsubsubsubsection{\texorpdfstring{INCLUDE\_GEN\_OPTIMIZER}{INCLUDE\_GEN\_OPTIMIZER}}
{\footnotesize\ttfamily \label{group___l_i_b_s___c_o_n_f_i_g_ga3cdc9ef47fd3ff080d38481295327692}
\#define INCLUDE\+\_\+\+GEN\+\_\+\+OPTIMIZER}
Подключить библиотеку для оптимизации параметров
Definition at line \mbox{\hyperlink{____mylibs__config_8h_source_l00099}{99}} of file \mbox{\hyperlink{____mylibs__config_8h_source}{\+\_\+\+\_\+mylibs\+\_\+config.\+h}}.
\Hypertarget{group___l_i_b_s___c_o_n_f_i_g_gaf4ddb2a71ec0d05c2480e197cd17c0be}\index{Libraries configs@{Libraries configs}!INCLUDE\_BIT\_ACCESS\_LIB@{INCLUDE\_BIT\_ACCESS\_LIB}}
\index{INCLUDE\_BIT\_ACCESS\_LIB@{INCLUDE\_BIT\_ACCESS\_LIB}!Libraries configs@{Libraries configs}}
\doxysubsubsubsubsection{\texorpdfstring{INCLUDE\_BIT\_ACCESS\_LIB}{INCLUDE\_BIT\_ACCESS\_LIB}}
{\footnotesize\ttfamily \label{group___l_i_b_s___c_o_n_f_i_g_gaf4ddb2a71ec0d05c2480e197cd17c0be}
\#define INCLUDE\+\_\+\+BIT\+\_\+\+ACCESS\+\_\+\+LIB}
Подключить библиотеку с typedef с битовыми полями
Definition at line \mbox{\hyperlink{____mylibs__config_8h_source_l00100}{100}} of file \mbox{\hyperlink{____mylibs__config_8h_source}{\+\_\+\+\_\+mylibs\+\_\+config.\+h}}.
\Hypertarget{group___l_i_b_s___c_o_n_f_i_g_ga4403055986b70bb02b8d37073a122e32}\index{Libraries configs@{Libraries configs}!INCLUDE\_TRACKERS\_LIB@{INCLUDE\_TRACKERS\_LIB}}
\index{INCLUDE\_TRACKERS\_LIB@{INCLUDE\_TRACKERS\_LIB}!Libraries configs@{Libraries configs}}
\doxysubsubsubsubsection{\texorpdfstring{INCLUDE\_TRACKERS\_LIB}{INCLUDE\_TRACKERS\_LIB}}
{\footnotesize\ttfamily \label{group___l_i_b_s___c_o_n_f_i_g_ga4403055986b70bb02b8d37073a122e32}
\#define INCLUDE\+\_\+\+TRACKERS\+\_\+\+LIB}
Подключить библиотеку с трекерами
Definition at line \mbox{\hyperlink{____mylibs__config_8h_source_l00101}{101}} of file \mbox{\hyperlink{____mylibs__config_8h_source}{\+\_\+\+\_\+mylibs\+\_\+config.\+h}}.
\Hypertarget{group___l_i_b_s___c_o_n_f_i_g_ga0a3ca94b616997069dd53e2c6c2687d7}\index{Libraries configs@{Libraries configs}!INCLUDE\_TRACE\_LIB@{INCLUDE\_TRACE\_LIB}}
\index{INCLUDE\_TRACE\_LIB@{INCLUDE\_TRACE\_LIB}!Libraries configs@{Libraries configs}}
\doxysubsubsubsubsection{\texorpdfstring{INCLUDE\_TRACE\_LIB}{INCLUDE\_TRACE\_LIB}}
{\footnotesize\ttfamily \label{group___l_i_b_s___c_o_n_f_i_g_ga0a3ca94b616997069dd53e2c6c2687d7}
\#define INCLUDE\+\_\+\+TRACE\+\_\+\+LIB}
Подключить библиотеку с трейсами
Definition at line \mbox{\hyperlink{____mylibs__config_8h_source_l00102}{102}} of file \mbox{\hyperlink{____mylibs__config_8h_source}{\+\_\+\+\_\+mylibs\+\_\+config.\+h}}.
\Hypertarget{group___l_i_b_s___c_o_n_f_i_g_ga181a46326e46b60afb160190832c7281}\index{Libraries configs@{Libraries configs}!INCLUDE\_GENERAL\_PERIPH\_LIBS@{INCLUDE\_GENERAL\_PERIPH\_LIBS}}
\index{INCLUDE\_GENERAL\_PERIPH\_LIBS@{INCLUDE\_GENERAL\_PERIPH\_LIBS}!Libraries configs@{Libraries configs}}
\doxysubsubsubsubsection{\texorpdfstring{INCLUDE\_GENERAL\_PERIPH\_LIBS}{INCLUDE\_GENERAL\_PERIPH\_LIBS}}
{\footnotesize\ttfamily \label{group___l_i_b_s___c_o_n_f_i_g_ga181a46326e46b60afb160190832c7281}
\#define INCLUDE\+\_\+\+GENERAL\+\_\+\+PERIPH\+\_\+\+LIBS}
Подключить библиотеку с периферией
Definition at line \mbox{\hyperlink{____mylibs__config_8h_source_l00103}{103}} of file \mbox{\hyperlink{____mylibs__config_8h_source}{\+\_\+\+\_\+mylibs\+\_\+config.\+h}}.
\Hypertarget{group___l_i_b_s___c_o_n_f_i_g_ga57c369737d5c0cfdb7baeecba0a4b151}\index{Libraries configs@{Libraries configs}!FREERTOS\_DELAY@{FREERTOS\_DELAY}}
\index{FREERTOS\_DELAY@{FREERTOS\_DELAY}!Libraries configs@{Libraries configs}}
\doxysubsubsubsubsection{\texorpdfstring{FREERTOS\_DELAY}{FREERTOS\_DELAY}}
{\footnotesize\ttfamily \label{group___l_i_b_s___c_o_n_f_i_g_ga57c369737d5c0cfdb7baeecba0a4b151}
\#define FREERTOS\+\_\+\+DELAY}
Использовать Free\+RTOS задержку, вместо HAL.
Definition at line \mbox{\hyperlink{____mylibs__config_8h_source_l00104}{104}} of file \mbox{\hyperlink{____mylibs__config_8h_source}{\+\_\+\+\_\+mylibs\+\_\+config.\+h}}.

View File

@@ -0,0 +1 @@
d31053abadc8e893fbaf954352b04bd8

View File

@@ -0,0 +1,40 @@
\doxysection{My Libs }
\hypertarget{group___m_y_l_i_b_s___a_l_l}{}\label{group___m_y_l_i_b_s___a_l_l}\index{My Libs@{My Libs}}
Все используемые My\+Libs библиотеки
Collaboration diagram for My Libs\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=242pt]{group___m_y_l_i_b_s___a_l_l}
\end{center}
\end{figure}
\doxysubsubsection*{Topics}
\begin{DoxyCompactItemize}
\item
\mbox{\hyperlink{group___m_y_l_i_b_s___t_o_o_l_s}{General Tools}}
\begin{DoxyCompactList}\small\item\em Общие макросы и typedef\textquotesingle{}ы, используемые по всему проекту \end{DoxyCompactList}\item
\mbox{\hyperlink{group___m_y_l_i_b_s___c_o_n_f_i_g}{Configs}}
\begin{DoxyCompactList}\small\item\em Конфигурации для библиотек My\+Libs. \end{DoxyCompactList}\item
\mbox{\hyperlink{group___m_y_l_i_b_s___d_e_b_u_g___t_o_o_l_s}{Debug Tools}}
\begin{DoxyCompactList}\small\item\em Утилиты для тестирования программы \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection{Detailed Description}
Все используемые My\+Libs библиотеки
Для подключения библиотеки необходимо\+:
\begin{DoxyItemize}
\item Сконфигурировать mylibs\+\_\+config.\+h\+:
\begin{DoxyItemize}
\item Подключить заголовочный файл HAL библиотеки конкретного МК (напр. stm32f4xx\+\_\+hal.\+h)
\item Подключить другие заголовочные файлы которые общие для всего проекта и должны быть видны
\item Подключить mylibs\+\_\+include.\+h туда, где необходим доступ к библиотекам.
\end{DoxyItemize}
\end{DoxyItemize}\input{group___m_y_l_i_b_s___t_o_o_l_s}
\input{group___m_y_l_i_b_s___c_o_n_f_i_g}
\input{group___m_y_l_i_b_s___d_e_b_u_g___t_o_o_l_s}

View File

@@ -0,0 +1 @@
d391fab11da478dd495954b9be42bbb6

View File

@@ -0,0 +1,32 @@
\doxysubsection{Configs }
\hypertarget{group___m_y_l_i_b_s___c_o_n_f_i_g}{}\label{group___m_y_l_i_b_s___c_o_n_f_i_g}\index{Configs@{Configs}}
Конфигурации для библиотек My\+Libs.
Collaboration diagram for Configs\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=340pt]{group___m_y_l_i_b_s___c_o_n_f_i_g}
\end{center}
\end{figure}
\doxysubsubsubsection*{Topics}
\begin{DoxyCompactItemize}
\item
\mbox{\hyperlink{group___t_r_a_c_e___c_o_n_f_i_g}{Trace configs}}
\begin{DoxyCompactList}\small\item\em Конфигурация трекеров и трассировки \end{DoxyCompactList}\item
\mbox{\hyperlink{group___g_e_n___c_o_n_f_i_g}{Genetic configs}}
\begin{DoxyCompactList}\small\item\em Конфигурация генетического алгоритма обучения \end{DoxyCompactList}\item
\mbox{\hyperlink{group___l_i_b_s___c_o_n_f_i_g}{Libraries configs}}
\begin{DoxyCompactList}\small\item\em Подключение различных модулей библиотеки \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection{Detailed Description}
Конфигурации для библиотек My\+Libs.
\input{group___t_r_a_c_e___c_o_n_f_i_g}
\input{group___g_e_n___c_o_n_f_i_g}
\input{group___l_i_b_s___c_o_n_f_i_g}

View File

@@ -0,0 +1 @@
e10d808e73658cbf4719fc412f2e0b91

View File

@@ -0,0 +1,35 @@
\doxysubsection{Debug Tools }
\hypertarget{group___m_y_l_i_b_s___d_e_b_u_g___t_o_o_l_s}{}\label{group___m_y_l_i_b_s___d_e_b_u_g___t_o_o_l_s}\index{Debug Tools@{Debug Tools}}
Утилиты для тестирования программы
Collaboration diagram for Debug Tools\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{group___m_y_l_i_b_s___d_e_b_u_g___t_o_o_l_s}
\end{center}
\end{figure}
\doxysubsubsubsection*{Topics}
\begin{DoxyCompactItemize}
\item
\mbox{\hyperlink{group___b_e_n_c_h___t_i_m_e}{Time measurement}}
\begin{DoxyCompactList}\small\item\em Библиотека для измерения времени/тиков между событиями \end{DoxyCompactList}\item
\mbox{\hyperlink{group___g_e_n___o_p_t_i_m_i_z_e_r}{Genetic optimizer}}
\begin{DoxyCompactList}\small\item\em Библиотека для эволюционного подбора параметров \end{DoxyCompactList}\item
\mbox{\hyperlink{group___t_r_a_c_e}{Trace defines}}
\begin{DoxyCompactList}\small\item\em Дефайны для работы с трассировкой \end{DoxyCompactList}\item
\mbox{\hyperlink{group___t_r_a_c_k_e_r_s}{Trackers defines}}
\begin{DoxyCompactList}\small\item\em Дефайны для работы с трекерами \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection{Detailed Description}
Утилиты для тестирования программы
\input{group___b_e_n_c_h___t_i_m_e}
\input{group___g_e_n___o_p_t_i_m_i_z_e_r}
\input{group___t_r_a_c_e}
\input{group___t_r_a_c_k_e_r_s}

View File

@@ -0,0 +1 @@
78998b4170ecf65af8583f6c3acb669a

View File

@@ -0,0 +1,35 @@
\doxysubsection{General Tools }
\hypertarget{group___m_y_l_i_b_s___t_o_o_l_s}{}\label{group___m_y_l_i_b_s___t_o_o_l_s}\index{General Tools@{General Tools}}
Общие макросы и typedef\textquotesingle{}ы, используемые по всему проекту
Collaboration diagram for General Tools\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{group___m_y_l_i_b_s___t_o_o_l_s}
\end{center}
\end{figure}
\doxysubsubsubsection*{Topics}
\begin{DoxyCompactItemize}
\item
\mbox{\hyperlink{group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s}{Bit access defines}}
\begin{DoxyCompactList}\small\item\em Макросы и typedef\textquotesingle{}ы для работы с битами в unsigned типах. \end{DoxyCompactList}\item
\mbox{\hyperlink{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s}{Error Handler defines}}
\begin{DoxyCompactList}\small\item\em Дефайны для обработки ошибок \end{DoxyCompactList}\item
\mbox{\hyperlink{group___d_e_l_a_y_s___d_e_f_i_n_e_s}{Delays defines}}
\begin{DoxyCompactList}\small\item\em Макросы и определения для работы с задержками в миллисекундах. \end{DoxyCompactList}\item
\mbox{\hyperlink{group___u_t_i_l_s___d_e_f_i_n_e_s}{Utils defines}}
\begin{DoxyCompactList}\small\item\em Общие вспомогательные макросы \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection{Detailed Description}
Общие макросы и typedef\textquotesingle{}ы, используемые по всему проекту
\input{group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s}
\input{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s}
\input{group___d_e_l_a_y_s___d_e_f_i_n_e_s}
\input{group___u_t_i_l_s___d_e_f_i_n_e_s}

View File

@@ -0,0 +1 @@
d398645521a6e65c12178c326d8a6a8c

Binary file not shown.

View File

@@ -0,0 +1,35 @@
\doxysubsubsection{Trace defines }
\hypertarget{group___t_r_a_c_e}{}\label{group___t_r_a_c_e}\index{Trace defines@{Trace defines}}
Дефайны для работы с трассировкой
Collaboration diagram for Trace defines\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{group___t_r_a_c_e}
\end{center}
\end{figure}
\doxysubsubsubsubsection*{Topics}
\begin{DoxyCompactItemize}
\item
\mbox{\hyperlink{group___t_r_a_c_e___s_e_r_i_a_l}{Serial trace defines}}
\begin{DoxyCompactList}\small\item\em Дефайны для работы с serial трассировкой (SWO, RTT) \end{DoxyCompactList}\item
\mbox{\hyperlink{group___t_r_a_c_e___g_p_i_o}{GPIO trace defines}}
\begin{DoxyCompactList}\small\item\em Дефайны для работы с GPIO трассировкой \end{DoxyCompactList}\item
\mbox{\hyperlink{group___t_r_a_c_e___r_t_t___f_l_a_s_h}{Flash RTT Buffer}}
\begin{DoxyCompactList}\small\item\em Макросы и функции для сохранения/чтения RTT буфера в Flash. \end{DoxyCompactList}\item
\mbox{\hyperlink{group___t_r_a_c_e___h_a_r_d_f_a_u_l_t}{Hardfault trace defines}}
\begin{DoxyCompactList}\small\item\em Модуль трассировки Hard\+Fault с возможностью сохранения RTT буфера во Flash. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsubsection{Detailed Description}
Дефайны для работы с трассировкой
\input{group___t_r_a_c_e___s_e_r_i_a_l}
\input{group___t_r_a_c_e___g_p_i_o}
\input{group___t_r_a_c_e___r_t_t___f_l_a_s_h}
\input{group___t_r_a_c_e___h_a_r_d_f_a_u_l_t}

View File

@@ -0,0 +1 @@
2fc8132be79ba3b5dcba4208b778cf55

View File

@@ -0,0 +1,289 @@
\doxysubsubsection{Trace configs }
\hypertarget{group___t_r_a_c_e___c_o_n_f_i_g}{}\label{group___t_r_a_c_e___c_o_n_f_i_g}\index{Trace configs@{Trace configs}}
Конфигурация трекеров и трассировки
Collaboration diagram for Trace configs\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=241pt]{group___t_r_a_c_e___c_o_n_f_i_g}
\end{center}
\end{figure}
\doxysubsubsubsubsection*{Macros}
\begin{DoxyCompactItemize}
\item
\#define \mbox{\hyperlink{group___t_r_a_c_e___c_o_n_f_i_g_gac9eaedc31ab023ce7d6403999216e496}{TRACKERS\+\_\+\+ENABLE}}
\begin{DoxyCompactList}\small\item\em Включить трекеры \end{DoxyCompactList}\item
\#define \mbox{\hyperlink{group___t_r_a_c_e___c_o_n_f_i_g_ga76936505ca200d2e61226b7ba68f27c6}{SERIAL\+\_\+\+TRACE\+\_\+\+ENABLE}}
\begin{DoxyCompactList}\small\item\em Включить serial трассировку \end{DoxyCompactList}\item
\#define \mbox{\hyperlink{group___t_r_a_c_e___c_o_n_f_i_g_ga00ff2175bdc1fb11c8ec970ea3010dd8}{RTT\+\_\+\+TRACE\+\_\+\+ENABLE}}
\begin{DoxyCompactList}\small\item\em Включить serial трассировку через RTT. \end{DoxyCompactList}\item
\#define \mbox{\hyperlink{group___t_r_a_c_e___c_o_n_f_i_g_gab8db9704b5d11858aa879689b9d36336}{SWO\+\_\+\+TRACE\+\_\+\+ENABLE}}
\begin{DoxyCompactList}\small\item\em Включить serial трассировку через SWO. \end{DoxyCompactList}\item
\#define \mbox{\hyperlink{group___t_r_a_c_e___c_o_n_f_i_g_ga0b87e0d3bf5853bcbb0b66a7c48fdc05}{LOG\+\_\+\+LEVEL}}~1
\begin{DoxyCompactList}\small\item\em Уровень log serial трассировки \doxylink{group___t_r_a_c_e___s_e_r_i_a_l_ga730fb7b8d0bbb348dca73c15bd0e0b26}{log\+\_\+printf}. \end{DoxyCompactList}\item
\#define \mbox{\hyperlink{group___t_r_a_c_e___c_o_n_f_i_g_ga501312b24e322de4dd6755ad442f0ba3}{RTT\+\_\+\+FLASH\+\_\+\+BUFFER\+\_\+\+SIZE}}~1024
\begin{DoxyCompactList}\small\item\em Размер буфера RTT в Flash. \end{DoxyCompactList}\item
\#define \mbox{\hyperlink{group___t_r_a_c_e___c_o_n_f_i_g_ga3bc1b76864e1d32cbdd174d4caae7724}{RTT\+\_\+\+FLASH\+\_\+\+SECTOR}}~FLASH\+\_\+\+SECTOR\+\_\+11
\begin{DoxyCompactList}\small\item\em Сектор FLASH куда положится RTT буфер \end{DoxyCompactList}\item
\#define \mbox{\hyperlink{group___t_r_a_c_e___c_o_n_f_i_g_ga8e56f75d3ab8a89ddde1404ae23c3297}{RTT\+\_\+\+FLASH\+\_\+\+SECTOR\+\_\+\+START}}~0x080\+E0000
\begin{DoxyCompactList}\small\item\em Начало сектора RTT\+\_\+\+FLASH\+\_\+\+SECTOR. \end{DoxyCompactList}\item
\#define \mbox{\hyperlink{group___t_r_a_c_e___c_o_n_f_i_g_gafeca0be3688dea07ff443f894668003d}{RTT\+\_\+\+FLASH\+\_\+\+SECTOR\+\_\+\+END}}~0x080\+FFFFF
\begin{DoxyCompactList}\small\item\em Конец сектора RTT\+\_\+\+FLASH\+\_\+\+SECTOR. \end{DoxyCompactList}\item
\#define \mbox{\hyperlink{group___t_r_a_c_e___c_o_n_f_i_g_ga47f454f804b4dbc26cae079e8d8641e6}{HARDFAULT\+\_\+\+SERIAL\+\_\+\+TRACE}}
\begin{DoxyCompactList}\small\item\em Включить обработку и serial трассировку Hardfault. \end{DoxyCompactList}\item
\#define \mbox{\hyperlink{group___t_r_a_c_e___c_o_n_f_i_g_gadc960255719c7eff4bdfaa850be9b313}{HF\+\_\+\+RTT\+\_\+\+TAG\+\_\+\+BASE}}~0x\+DEAD0000
\begin{DoxyCompactList}\small\item\em базовый тег для Hard\+Fault \end{DoxyCompactList}\item
\#define \mbox{\hyperlink{group___t_r_a_c_e___c_o_n_f_i_g_gafcc7ea03d4df8f1909e580b519a7f3ca}{HF\+\_\+\+RTT\+\_\+\+TAIL\+\_\+\+SIZE}}~\mbox{\hyperlink{group___t_r_a_c_e___c_o_n_f_i_g_ga501312b24e322de4dd6755ad442f0ba3}{RTT\+\_\+\+FLASH\+\_\+\+BUFFER\+\_\+\+SIZE}}
\begin{DoxyCompactList}\small\item\em Размер буфера RTT, который сохранится при Hardfault. \end{DoxyCompactList}\item
\#define \mbox{\hyperlink{group___t_r_a_c_e___c_o_n_f_i_g_gaa31234688b333a505aaa57b8ecdedf5b}{HF\+\_\+\+STACK\+\_\+\+DUMP\+\_\+\+WORDS}}~32
\begin{DoxyCompactList}\small\item\em Сколько слов стека будет проанализировано во время Hardfault. \end{DoxyCompactList}\item
\#define \mbox{\hyperlink{group___t_r_a_c_e___c_o_n_f_i_g_ga0c602733a4a359bf8c095d71cd4d0f63}{HF\+\_\+\+FLASH\+\_\+\+ADDR}}~((uint32\+\_\+t)0x080\+FF000)
\begin{DoxyCompactList}\small\item\em Адрес FLASH куда положится RTT буфер \end{DoxyCompactList}\item
\#define \mbox{\hyperlink{group___t_r_a_c_e___c_o_n_f_i_g_ga92d0d14732edb7dfa21d483304bdb051}{HF\+\_\+\+RAM\+\_\+\+END}}~0x20030000
\begin{DoxyCompactList}\small\item\em Конец RAM памяти (чтобы во время анализа стека не выйти за пределы) \end{DoxyCompactList}\item
\#define \mbox{\hyperlink{group___t_r_a_c_e___c_o_n_f_i_g_ga4222e0e400ad81737cefcabeb03fd23b}{GPIO\+\_\+\+TRACE\+\_\+\+ENABLE}}
\begin{DoxyCompactList}\small\item\em Включить GPIO трассировку \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsubsection{Detailed Description}
Конфигурация трекеров и трассировки
\label{doc-define-members}
\Hypertarget{group___t_r_a_c_e___c_o_n_f_i_g_doc-define-members}
\doxysubsubsubsection{Macro Definition Documentation}
\Hypertarget{group___t_r_a_c_e___c_o_n_f_i_g_gac9eaedc31ab023ce7d6403999216e496}\index{Trace configs@{Trace configs}!TRACKERS\_ENABLE@{TRACKERS\_ENABLE}}
\index{TRACKERS\_ENABLE@{TRACKERS\_ENABLE}!Trace configs@{Trace configs}}
\doxysubsubsubsubsection{\texorpdfstring{TRACKERS\_ENABLE}{TRACKERS\_ENABLE}}
{\footnotesize\ttfamily \label{group___t_r_a_c_e___c_o_n_f_i_g_gac9eaedc31ab023ce7d6403999216e496}
\#define TRACKERS\+\_\+\+ENABLE}
Включить трекеры
Definition at line \mbox{\hyperlink{____mylibs__config_8h_source_l00025}{25}} of file \mbox{\hyperlink{____mylibs__config_8h_source}{\+\_\+\+\_\+mylibs\+\_\+config.\+h}}.
\Hypertarget{group___t_r_a_c_e___c_o_n_f_i_g_ga76936505ca200d2e61226b7ba68f27c6}\index{Trace configs@{Trace configs}!SERIAL\_TRACE\_ENABLE@{SERIAL\_TRACE\_ENABLE}}
\index{SERIAL\_TRACE\_ENABLE@{SERIAL\_TRACE\_ENABLE}!Trace configs@{Trace configs}}
\doxysubsubsubsubsection{\texorpdfstring{SERIAL\_TRACE\_ENABLE}{SERIAL\_TRACE\_ENABLE}}
{\footnotesize\ttfamily \label{group___t_r_a_c_e___c_o_n_f_i_g_ga76936505ca200d2e61226b7ba68f27c6}
\#define SERIAL\+\_\+\+TRACE\+\_\+\+ENABLE}
Включить serial трассировку
Definition at line \mbox{\hyperlink{____mylibs__config_8h_source_l00026}{26}} of file \mbox{\hyperlink{____mylibs__config_8h_source}{\+\_\+\+\_\+mylibs\+\_\+config.\+h}}.
\Hypertarget{group___t_r_a_c_e___c_o_n_f_i_g_ga00ff2175bdc1fb11c8ec970ea3010dd8}\index{Trace configs@{Trace configs}!RTT\_TRACE\_ENABLE@{RTT\_TRACE\_ENABLE}}
\index{RTT\_TRACE\_ENABLE@{RTT\_TRACE\_ENABLE}!Trace configs@{Trace configs}}
\doxysubsubsubsubsection{\texorpdfstring{RTT\_TRACE\_ENABLE}{RTT\_TRACE\_ENABLE}}
{\footnotesize\ttfamily \label{group___t_r_a_c_e___c_o_n_f_i_g_ga00ff2175bdc1fb11c8ec970ea3010dd8}
\#define RTT\+\_\+\+TRACE\+\_\+\+ENABLE}
Включить serial трассировку через RTT.
Definition at line \mbox{\hyperlink{____mylibs__config_8h_source_l00027}{27}} of file \mbox{\hyperlink{____mylibs__config_8h_source}{\+\_\+\+\_\+mylibs\+\_\+config.\+h}}.
\Hypertarget{group___t_r_a_c_e___c_o_n_f_i_g_gab8db9704b5d11858aa879689b9d36336}\index{Trace configs@{Trace configs}!SWO\_TRACE\_ENABLE@{SWO\_TRACE\_ENABLE}}
\index{SWO\_TRACE\_ENABLE@{SWO\_TRACE\_ENABLE}!Trace configs@{Trace configs}}
\doxysubsubsubsubsection{\texorpdfstring{SWO\_TRACE\_ENABLE}{SWO\_TRACE\_ENABLE}}
{\footnotesize\ttfamily \label{group___t_r_a_c_e___c_o_n_f_i_g_gab8db9704b5d11858aa879689b9d36336}
\#define SWO\+\_\+\+TRACE\+\_\+\+ENABLE}
Включить serial трассировку через SWO.
Definition at line \mbox{\hyperlink{____mylibs__config_8h_source_l00028}{28}} of file \mbox{\hyperlink{____mylibs__config_8h_source}{\+\_\+\+\_\+mylibs\+\_\+config.\+h}}.
\Hypertarget{group___t_r_a_c_e___c_o_n_f_i_g_ga0b87e0d3bf5853bcbb0b66a7c48fdc05}\index{Trace configs@{Trace configs}!LOG\_LEVEL@{LOG\_LEVEL}}
\index{LOG\_LEVEL@{LOG\_LEVEL}!Trace configs@{Trace configs}}
\doxysubsubsubsubsection{\texorpdfstring{LOG\_LEVEL}{LOG\_LEVEL}}
{\footnotesize\ttfamily \label{group___t_r_a_c_e___c_o_n_f_i_g_ga0b87e0d3bf5853bcbb0b66a7c48fdc05}
\#define LOG\+\_\+\+LEVEL~1}
Уровень log serial трассировки \doxylink{group___t_r_a_c_e___s_e_r_i_a_l_ga730fb7b8d0bbb348dca73c15bd0e0b26}{log\+\_\+printf}.
\begin{DoxyItemize}
\item LOG\+\_\+\+LEVEL == 0 -\/ логирование отключено (макрос пустой)
\item LOG\+\_\+\+LEVEL == 1 -\/ выводится время и TAG
\item LOG\+\_\+\+LEVEL \texorpdfstring{$>$}{>}= 2 -\/ выводится время, TAG, имя файла и номер строки
\end{DoxyItemize}
Definition at line \mbox{\hyperlink{____mylibs__config_8h_source_l00035}{35}} of file \mbox{\hyperlink{____mylibs__config_8h_source}{\+\_\+\+\_\+mylibs\+\_\+config.\+h}}.
\Hypertarget{group___t_r_a_c_e___c_o_n_f_i_g_ga501312b24e322de4dd6755ad442f0ba3}\index{Trace configs@{Trace configs}!RTT\_FLASH\_BUFFER\_SIZE@{RTT\_FLASH\_BUFFER\_SIZE}}
\index{RTT\_FLASH\_BUFFER\_SIZE@{RTT\_FLASH\_BUFFER\_SIZE}!Trace configs@{Trace configs}}
\doxysubsubsubsubsection{\texorpdfstring{RTT\_FLASH\_BUFFER\_SIZE}{RTT\_FLASH\_BUFFER\_SIZE}}
{\footnotesize\ttfamily \label{group___t_r_a_c_e___c_o_n_f_i_g_ga501312b24e322de4dd6755ad442f0ba3}
\#define RTT\+\_\+\+FLASH\+\_\+\+BUFFER\+\_\+\+SIZE~1024}
Размер буфера RTT в Flash.
Definition at line \mbox{\hyperlink{____mylibs__config_8h_source_l00037}{37}} of file \mbox{\hyperlink{____mylibs__config_8h_source}{\+\_\+\+\_\+mylibs\+\_\+config.\+h}}.
\Hypertarget{group___t_r_a_c_e___c_o_n_f_i_g_ga3bc1b76864e1d32cbdd174d4caae7724}\index{Trace configs@{Trace configs}!RTT\_FLASH\_SECTOR@{RTT\_FLASH\_SECTOR}}
\index{RTT\_FLASH\_SECTOR@{RTT\_FLASH\_SECTOR}!Trace configs@{Trace configs}}
\doxysubsubsubsubsection{\texorpdfstring{RTT\_FLASH\_SECTOR}{RTT\_FLASH\_SECTOR}}
{\footnotesize\ttfamily \label{group___t_r_a_c_e___c_o_n_f_i_g_ga3bc1b76864e1d32cbdd174d4caae7724}
\#define RTT\+\_\+\+FLASH\+\_\+\+SECTOR~FLASH\+\_\+\+SECTOR\+\_\+11}
Сектор FLASH куда положится RTT буфер
Definition at line \mbox{\hyperlink{____mylibs__config_8h_source_l00038}{38}} of file \mbox{\hyperlink{____mylibs__config_8h_source}{\+\_\+\+\_\+mylibs\+\_\+config.\+h}}.
\Hypertarget{group___t_r_a_c_e___c_o_n_f_i_g_ga8e56f75d3ab8a89ddde1404ae23c3297}\index{Trace configs@{Trace configs}!RTT\_FLASH\_SECTOR\_START@{RTT\_FLASH\_SECTOR\_START}}
\index{RTT\_FLASH\_SECTOR\_START@{RTT\_FLASH\_SECTOR\_START}!Trace configs@{Trace configs}}
\doxysubsubsubsubsection{\texorpdfstring{RTT\_FLASH\_SECTOR\_START}{RTT\_FLASH\_SECTOR\_START}}
{\footnotesize\ttfamily \label{group___t_r_a_c_e___c_o_n_f_i_g_ga8e56f75d3ab8a89ddde1404ae23c3297}
\#define RTT\+\_\+\+FLASH\+\_\+\+SECTOR\+\_\+\+START~0x080\+E0000}
Начало сектора RTT\+\_\+\+FLASH\+\_\+\+SECTOR.
Definition at line \mbox{\hyperlink{____mylibs__config_8h_source_l00039}{39}} of file \mbox{\hyperlink{____mylibs__config_8h_source}{\+\_\+\+\_\+mylibs\+\_\+config.\+h}}.
\Hypertarget{group___t_r_a_c_e___c_o_n_f_i_g_gafeca0be3688dea07ff443f894668003d}\index{Trace configs@{Trace configs}!RTT\_FLASH\_SECTOR\_END@{RTT\_FLASH\_SECTOR\_END}}
\index{RTT\_FLASH\_SECTOR\_END@{RTT\_FLASH\_SECTOR\_END}!Trace configs@{Trace configs}}
\doxysubsubsubsubsection{\texorpdfstring{RTT\_FLASH\_SECTOR\_END}{RTT\_FLASH\_SECTOR\_END}}
{\footnotesize\ttfamily \label{group___t_r_a_c_e___c_o_n_f_i_g_gafeca0be3688dea07ff443f894668003d}
\#define RTT\+\_\+\+FLASH\+\_\+\+SECTOR\+\_\+\+END~0x080\+FFFFF}
Конец сектора RTT\+\_\+\+FLASH\+\_\+\+SECTOR.
Definition at line \mbox{\hyperlink{____mylibs__config_8h_source_l00040}{40}} of file \mbox{\hyperlink{____mylibs__config_8h_source}{\+\_\+\+\_\+mylibs\+\_\+config.\+h}}.
\Hypertarget{group___t_r_a_c_e___c_o_n_f_i_g_ga47f454f804b4dbc26cae079e8d8641e6}\index{Trace configs@{Trace configs}!HARDFAULT\_SERIAL\_TRACE@{HARDFAULT\_SERIAL\_TRACE}}
\index{HARDFAULT\_SERIAL\_TRACE@{HARDFAULT\_SERIAL\_TRACE}!Trace configs@{Trace configs}}
\doxysubsubsubsubsection{\texorpdfstring{HARDFAULT\_SERIAL\_TRACE}{HARDFAULT\_SERIAL\_TRACE}}
{\footnotesize\ttfamily \label{group___t_r_a_c_e___c_o_n_f_i_g_ga47f454f804b4dbc26cae079e8d8641e6}
\#define HARDFAULT\+\_\+\+SERIAL\+\_\+\+TRACE}
Включить обработку и serial трассировку Hardfault.
Definition at line \mbox{\hyperlink{____mylibs__config_8h_source_l00043}{43}} of file \mbox{\hyperlink{____mylibs__config_8h_source}{\+\_\+\+\_\+mylibs\+\_\+config.\+h}}.
\Hypertarget{group___t_r_a_c_e___c_o_n_f_i_g_gadc960255719c7eff4bdfaa850be9b313}\index{Trace configs@{Trace configs}!HF\_RTT\_TAG\_BASE@{HF\_RTT\_TAG\_BASE}}
\index{HF\_RTT\_TAG\_BASE@{HF\_RTT\_TAG\_BASE}!Trace configs@{Trace configs}}
\doxysubsubsubsubsection{\texorpdfstring{HF\_RTT\_TAG\_BASE}{HF\_RTT\_TAG\_BASE}}
{\footnotesize\ttfamily \label{group___t_r_a_c_e___c_o_n_f_i_g_gadc960255719c7eff4bdfaa850be9b313}
\#define HF\+\_\+\+RTT\+\_\+\+TAG\+\_\+\+BASE~0x\+DEAD0000}
базовый тег для Hard\+Fault
Definition at line \mbox{\hyperlink{____mylibs__config_8h_source_l00044}{44}} of file \mbox{\hyperlink{____mylibs__config_8h_source}{\+\_\+\+\_\+mylibs\+\_\+config.\+h}}.
\Hypertarget{group___t_r_a_c_e___c_o_n_f_i_g_gafcc7ea03d4df8f1909e580b519a7f3ca}\index{Trace configs@{Trace configs}!HF\_RTT\_TAIL\_SIZE@{HF\_RTT\_TAIL\_SIZE}}
\index{HF\_RTT\_TAIL\_SIZE@{HF\_RTT\_TAIL\_SIZE}!Trace configs@{Trace configs}}
\doxysubsubsubsubsection{\texorpdfstring{HF\_RTT\_TAIL\_SIZE}{HF\_RTT\_TAIL\_SIZE}}
{\footnotesize\ttfamily \label{group___t_r_a_c_e___c_o_n_f_i_g_gafcc7ea03d4df8f1909e580b519a7f3ca}
\#define HF\+\_\+\+RTT\+\_\+\+TAIL\+\_\+\+SIZE~\mbox{\hyperlink{group___t_r_a_c_e___c_o_n_f_i_g_ga501312b24e322de4dd6755ad442f0ba3}{RTT\+\_\+\+FLASH\+\_\+\+BUFFER\+\_\+\+SIZE}}}
Размер буфера RTT, который сохранится при Hardfault.
Definition at line \mbox{\hyperlink{____mylibs__config_8h_source_l00045}{45}} of file \mbox{\hyperlink{____mylibs__config_8h_source}{\+\_\+\+\_\+mylibs\+\_\+config.\+h}}.
\Hypertarget{group___t_r_a_c_e___c_o_n_f_i_g_gaa31234688b333a505aaa57b8ecdedf5b}\index{Trace configs@{Trace configs}!HF\_STACK\_DUMP\_WORDS@{HF\_STACK\_DUMP\_WORDS}}
\index{HF\_STACK\_DUMP\_WORDS@{HF\_STACK\_DUMP\_WORDS}!Trace configs@{Trace configs}}
\doxysubsubsubsubsection{\texorpdfstring{HF\_STACK\_DUMP\_WORDS}{HF\_STACK\_DUMP\_WORDS}}
{\footnotesize\ttfamily \label{group___t_r_a_c_e___c_o_n_f_i_g_gaa31234688b333a505aaa57b8ecdedf5b}
\#define HF\+\_\+\+STACK\+\_\+\+DUMP\+\_\+\+WORDS~32}
Сколько слов стека будет проанализировано во время Hardfault.
Definition at line \mbox{\hyperlink{____mylibs__config_8h_source_l00046}{46}} of file \mbox{\hyperlink{____mylibs__config_8h_source}{\+\_\+\+\_\+mylibs\+\_\+config.\+h}}.
\Hypertarget{group___t_r_a_c_e___c_o_n_f_i_g_ga0c602733a4a359bf8c095d71cd4d0f63}\index{Trace configs@{Trace configs}!HF\_FLASH\_ADDR@{HF\_FLASH\_ADDR}}
\index{HF\_FLASH\_ADDR@{HF\_FLASH\_ADDR}!Trace configs@{Trace configs}}
\doxysubsubsubsubsection{\texorpdfstring{HF\_FLASH\_ADDR}{HF\_FLASH\_ADDR}}
{\footnotesize\ttfamily \label{group___t_r_a_c_e___c_o_n_f_i_g_ga0c602733a4a359bf8c095d71cd4d0f63}
\#define HF\+\_\+\+FLASH\+\_\+\+ADDR~((uint32\+\_\+t)0x080\+FF000)}
Адрес FLASH куда положится RTT буфер
Definition at line \mbox{\hyperlink{____mylibs__config_8h_source_l00047}{47}} of file \mbox{\hyperlink{____mylibs__config_8h_source}{\+\_\+\+\_\+mylibs\+\_\+config.\+h}}.
\Hypertarget{group___t_r_a_c_e___c_o_n_f_i_g_ga92d0d14732edb7dfa21d483304bdb051}\index{Trace configs@{Trace configs}!HF\_RAM\_END@{HF\_RAM\_END}}
\index{HF\_RAM\_END@{HF\_RAM\_END}!Trace configs@{Trace configs}}
\doxysubsubsubsubsection{\texorpdfstring{HF\_RAM\_END}{HF\_RAM\_END}}
{\footnotesize\ttfamily \label{group___t_r_a_c_e___c_o_n_f_i_g_ga92d0d14732edb7dfa21d483304bdb051}
\#define HF\+\_\+\+RAM\+\_\+\+END~0x20030000}
Конец RAM памяти (чтобы во время анализа стека не выйти за пределы)
Definition at line \mbox{\hyperlink{____mylibs__config_8h_source_l00048}{48}} of file \mbox{\hyperlink{____mylibs__config_8h_source}{\+\_\+\+\_\+mylibs\+\_\+config.\+h}}.
\Hypertarget{group___t_r_a_c_e___c_o_n_f_i_g_ga4222e0e400ad81737cefcabeb03fd23b}\index{Trace configs@{Trace configs}!GPIO\_TRACE\_ENABLE@{GPIO\_TRACE\_ENABLE}}
\index{GPIO\_TRACE\_ENABLE@{GPIO\_TRACE\_ENABLE}!Trace configs@{Trace configs}}
\doxysubsubsubsubsection{\texorpdfstring{GPIO\_TRACE\_ENABLE}{GPIO\_TRACE\_ENABLE}}
{\footnotesize\ttfamily \label{group___t_r_a_c_e___c_o_n_f_i_g_ga4222e0e400ad81737cefcabeb03fd23b}
\#define GPIO\+\_\+\+TRACE\+\_\+\+ENABLE}
Включить GPIO трассировку
Definition at line \mbox{\hyperlink{____mylibs__config_8h_source_l00050}{50}} of file \mbox{\hyperlink{____mylibs__config_8h_source}{\+\_\+\+\_\+mylibs\+\_\+config.\+h}}.

View File

@@ -0,0 +1 @@
ac4a0270cc0a294f6771b1d2273e0e9c

View File

@@ -0,0 +1,97 @@
\doxysubsubsubsection{GPIO trace defines }
\hypertarget{group___t_r_a_c_e___g_p_i_o}{}\label{group___t_r_a_c_e___g_p_i_o}\index{GPIO trace defines@{GPIO trace defines}}
Дефайны для работы с GPIO трассировкой
Collaboration diagram for GPIO trace defines\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=291pt]{group___t_r_a_c_e___g_p_i_o}
\end{center}
\end{figure}
\doxysubsubsubsubsubsection*{Macros}
\begin{DoxyCompactItemize}
\item
\#define \mbox{\hyperlink{group___t_r_a_c_e___g_p_i_o_ga69741d88c991112e99fe7a62e025108a}{TRACE\+\_\+\+GPIO\+\_\+\+RESET}}(\+\_\+gpio\+\_\+, \+\_\+pin\+\_\+)
\begin{DoxyCompactList}\small\item\em Сбросить указанную ножку GPIO. \end{DoxyCompactList}\item
\#define \mbox{\hyperlink{group___t_r_a_c_e___g_p_i_o_ga02a6a7b273766121db8ad4a1371373eb}{TRACE\+\_\+\+GPIO\+\_\+\+SET}}(\+\_\+gpio\+\_\+, \+\_\+pin\+\_\+)
\begin{DoxyCompactList}\small\item\em Установить указанную ножку GPIO. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsubsubsection{Detailed Description}
Дефайны для работы с GPIO трассировкой
Определяется дефайны для работы с GPIO трассировкой\+:
\begin{DoxyItemize}
\item \doxylink{group___t_r_a_c_e___g_p_i_o_ga69741d88c991112e99fe7a62e025108a}{TRACE\+\_\+\+GPIO\+\_\+\+RESET()} -\/ для сброса ножки GPIO (через BSRR)
\item \doxylink{group___t_r_a_c_e___g_p_i_o_ga02a6a7b273766121db8ad4a1371373eb}{TRACE\+\_\+\+GPIO\+\_\+\+SET()} -\/ для выставления ножки GPIO (через BSRR)
\item Если трассировка \doxylink{group___t_r_a_c_e___c_o_n_f_i_g_ga4222e0e400ad81737cefcabeb03fd23b}{GPIO\+\_\+\+TRACE\+\_\+\+ENABLE} отключена, то все дефайны определяются как \textquotesingle{}ничего\textquotesingle{} и на производительность кода не влияют
\end{DoxyItemize}
\label{doc-define-members}
\Hypertarget{group___t_r_a_c_e___g_p_i_o_doc-define-members}
\doxysubsubsubsubsection{Macro Definition Documentation}
\Hypertarget{group___t_r_a_c_e___g_p_i_o_ga69741d88c991112e99fe7a62e025108a}\index{GPIO trace defines@{GPIO trace defines}!TRACE\_GPIO\_RESET@{TRACE\_GPIO\_RESET}}
\index{TRACE\_GPIO\_RESET@{TRACE\_GPIO\_RESET}!GPIO trace defines@{GPIO trace defines}}
\doxysubsubsubsubsubsection{\texorpdfstring{TRACE\_GPIO\_RESET}{TRACE\_GPIO\_RESET}}
{\footnotesize\ttfamily \label{group___t_r_a_c_e___g_p_i_o_ga69741d88c991112e99fe7a62e025108a}
\#define TRACE\+\_\+\+GPIO\+\_\+\+RESET(\begin{DoxyParamCaption}\item[{}]{\+\_\+gpio\+\_\+}{, }\item[{}]{\+\_\+pin\+\_\+}{}\end{DoxyParamCaption})}
{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{(\_gpio\_)-\/>BSRR\ =\ ((\_pin\_)<<16)}
\end{DoxyCode}
Сбросить указанную ножку GPIO.
\begin{DoxyParams}{Parameters}
{\em \+\_\+gpio\+\_\+} & Указатель на структуру GPIO (напр. GPIOA) \\
\hline
{\em \+\_\+pin\+\_\+} & Номер ножки (напр. GPIO\+\_\+\+PIN\+\_\+0)\\
\hline
\end{DoxyParams}
Варианты реализации\+:
\begin{DoxyItemize}
\item GPIO\+\_\+\+TRACE\+\_\+\+ENABLE не определён -\/ макрос пустой
\item GPIO\+\_\+\+TRACE\+\_\+\+ENABLE определён -\/ устанавливает бит сброса через BSRR (({\itshape pin})\texorpdfstring{$<$}{<}\texorpdfstring{$<$}{<}16)
\end{DoxyItemize}
Definition at line \mbox{\hyperlink{trace_8h_source_l00154}{154}} of file \mbox{\hyperlink{trace_8h_source}{trace.\+h}}.
\Hypertarget{group___t_r_a_c_e___g_p_i_o_ga02a6a7b273766121db8ad4a1371373eb}\index{GPIO trace defines@{GPIO trace defines}!TRACE\_GPIO\_SET@{TRACE\_GPIO\_SET}}
\index{TRACE\_GPIO\_SET@{TRACE\_GPIO\_SET}!GPIO trace defines@{GPIO trace defines}}
\doxysubsubsubsubsubsection{\texorpdfstring{TRACE\_GPIO\_SET}{TRACE\_GPIO\_SET}}
{\footnotesize\ttfamily \label{group___t_r_a_c_e___g_p_i_o_ga02a6a7b273766121db8ad4a1371373eb}
\#define TRACE\+\_\+\+GPIO\+\_\+\+SET(\begin{DoxyParamCaption}\item[{}]{\+\_\+gpio\+\_\+}{, }\item[{}]{\+\_\+pin\+\_\+}{}\end{DoxyParamCaption})}
{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{(\_gpio\_)-\/>BSRR\ =\ (((\_pin\_)))}
\end{DoxyCode}
Установить указанную ножку GPIO.
\begin{DoxyParams}{Parameters}
{\em \+\_\+gpio\+\_\+} & Указатель на структуру GPIO (например GPIOA) \\
\hline
{\em \+\_\+pin\+\_\+} & Номер ножки (напр. GPIO\+\_\+\+PIN\+\_\+0)\\
\hline
\end{DoxyParams}
Варианты реализации\+:
\begin{DoxyItemize}
\item GPIO\+\_\+\+TRACE\+\_\+\+ENABLE не определён -\/ макрос пустой
\item GPIO\+\_\+\+TRACE\+\_\+\+ENABLE определён -\/ устанавливает бит установки через BSRR ({\itshape pin})
\end{DoxyItemize}
Definition at line \mbox{\hyperlink{trace_8h_source_l00153}{153}} of file \mbox{\hyperlink{trace_8h_source}{trace.\+h}}.

View File

@@ -0,0 +1 @@
d40611b9b3f8a89ea252c07ed3929315

View File

@@ -0,0 +1,104 @@
\doxysubsubsubsection{Hardfault trace defines }
\hypertarget{group___t_r_a_c_e___h_a_r_d_f_a_u_l_t}{}\label{group___t_r_a_c_e___h_a_r_d_f_a_u_l_t}\index{Hardfault trace defines@{Hardfault trace defines}}
Модуль трассировки Hard\+Fault с возможностью сохранения RTT буфера во Flash.
Collaboration diagram for Hardfault trace defines\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=306pt]{group___t_r_a_c_e___h_a_r_d_f_a_u_l_t}
\end{center}
\end{figure}
\doxysubsubsubsubsubsection*{Macros}
\begin{DoxyCompactItemize}
\item
\#define \mbox{\hyperlink{group___t_r_a_c_e___h_a_r_d_f_a_u_l_t_ga8229256a4357011dd0f61965d8388741}{HF\+\_\+\+Check\+Recovered}}(...)
\item
\#define \mbox{\hyperlink{group___t_r_a_c_e___h_a_r_d_f_a_u_l_t_ga46c193c1f17abd52f0c4846ef97f7f1a}{HF\+\_\+\+Handle\+Fault}}(...)
\end{DoxyCompactItemize}
\doxysubsubsubsubsection{Detailed Description}
Модуль трассировки Hard\+Fault с возможностью сохранения RTT буфера во Flash.
Этот модуль позволяет сохранять контекст процессора и последние символы RTT буфера при возникновении Hard\+Fault.
Механизм работы\+:
\begin{DoxyItemize}
\item При срабатывании Hard\+Fault вызывается HF\+\_\+\+Handle\+Fault(), который\+:
\begin{DoxyEnumerate}
\item Получает указатель на стек, где произошёл Hard\+Fault (MSP или PSP).
\item Выводит значения регистров R0-\/\+R3, R12, LR, PC, PSR и системных регистров SCB.
\item Формирует строку с регистрами и копирует последние символы RTT буфера.
\item Сохраняет данные во Flash с базовым тегом HF\+\_\+\+RTT\+\_\+\+TAG\+\_\+\+BASE.
\end{DoxyEnumerate}
\item Для восстановления последнего Hard\+Fault используется HF\+\_\+\+Check\+Recovered(), который\+:
\begin{DoxyEnumerate}
\item Читает запись во Flash по базовому тегу.
\item Выводит сохранённый RTT буфер и контекст регистров.
\item Опционально стирает Flash после восстановления.
\end{DoxyEnumerate}
\end{DoxyItemize}
Параметры\+:
\begin{DoxyItemize}
\item \doxylink{group___t_r_a_c_e___c_o_n_f_i_g_ga47f454f804b4dbc26cae079e8d8641e6}{HARDFAULT\+\_\+\+SERIAL\+\_\+\+TRACE} -\/ Включить обработку и serial трассировку Hardfault Если отключена то вставляются заглушки, никак не влияющие на параметры и остальную программу
\item \doxylink{group___t_r_a_c_e___c_o_n_f_i_g_gadc960255719c7eff4bdfaa850be9b313}{HF\+\_\+\+RTT\+\_\+\+TAG\+\_\+\+BASE} -\/ Базовый тег RTT Flash для Hard\+Fault
\item \doxylink{group___t_r_a_c_e___c_o_n_f_i_g_gafcc7ea03d4df8f1909e580b519a7f3ca}{HF\+\_\+\+RTT\+\_\+\+TAIL\+\_\+\+SIZE} -\/ Размер буфера RTT, который сохранится при Hardfault
\item \doxylink{group___t_r_a_c_e___c_o_n_f_i_g_gaa31234688b333a505aaa57b8ecdedf5b}{HF\+\_\+\+STACK\+\_\+\+DUMP\+\_\+\+WORDS} -\/ Сколько слов стека будет проанализировано во время Hardfault
\item \doxylink{group___t_r_a_c_e___c_o_n_f_i_g_ga0c602733a4a359bf8c095d71cd4d0f63}{HF\+\_\+\+FLASH\+\_\+\+ADDR} -\/ Адрес FLASH куда положится RTT буфер
\item \doxylink{group___t_r_a_c_e___c_o_n_f_i_g_ga92d0d14732edb7dfa21d483304bdb051}{HF\+\_\+\+RAM\+\_\+\+END} -\/ Конец RAM памяти (чтобы во время анализа стека не выйти за пределы)
\end{DoxyItemize}
\begin{DoxyCode}{0}
\DoxyCodeLine{\textcolor{keywordtype}{void}\ Hardfault()}
\DoxyCodeLine{\{}
\DoxyCodeLine{\ \ HF\_HandleFault();}
\DoxyCodeLine{\ \ NVIC\_SystemReset();}
\DoxyCodeLine{\}}
\DoxyCodeLine{}
\DoxyCodeLine{\textcolor{keywordtype}{int}\ main()}
\DoxyCodeLine{\{}
\DoxyCodeLine{\ \ \textcolor{keywordflow}{if}(HF\_CheckRecovered(0))}
\DoxyCodeLine{\ \ \{}
\DoxyCodeLine{\ \ \ \ \textcolor{comment}{//set\ hardfault\ error}}
\DoxyCodeLine{\ \ \ \ \mbox{\hyperlink{group___t_r_a_c_e___r_t_t___f_l_a_s_h_ga8d8c6850e32b42871faefce3352012d1}{RTT\_EraseFlash}}();\ \textcolor{comment}{//\ erase\ rtt\ flash\ after\ message\ readed}}
\DoxyCodeLine{\ \ \}}
\DoxyCodeLine{\}\ \ }
\end{DoxyCode}
\label{doc-define-members}
\Hypertarget{group___t_r_a_c_e___h_a_r_d_f_a_u_l_t_doc-define-members}
\doxysubsubsubsubsection{Macro Definition Documentation}
\Hypertarget{group___t_r_a_c_e___h_a_r_d_f_a_u_l_t_ga8229256a4357011dd0f61965d8388741}\index{Hardfault trace defines@{Hardfault trace defines}!HF\_CheckRecovered@{HF\_CheckRecovered}}
\index{HF\_CheckRecovered@{HF\_CheckRecovered}!Hardfault trace defines@{Hardfault trace defines}}
\doxysubsubsubsubsubsection{\texorpdfstring{HF\_CheckRecovered}{HF\_CheckRecovered}}
{\footnotesize\ttfamily \label{group___t_r_a_c_e___h_a_r_d_f_a_u_l_t_ga8229256a4357011dd0f61965d8388741}
\#define HF\+\_\+\+Check\+Recovered(\begin{DoxyParamCaption}\item[{}]{}...{}\end{DoxyParamCaption})}
{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{0}
\end{DoxyCode}
Definition at line \mbox{\hyperlink{trace_8h_source_l00581}{581}} of file \mbox{\hyperlink{trace_8h_source}{trace.\+h}}.
\Hypertarget{group___t_r_a_c_e___h_a_r_d_f_a_u_l_t_ga46c193c1f17abd52f0c4846ef97f7f1a}\index{Hardfault trace defines@{Hardfault trace defines}!HF\_HandleFault@{HF\_HandleFault}}
\index{HF\_HandleFault@{HF\_HandleFault}!Hardfault trace defines@{Hardfault trace defines}}
\doxysubsubsubsubsubsection{\texorpdfstring{HF\_HandleFault}{HF\_HandleFault}}
{\footnotesize\ttfamily \label{group___t_r_a_c_e___h_a_r_d_f_a_u_l_t_ga46c193c1f17abd52f0c4846ef97f7f1a}
\#define HF\+\_\+\+Handle\+Fault(\begin{DoxyParamCaption}\item[{}]{}...{}\end{DoxyParamCaption})}
Definition at line \mbox{\hyperlink{trace_8h_source_l00582}{582}} of file \mbox{\hyperlink{trace_8h_source}{trace.\+h}}.

View File

@@ -0,0 +1 @@
a2b22c2a478cecd42e57ff4616ed0a98

View File

@@ -0,0 +1,152 @@
\doxysubsubsubsection{Flash RTT Buffer }
\hypertarget{group___t_r_a_c_e___r_t_t___f_l_a_s_h}{}\label{group___t_r_a_c_e___r_t_t___f_l_a_s_h}\index{Flash RTT Buffer@{Flash RTT Buffer}}
Макросы и функции для сохранения/чтения RTT буфера в Flash.
Collaboration diagram for Flash RTT Buffer\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=282pt]{group___t_r_a_c_e___r_t_t___f_l_a_s_h}
\end{center}
\end{figure}
\doxysubsubsubsubsubsection*{Classes}
\begin{DoxyCompactItemize}
\item
struct \mbox{\hyperlink{struct_r_t_t___flash_header__t}{RTT\+\_\+\+Flash\+Header\+\_\+t}}
\begin{DoxyCompactList}\small\item\em Структура RTT, которая будет положена в Flash. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsubsubsubsection*{Functions}
\begin{DoxyCompactItemize}
\item
\+\_\+\+\_\+\+STATIC\+\_\+\+FORCEINLINE void \mbox{\hyperlink{group___t_r_a_c_e___r_t_t___f_l_a_s_h_ga21353cb4f5af666237739e62ce019cd6}{RTT\+\_\+\+Flash\+Prepare}} (void)
\begin{DoxyCompactList}\small\item\em Подготовка Flash к записи \end{DoxyCompactList}\item
\+\_\+\+\_\+\+STATIC\+\_\+\+FORCEINLINE int \mbox{\hyperlink{group___t_r_a_c_e___r_t_t___f_l_a_s_h_ga79f222c8ab644de4d47f07528d1edd63}{RTT\+\_\+\+Save\+To\+Flash}} (uint32\+\_\+t tag, uint32\+\_\+t tail\+\_\+size)
\begin{DoxyCompactList}\small\item\em Сохраняет последние символы RTT-\/буфера в Flash по тегу \end{DoxyCompactList}\item
\+\_\+\+\_\+\+STATIC\+\_\+\+FORCEINLINE int \mbox{\hyperlink{group___t_r_a_c_e___r_t_t___f_l_a_s_h_ga734b2ebbf0c77699b739013878cfd146}{RTT\+\_\+\+Read\+From\+Flash}} (uint32\+\_\+t tag, char \texorpdfstring{$\ast$}{*}Buffer, uint32\+\_\+t tail\+\_\+size, uint32\+\_\+t \texorpdfstring{$\ast$}{*}read\+\_\+size)
\begin{DoxyCompactList}\small\item\em Читает последние символы RTT-\/буфера из Flash по тегу \end{DoxyCompactList}\item
\+\_\+\+\_\+\+STATIC\+\_\+\+FORCEINLINE int \mbox{\hyperlink{group___t_r_a_c_e___r_t_t___f_l_a_s_h_ga8d8c6850e32b42871faefce3352012d1}{RTT\+\_\+\+Erase\+Flash}} (void)
\begin{DoxyCompactList}\small\item\em Стирание сектора Flash с RTT-\/буфером \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsubsubsection{Detailed Description}
Макросы и функции для сохранения/чтения RTT буфера в Flash.
Модуль позволяет сохранять данные RTT буфера во Flash и читать их обратно по тегам. ~\newline
Теги работают следующим образом\+: ~\newline
\begin{DoxyItemize}
\item Базовый тег (младший байт = 0)\+: модуль сам выбирает первый свободный слот во Flash; ~\newline
новые записи получают автоинкрементированный младший байт тега (от 0x00 до 0x\+FF). ~\newline
\item Конкретный тег (младший байт != 0)\+: запись или чтение происходит строго с указанным тегом; ~\newline
если слот с таким тегом уже занят, запись не выполняется. ~\newline
\item Автоинкремент позволяет хранить несколько последовательных записей в пределах одного базового тега, ~\newline
без необходимости вручную отслеживать адреса Flash или позиции буферов. ~\newline
\end{DoxyItemize}
Параметры\+:
\begin{DoxyItemize}
\item \doxylink{group___t_r_a_c_e___c_o_n_f_i_g_ga501312b24e322de4dd6755ad442f0ba3}{RTT\+\_\+\+FLASH\+\_\+\+BUFFER\+\_\+\+SIZE} -\/ Размер буфера RTT в Flash
\item \doxylink{group___t_r_a_c_e___c_o_n_f_i_g_ga3bc1b76864e1d32cbdd174d4caae7724}{RTT\+\_\+\+FLASH\+\_\+\+SECTOR} -\/ Сектор FLASH куда положится RTT буфер
\item \doxylink{group___t_r_a_c_e___c_o_n_f_i_g_ga8e56f75d3ab8a89ddde1404ae23c3297}{RTT\+\_\+\+FLASH\+\_\+\+SECTOR\+\_\+\+START} -\/ Начало сектора RTT\+\_\+\+FLASH\+\_\+\+SECTOR
\item \doxylink{group___t_r_a_c_e___c_o_n_f_i_g_gafeca0be3688dea07ff443f894668003d}{RTT\+\_\+\+FLASH\+\_\+\+SECTOR\+\_\+\+END} -\/ Конец сектора RTT\+\_\+\+FLASH\+\_\+\+SECTOR
\end{DoxyItemize}
\label{doc-func-members}
\Hypertarget{group___t_r_a_c_e___r_t_t___f_l_a_s_h_doc-func-members}
\doxysubsubsubsubsection{Function Documentation}
\Hypertarget{group___t_r_a_c_e___r_t_t___f_l_a_s_h_ga21353cb4f5af666237739e62ce019cd6}\index{Flash RTT Buffer@{Flash RTT Buffer}!RTT\_FlashPrepare@{RTT\_FlashPrepare}}
\index{RTT\_FlashPrepare@{RTT\_FlashPrepare}!Flash RTT Buffer@{Flash RTT Buffer}}
\doxysubsubsubsubsubsection{\texorpdfstring{RTT\_FlashPrepare()}{RTT\_FlashPrepare()}}
{\footnotesize\ttfamily \label{group___t_r_a_c_e___r_t_t___f_l_a_s_h_ga21353cb4f5af666237739e62ce019cd6}
\+\_\+\+\_\+\+STATIC\+\_\+\+FORCEINLINE void RTT\+\_\+\+Flash\+Prepare (\begin{DoxyParamCaption}\item[{void}]{}{}\end{DoxyParamCaption})}
Подготовка Flash к записи
Сбрасывает ошибки Flash и ожидает готовности перед записью
Definition at line \mbox{\hyperlink{trace_8h_source_l00202}{202}} of file \mbox{\hyperlink{trace_8h_source}{trace.\+h}}.
\Hypertarget{group___t_r_a_c_e___r_t_t___f_l_a_s_h_ga79f222c8ab644de4d47f07528d1edd63}\index{Flash RTT Buffer@{Flash RTT Buffer}!RTT\_SaveToFlash@{RTT\_SaveToFlash}}
\index{RTT\_SaveToFlash@{RTT\_SaveToFlash}!Flash RTT Buffer@{Flash RTT Buffer}}
\doxysubsubsubsubsubsection{\texorpdfstring{RTT\_SaveToFlash()}{RTT\_SaveToFlash()}}
{\footnotesize\ttfamily \label{group___t_r_a_c_e___r_t_t___f_l_a_s_h_ga79f222c8ab644de4d47f07528d1edd63}
\+\_\+\+\_\+\+STATIC\+\_\+\+FORCEINLINE int RTT\+\_\+\+Save\+To\+Flash (\begin{DoxyParamCaption}\item[{uint32\+\_\+t}]{tag}{, }\item[{uint32\+\_\+t}]{tail\+\_\+size}{}\end{DoxyParamCaption})}
Сохраняет последние символы RTT-\/буфера в Flash по тегу
\begin{DoxyParams}{Parameters}
{\em tag} & Базовый или конкретный идентификатор буфера. \\
\hline
{\em tail\+\_\+size} & Количество последних символов RTT для копирования \\
\hline
{\em buf\+\_\+num} & Указатель на переменную в которую запишется номер буфера для конкретного тега \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\texorpdfstring{$>$}{>}=0 — номер буфера (тег) для записи, \texorpdfstring{$<$}{<}0 — ошибка (нет места, тег уже занят, ошибка записи в флеш)
\end{DoxyReturn}
Автоматически копирует последние tail\+\_\+size символов из RTT-\/буфера и записывает их во Flash. Тег может быть базовым или конкретным\+:
\begin{DoxyItemize}
\item Если базовый (младший байт == 0) — будет выбран первый свободный слот с автоинкрементом. Автоинкремент формируется в пределах от 0x1 до 0x\+FF
\item Если конкретный (младший байт != 0) — запись выполняется только с этим тегом, иначе ошибка.
\end{DoxyItemize}
Definition at line \mbox{\hyperlink{trace_8h_source_l00226}{226}} of file \mbox{\hyperlink{trace_8h_source}{trace.\+h}}.
\Hypertarget{group___t_r_a_c_e___r_t_t___f_l_a_s_h_ga734b2ebbf0c77699b739013878cfd146}\index{Flash RTT Buffer@{Flash RTT Buffer}!RTT\_ReadFromFlash@{RTT\_ReadFromFlash}}
\index{RTT\_ReadFromFlash@{RTT\_ReadFromFlash}!Flash RTT Buffer@{Flash RTT Buffer}}
\doxysubsubsubsubsubsection{\texorpdfstring{RTT\_ReadFromFlash()}{RTT\_ReadFromFlash()}}
{\footnotesize\ttfamily \label{group___t_r_a_c_e___r_t_t___f_l_a_s_h_ga734b2ebbf0c77699b739013878cfd146}
\+\_\+\+\_\+\+STATIC\+\_\+\+FORCEINLINE int RTT\+\_\+\+Read\+From\+Flash (\begin{DoxyParamCaption}\item[{uint32\+\_\+t}]{tag}{, }\item[{char \texorpdfstring{$\ast$}{*}}]{Buffer}{, }\item[{uint32\+\_\+t}]{tail\+\_\+size}{, }\item[{uint32\+\_\+t \texorpdfstring{$\ast$}{*}}]{read\+\_\+size}{}\end{DoxyParamCaption})}
Читает последние символы RTT-\/буфера из Flash по тегу
\begin{DoxyParams}{Parameters}
{\em tag} & Базовый или конкретный идентификатор буфера. \\
\hline
{\em Buffer} & Буфер назначения для копирования данных \\
\hline
{\em tail\+\_\+size} & Количество последних символов, которые нужно прочитать \\
\hline
{\em read\+\_\+size} & Количество считанных символов \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\texorpdfstring{$>$}{>}=0 — номер буфера (тег) для записи, \texorpdfstring{$<$}{<}0 — ошибка (тег не найден или структура повреждена)
\end{DoxyReturn}
Копирует последние tail\+\_\+size символов из найденной записи Flash в Buffer. Тег может быть базовым или конкретным\+:
\begin{DoxyItemize}
\item Если базовый (младший байт == 0) — будет прочитана последняя запись из группы.
\item Если конкретный (младший байт != 0) — прочитывается именно эта запись.
\end{DoxyItemize}
Definition at line \mbox{\hyperlink{trace_8h_source_l00323}{323}} of file \mbox{\hyperlink{trace_8h_source}{trace.\+h}}.
\Hypertarget{group___t_r_a_c_e___r_t_t___f_l_a_s_h_ga8d8c6850e32b42871faefce3352012d1}\index{Flash RTT Buffer@{Flash RTT Buffer}!RTT\_EraseFlash@{RTT\_EraseFlash}}
\index{RTT\_EraseFlash@{RTT\_EraseFlash}!Flash RTT Buffer@{Flash RTT Buffer}}
\doxysubsubsubsubsubsection{\texorpdfstring{RTT\_EraseFlash()}{RTT\_EraseFlash()}}
{\footnotesize\ttfamily \label{group___t_r_a_c_e___r_t_t___f_l_a_s_h_ga8d8c6850e32b42871faefce3352012d1}
\+\_\+\+\_\+\+STATIC\+\_\+\+FORCEINLINE int RTT\+\_\+\+Erase\+Flash (\begin{DoxyParamCaption}\item[{void}]{}{}\end{DoxyParamCaption})}
Стирание сектора Flash с RTT-\/буфером
Definition at line \mbox{\hyperlink{trace_8h_source_l00387}{387}} of file \mbox{\hyperlink{trace_8h_source}{trace.\+h}}.

View File

@@ -0,0 +1 @@
4ef22f6ccdece7fed6e6f9586217d5a8

View File

@@ -0,0 +1,159 @@
\doxysubsubsubsection{Serial trace defines }
\hypertarget{group___t_r_a_c_e___s_e_r_i_a_l}{}\label{group___t_r_a_c_e___s_e_r_i_a_l}\index{Serial trace defines@{Serial trace defines}}
Дефайны для работы с serial трассировкой (SWO, RTT)
Collaboration diagram for Serial trace defines\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=291pt]{group___t_r_a_c_e___s_e_r_i_a_l}
\end{center}
\end{figure}
\doxysubsubsubsubsubsection*{Macros}
\begin{DoxyCompactItemize}
\item
\#define \mbox{\hyperlink{group___t_r_a_c_e___s_e_r_i_a_l_gae9b9b8a611e291a2f2aa5abf99f3ebaa}{my\+\_\+printf}}(...)
\begin{DoxyCompactList}\small\item\em Универсальный макрос для вывода трассировки \end{DoxyCompactList}\item
\#define \mbox{\hyperlink{group___t_r_a_c_e___s_e_r_i_a_l_ga730fb7b8d0bbb348dca73c15bd0e0b26}{log\+\_\+printf}}(TAG, fmt, ...)
\begin{DoxyCompactList}\small\item\em Макрос логирования с поддержкой уровней \doxylink{group___t_r_a_c_e___s_e_r_i_a_l_ga0b87e0d3bf5853bcbb0b66a7c48fdc05}{LOG\+\_\+\+LEVEL}. \end{DoxyCompactList}\item
\#define \mbox{\hyperlink{group___t_r_a_c_e___s_e_r_i_a_l_ga9c853b02c22f26023c34d1d404b6d653}{local\+\_\+time}}()
\begin{DoxyCompactList}\small\item\em Локальное время \end{DoxyCompactList}\item
\#define \mbox{\hyperlink{group___t_r_a_c_e___s_e_r_i_a_l_ga0b87e0d3bf5853bcbb0b66a7c48fdc05}{LOG\+\_\+\+LEVEL}}~1
\begin{DoxyCompactList}\small\item\em Уровень логирования (по умолчанию == 1) \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsubsubsection{Detailed Description}
Дефайны для работы с serial трассировкой (SWO, RTT)
В зависимости от настроек определяется дефайн \doxylink{group___t_r_a_c_e___s_e_r_i_a_l_gae9b9b8a611e291a2f2aa5abf99f3ebaa}{my\+\_\+printf()} и \doxylink{group___t_r_a_c_e___s_e_r_i_a_l_ga730fb7b8d0bbb348dca73c15bd0e0b26}{log\+\_\+printf()} для работы с трассировкой\+:
\begin{DoxyItemize}
\item \doxylink{group___t_r_a_c_e___c_o_n_f_i_g_ga76936505ca200d2e61226b7ba68f27c6}{SERIAL\+\_\+\+TRACE\+\_\+\+ENABLE} -\/ Если трассировка отключена, то все дефайны определяются как \textquotesingle{}ничего\textquotesingle{} и на производительность кода не влияют
\item \doxylink{group___t_r_a_c_e___c_o_n_f_i_g_ga00ff2175bdc1fb11c8ec970ea3010dd8}{RTT\+\_\+\+TRACE\+\_\+\+ENABLE} -\/ для RTT это будет вызов функции SEGGER\+\_\+\+RTT\+\_\+printf()
Предварительно надо подключить библиотеку SEGGER RTT (\doxylink{_s_e_g_g_e_r___r_t_t_8h_source}{SEGGER\+\_\+\+RTT.\+h}) и вызвать функцию SEGGER\+\_\+\+RTT\+\_\+\+Init()
\item \doxylink{group___t_r_a_c_e___c_o_n_f_i_g_gab8db9704b5d11858aa879689b9d36336}{SWO\+\_\+\+TRACE\+\_\+\+ENABLE} для SWO это будет просто printf()
Предварительно надо подключить библиотеку STDOUT и retarget под ITM\+:
\begin{DoxyVerb} Manage Run-Time Environment -> Compiler -> I/O -> STDOUT -> ITM
\end{DoxyVerb}
Для SWO также надо включить трассировку\+: ~\newline
\begin{DoxyVerb} Options For Target -> Debug -> Debugger Settings
\end{DoxyVerb}
В вкладке Debug\+:
\begin{DoxyItemize}
\item Port = SW В вкладке Trace\+:
\item Указать Core Clock
\item Выставить Trace Port = SWO
\item ITM -\/ выбрать нужный порт (для Keil нулевой порт)
\end{DoxyItemize}
\end{DoxyItemize}
\label{doc-define-members}
\Hypertarget{group___t_r_a_c_e___s_e_r_i_a_l_doc-define-members}
\doxysubsubsubsubsection{Macro Definition Documentation}
\Hypertarget{group___t_r_a_c_e___s_e_r_i_a_l_gae9b9b8a611e291a2f2aa5abf99f3ebaa}\index{Serial trace defines@{Serial trace defines}!my\_printf@{my\_printf}}
\index{my\_printf@{my\_printf}!Serial trace defines@{Serial trace defines}}
\doxysubsubsubsubsubsection{\texorpdfstring{my\_printf}{my\_printf}}
{\footnotesize\ttfamily \label{group___t_r_a_c_e___s_e_r_i_a_l_gae9b9b8a611e291a2f2aa5abf99f3ebaa}
\#define my\+\_\+printf(\begin{DoxyParamCaption}\item[{}]{}...{}\end{DoxyParamCaption})}
{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{SEGGER\_RTT\_printf(0,\ \_\_VA\_ARGS\_\_)}
\end{DoxyCode}
Универсальный макрос для вывода трассировки
Варианты реализации\+:
\begin{DoxyItemize}
\item RTT\+\_\+\+TRACE\+\_\+\+ENABLE {\ttfamily SEGGER\+\_\+\+RTT\+\_\+printf(0, ...)}
\item SWO\+\_\+\+TRACE\+\_\+\+ENABLE -\/ {\ttfamily printf(...)}
\item NO\+\_\+\+TRACE -\/ пустой макрос
\end{DoxyItemize}
Definition at line \mbox{\hyperlink{trace_8h_source_l00079}{79}} of file \mbox{\hyperlink{trace_8h_source}{trace.\+h}}.
\Hypertarget{group___t_r_a_c_e___s_e_r_i_a_l_ga730fb7b8d0bbb348dca73c15bd0e0b26}\index{Serial trace defines@{Serial trace defines}!log\_printf@{log\_printf}}
\index{log\_printf@{log\_printf}!Serial trace defines@{Serial trace defines}}
\doxysubsubsubsubsubsection{\texorpdfstring{log\_printf}{log\_printf}}
{\footnotesize\ttfamily \label{group___t_r_a_c_e___s_e_r_i_a_l_ga730fb7b8d0bbb348dca73c15bd0e0b26}
\#define log\+\_\+printf(\begin{DoxyParamCaption}\item[{}]{TAG}{, }\item[{}]{fmt}{, }\item[{}]{}...{}\end{DoxyParamCaption})}
Макрос логирования с поддержкой уровней \doxylink{group___t_r_a_c_e___s_e_r_i_a_l_ga0b87e0d3bf5853bcbb0b66a7c48fdc05}{LOG\+\_\+\+LEVEL}.
\begin{DoxyParams}{Parameters}
{\em TAG} & Тэг лога \\
\hline
{\em fmt,...} & Форматируемая строка\\
\hline
\end{DoxyParams}
Варианты реализации\+:
\begin{DoxyItemize}
\item \doxylink{group___t_r_a_c_e___s_e_r_i_a_l_ga0b87e0d3bf5853bcbb0b66a7c48fdc05}{LOG\+\_\+\+LEVEL} == 0 -\/ логирование отключено (макрос пустой)
\item \doxylink{group___t_r_a_c_e___s_e_r_i_a_l_ga0b87e0d3bf5853bcbb0b66a7c48fdc05}{LOG\+\_\+\+LEVEL} == 1 -\/ выводится время \doxylink{group___t_r_a_c_e___s_e_r_i_a_l_ga9c853b02c22f26023c34d1d404b6d653}{local\+\_\+time} и TAG
\begin{DoxyCode}{0}
\DoxyCodeLine{[123]\ [ADC]\ Measure\ Done}
\DoxyCodeLine{[456]\ [ADC]\ Measure\ Err}
\end{DoxyCode}
\item \doxylink{group___t_r_a_c_e___s_e_r_i_a_l_ga0b87e0d3bf5853bcbb0b66a7c48fdc05}{LOG\+\_\+\+LEVEL} \texorpdfstring{$>$}{>}= 2 -\/ выводится время, TAG, имя файла и номер строки
\begin{DoxyCode}{0}
\DoxyCodeLine{[123]\ [ADC]\ (../Core/Src/adc.c:75)\ Measure\ Done}
\DoxyCodeLine{[456]\ [ADC]\ (../Core/Src/adc.c:80)\ Measure\ Err}
\end{DoxyCode}
\end{DoxyItemize}
Definition at line \mbox{\hyperlink{trace_8h_source_l00106}{106}} of file \mbox{\hyperlink{trace_8h_source}{trace.\+h}}.
\Hypertarget{group___t_r_a_c_e___s_e_r_i_a_l_ga9c853b02c22f26023c34d1d404b6d653}\index{Serial trace defines@{Serial trace defines}!local\_time@{local\_time}}
\index{local\_time@{local\_time}!Serial trace defines@{Serial trace defines}}
\doxysubsubsubsubsubsection{\texorpdfstring{local\_time}{local\_time}}
{\footnotesize\ttfamily \label{group___t_r_a_c_e___s_e_r_i_a_l_ga9c853b02c22f26023c34d1d404b6d653}
\#define local\+\_\+time(\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption})}
{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{HAL\_GetTick()}
\end{DoxyCode}
Локальное время
Definition at line \mbox{\hyperlink{trace_8h_source_l00097}{97}} of file \mbox{\hyperlink{trace_8h_source}{trace.\+h}}.
\Hypertarget{group___t_r_a_c_e___s_e_r_i_a_l_ga0b87e0d3bf5853bcbb0b66a7c48fdc05}\index{Serial trace defines@{Serial trace defines}!LOG\_LEVEL@{LOG\_LEVEL}}
\index{LOG\_LEVEL@{LOG\_LEVEL}!Serial trace defines@{Serial trace defines}}
\doxysubsubsubsubsubsection{\texorpdfstring{LOG\_LEVEL}{LOG\_LEVEL}}
{\footnotesize\ttfamily \label{group___t_r_a_c_e___s_e_r_i_a_l_ga0b87e0d3bf5853bcbb0b66a7c48fdc05}
\#define LOG\+\_\+\+LEVEL~1}
Уровень логирования (по умолчанию == 1)
Definition at line \mbox{\hyperlink{trace_8h_source_l00100}{100}} of file \mbox{\hyperlink{trace_8h_source}{trace.\+h}}.

View File

@@ -0,0 +1 @@
5e8d7e9fe8d7afc9f2f5dd4a2692dbb0

Binary file not shown.

View File

@@ -0,0 +1,521 @@
\doxysubsubsection{Trackers defines }
\hypertarget{group___t_r_a_c_k_e_r_s}{}\label{group___t_r_a_c_k_e_r_s}\index{Trackers defines@{Trackers defines}}
Дефайны для работы с трекерами
Collaboration diagram for Trackers defines\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=275pt]{group___t_r_a_c_k_e_r_s}
\end{center}
\end{figure}
\doxysubsubsubsubsection*{Macros}
\begin{DoxyCompactItemize}
\item
\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_ga50ccb119acf302969b7fdcb58f2130e4}{Tracker\+Type\+Def}}(num\+\_\+user\+\_\+vars)
\begin{DoxyCompactList}\small\item\em Структура для счетчиков отладки \end{DoxyCompactList}\item
\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_ga72be24629fedb8bf70e830373d151fbc}{num\+\_\+of\+\_\+usercnts}}(\+\_\+user\+\_\+)
\begin{DoxyCompactList}\small\item\em Получить количетство пользовательских переменных \end{DoxyCompactList}\item
\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_gadd7fd2c6e3a4800f1d5ddab35fd4b43e}{assert\+\_\+usertracker}}(\+\_\+cntstruct\+\_\+, \+\_\+uservarnumb\+\_\+)
\begin{DoxyCompactList}\small\item\em Проверка существует ли указанная пользовательская переменная \end{DoxyCompactList}\item
\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_gad91d8ca89074270fc040c0449e57cf07}{if\+\_\+assert\+\_\+usertracker}}(\+\_\+cntstruct\+\_\+, \+\_\+uservarnumb\+\_\+)
\begin{DoxyCompactList}\small\item\em Условие для проверки существует ли указанная пользовательская переменная \end{DoxyCompactList}\item
\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_ga39b6ffbc561f8caac276415e1ad32c30}{tern\+\_\+assert\+\_\+usertracker}}(\+\_\+cntstruct\+\_\+, \+\_\+uservarnumb\+\_\+)
\begin{DoxyCompactList}\small\item\em Тернарный оператор для проверки существует ли указанная пользовательская переменная \end{DoxyCompactList}\item
\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_gab880911066605602a966641682090169}{Tracker\+Get\+\_\+\+Ok}}(\+\_\+cntstruct\+\_\+)
\begin{DoxyCompactList}\small\item\em Считать счетчик успешных событий \end{DoxyCompactList}\item
\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_ga9dc91e6b798a081f95f2ccef2c288e5e}{Tracker\+Get\+\_\+\+Err}}(\+\_\+cntstruct\+\_\+)
\begin{DoxyCompactList}\small\item\em Считать счетчик ошибок \end{DoxyCompactList}\item
\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_ga47ac59a406ee74d4cd9fe0fbaf63a758}{Tracker\+Get\+\_\+\+Warn}}(\+\_\+cntstruct\+\_\+)
\begin{DoxyCompactList}\small\item\em Считать счетчик предупреждений \end{DoxyCompactList}\item
\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_ga4b08632669043dfdbd219dda03502bdb}{Tracker\+Get\+\_\+\+User}}(\+\_\+cntstruct\+\_\+, \+\_\+uservarnumb\+\_\+)
\begin{DoxyCompactList}\small\item\em Считать пользовательскую переменную \end{DoxyCompactList}\item
\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_ga23de0006aa08984cfeddb6aa5e512fa1}{Tracker\+Cnt\+\_\+\+Ok}}(\+\_\+cntstruct\+\_\+)
\begin{DoxyCompactList}\small\item\em Инкрементирование счетчика успешных событий \end{DoxyCompactList}\item
\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_ga49af29ab3927cad105c1d2b018a767e9}{Tracker\+Cnt\+\_\+\+Err}}(\+\_\+cntstruct\+\_\+)
\begin{DoxyCompactList}\small\item\em Инкрементирование счетчика ошибок \end{DoxyCompactList}\item
\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_ga8017fb05a56a1b667244f1f786fa9c57}{Tracker\+Cnt\+\_\+\+Warn}}(\+\_\+cntstruct\+\_\+)
\begin{DoxyCompactList}\small\item\em Инкрементирование счетчика предупреждений \end{DoxyCompactList}\item
\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_ga1b7549afc4a1760b54a9b93b0f6d105e}{Tracker\+Cnt\+\_\+\+User}}(\+\_\+cntstruct\+\_\+, \+\_\+uservarnumb\+\_\+)
\begin{DoxyCompactList}\small\item\em Инкрементирование пользовательской переменной \end{DoxyCompactList}\item
\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_gad2f4062a9ac8c2ab062a364f640ebc51}{Tracker\+Write\+\_\+\+User}}(\+\_\+cntstruct\+\_\+, \+\_\+uservarnumb\+\_\+, \+\_\+val\+\_\+)
\begin{DoxyCompactList}\small\item\em Запись числа в пользовательскую переменную \end{DoxyCompactList}\item
\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_ga704f7b9f8c65c9bcec48ce7cb77a2d3b}{Tracker\+Clear\+\_\+\+All}}(\+\_\+cntstruct\+\_\+)
\begin{DoxyCompactList}\small\item\em Очистка всей структуры \end{DoxyCompactList}\item
\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_ga5dd8bac8c7ab5832019d55d7a68371b9}{Tracker\+Clear\+\_\+\+Ok}}(\+\_\+cntstruct\+\_\+)
\begin{DoxyCompactList}\small\item\em Очистка счетчика успешных событий \end{DoxyCompactList}\item
\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_gae860b6947c6e317e14d40bd7b4b8eb74}{Tracker\+Clear\+\_\+\+Err}}(\+\_\+cntstruct\+\_\+)
\begin{DoxyCompactList}\small\item\em Очистка счетчика ошибок \end{DoxyCompactList}\item
\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_ga365a8c60bd13b75154feda649dd21ead}{Tracker\+Clear\+\_\+\+Warn}}(\+\_\+cntstruct\+\_\+)
\begin{DoxyCompactList}\small\item\em Очистка счетчика предупреждений \end{DoxyCompactList}\item
\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_ga063dab1067005e1600ea32531fdf3f8d}{Tracker\+Clear\+\_\+\+User}}(\+\_\+cntstruct\+\_\+, \+\_\+uservarnumb\+\_\+)
\begin{DoxyCompactList}\small\item\em Очистка пользовательской переменной \end{DoxyCompactList}\item
\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_gaaec7ec19977bb26fa1919dfe920b82d5}{Tracker\+Clear\+\_\+\+User\+All}}(\+\_\+cntstruct\+\_\+)
\begin{DoxyCompactList}\small\item\em Очистка всех пользовательских переменных \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsubsection{Detailed Description}
Дефайны для работы с трекерами
~\newline
Есть дефайн для объявления структуры трекера\+: \doxylink{group___t_r_a_c_k_e_r_s_ga50ccb119acf302969b7fdcb58f2130e4}{Tracker\+Type\+Def(num\+\_\+user\+\_\+vars)}. Структура состоит из следующих элементов\+:
\begin{DoxyItemize}
\item cnt\+\_\+ok
\item cnt\+\_\+err
\item cnt\+\_\+warn
\item user\mbox{[}num\+\_\+user\+\_\+vars\mbox{]} ~\newline
Также есть ряд функций (дефайнов) для обращения к элементам этой структуры.
\end{DoxyItemize}
Параметры для конфигурации\+:
\begin{DoxyItemize}
\item \doxylink{group___t_r_a_c_e___c_o_n_f_i_g_gac9eaedc31ab023ce7d6403999216e496}{TRACKERS\+\_\+\+ENABLE} -\/ Включить трекеры Если трекеры \doxylink{group___t_r_a_c_e___c_o_n_f_i_g_gac9eaedc31ab023ce7d6403999216e496}{TRACKERS\+\_\+\+ENABLE} отключены, то все дефайны определяются как ничего и на производительность кода не влияют ~\newline
\end{DoxyItemize}
\begin{DoxyParagraph}{Пример\+:}
\end{DoxyParagraph}
Определяем typedef трекера измерений Measure\+\_\+\+Tracker\+Type\+Def
\begin{DoxyVerb} typedef TrackerTypeDef(MEASURE_USER_VARS_NUMB) Measure_TrackerTypeDef;
\end{DoxyVerb}
И через Measure\+\_\+\+Tracker\+Type\+Def структура подключается в другие структуры
Для работы с структурой можно использовать функции\+:
\begin{DoxyItemize}
\item Для получения значения\+:
\begin{DoxyItemize}
\item \doxylink{group___t_r_a_c_k_e_r_s_gab880911066605602a966641682090169}{Tracker\+Get\+\_\+\+Ok()}
\item \doxylink{group___t_r_a_c_k_e_r_s_ga9dc91e6b798a081f95f2ccef2c288e5e}{Tracker\+Get\+\_\+\+Err()}
\item \doxylink{group___t_r_a_c_k_e_r_s_ga47ac59a406ee74d4cd9fe0fbaf63a758}{Tracker\+Get\+\_\+\+Warn()}
\item \doxylink{group___t_r_a_c_k_e_r_s_ga4b08632669043dfdbd219dda03502bdb}{Tracker\+Get\+\_\+\+User(n)}
\end{DoxyItemize}
\item Для записи значения\+:
\begin{DoxyItemize}
\item \doxylink{group___t_r_a_c_k_e_r_s_ga23de0006aa08984cfeddb6aa5e512fa1}{Tracker\+Cnt\+\_\+\+Ok()}
\item \doxylink{group___t_r_a_c_k_e_r_s_ga49af29ab3927cad105c1d2b018a767e9}{Tracker\+Cnt\+\_\+\+Err()}
\item \doxylink{group___t_r_a_c_k_e_r_s_ga8017fb05a56a1b667244f1f786fa9c57}{Tracker\+Cnt\+\_\+\+Warn()}
\item \doxylink{group___t_r_a_c_k_e_r_s_ga1b7549afc4a1760b54a9b93b0f6d105e}{Tracker\+Cnt\+\_\+\+User()}
\item \doxylink{group___t_r_a_c_k_e_r_s_gad2f4062a9ac8c2ab062a364f640ebc51}{Tracker\+Write\+\_\+\+User(n)}
\end{DoxyItemize}
\item Для очищения значения\+:
\begin{DoxyItemize}
\item \doxylink{group___t_r_a_c_k_e_r_s_ga704f7b9f8c65c9bcec48ce7cb77a2d3b}{Tracker\+Clear\+\_\+\+All()}
\item \doxylink{group___t_r_a_c_k_e_r_s_ga5dd8bac8c7ab5832019d55d7a68371b9}{Tracker\+Clear\+\_\+\+Ok()}
\item \doxylink{group___t_r_a_c_k_e_r_s_gae860b6947c6e317e14d40bd7b4b8eb74}{Tracker\+Clear\+\_\+\+Err()}
\item \doxylink{group___t_r_a_c_k_e_r_s_ga365a8c60bd13b75154feda649dd21ead}{Tracker\+Clear\+\_\+\+Warn()}
\item \doxylink{group___t_r_a_c_k_e_r_s_ga063dab1067005e1600ea32531fdf3f8d}{Tracker\+Clear\+\_\+\+User(n)}
\item \doxylink{group___t_r_a_c_k_e_r_s_gaaec7ec19977bb26fa1919dfe920b82d5}{Tracker\+Clear\+\_\+\+User\+All()}
\end{DoxyItemize}
\end{DoxyItemize}
\label{doc-define-members}
\Hypertarget{group___t_r_a_c_k_e_r_s_doc-define-members}
\doxysubsubsubsection{Macro Definition Documentation}
\Hypertarget{group___t_r_a_c_k_e_r_s_ga50ccb119acf302969b7fdcb58f2130e4}\index{Trackers defines@{Trackers defines}!TrackerTypeDef@{TrackerTypeDef}}
\index{TrackerTypeDef@{TrackerTypeDef}!Trackers defines@{Trackers defines}}
\doxysubsubsubsubsection{\texorpdfstring{TrackerTypeDef}{TrackerTypeDef}}
{\footnotesize\ttfamily \label{group___t_r_a_c_k_e_r_s_ga50ccb119acf302969b7fdcb58f2130e4}
\#define Tracker\+Type\+Def(\begin{DoxyParamCaption}\item[{}]{num\+\_\+user\+\_\+vars}{}\end{DoxyParamCaption})}
{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{\ \ \textcolor{keyword}{struct\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }\(\backslash\)}
\DoxyCodeLine{\ \ \{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}
\DoxyCodeLine{\ \ \ \ uint32\_t\ cnt\_ok;\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}
\DoxyCodeLine{\ \ \ \ uint32\_t\ cnt\_err;\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}
\DoxyCodeLine{\ \ \ \ uint32\_t\ cnt\_warn;\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}
\DoxyCodeLine{\ \ \ \ uint32\_t\ user[num\_user\_vars];\ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}
\DoxyCodeLine{\ \ \}}
\end{DoxyCode}
Структура для счетчиков отладки
\begin{DoxyParams}{Parameters}
{\em num\+\_\+user\+\_\+vars} & -\/ количество пользовательских переменных\\
\hline
\end{DoxyParams}
Содержит счетчик для успешных событый (cnt\+\_\+ok), счетчик для ошибок (cnt\+\_\+err), счетчик для предупреждений (cnt\+\_\+warn).
Также есть возможность объявить пользовательские переменные в количестве $<$num\+\_\+user\+\_\+vars$>$ штук.
Definition at line \mbox{\hyperlink{trackers_8h_source_l00069}{69}} of file \mbox{\hyperlink{trackers_8h_source}{trackers.\+h}}.
\Hypertarget{group___t_r_a_c_k_e_r_s_ga72be24629fedb8bf70e830373d151fbc}\index{Trackers defines@{Trackers defines}!num\_of\_usercnts@{num\_of\_usercnts}}
\index{num\_of\_usercnts@{num\_of\_usercnts}!Trackers defines@{Trackers defines}}
\doxysubsubsubsubsection{\texorpdfstring{num\_of\_usercnts}{num\_of\_usercnts}}
{\footnotesize\ttfamily \label{group___t_r_a_c_k_e_r_s_ga72be24629fedb8bf70e830373d151fbc}
\#define num\+\_\+of\+\_\+usercnts(\begin{DoxyParamCaption}\item[{}]{\+\_\+user\+\_\+}{}\end{DoxyParamCaption})}
{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{(\textcolor{keyword}{sizeof}(\_user\_)\ /\ \textcolor{keyword}{sizeof}(uint32\_t))}
\end{DoxyCode}
Получить количетство пользовательских переменных
Definition at line \mbox{\hyperlink{trackers_8h_source_l00079}{79}} of file \mbox{\hyperlink{trackers_8h_source}{trackers.\+h}}.
\Hypertarget{group___t_r_a_c_k_e_r_s_gadd7fd2c6e3a4800f1d5ddab35fd4b43e}\index{Trackers defines@{Trackers defines}!assert\_usertracker@{assert\_usertracker}}
\index{assert\_usertracker@{assert\_usertracker}!Trackers defines@{Trackers defines}}
\doxysubsubsubsubsection{\texorpdfstring{assert\_usertracker}{assert\_usertracker}}
{\footnotesize\ttfamily \label{group___t_r_a_c_k_e_r_s_gadd7fd2c6e3a4800f1d5ddab35fd4b43e}
\#define assert\+\_\+usertracker(\begin{DoxyParamCaption}\item[{}]{\+\_\+cntstruct\+\_\+}{, }\item[{}]{\+\_\+uservarnumb\+\_\+}{}\end{DoxyParamCaption})}
{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{((\_uservarnumb\_)\ <\ \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_ga72be24629fedb8bf70e830373d151fbc}{num\_of\_usercnts}}((\_cntstruct\_).user))}
\end{DoxyCode}
Проверка существует ли указанная пользовательская переменная
Definition at line \mbox{\hyperlink{trackers_8h_source_l00081}{81}} of file \mbox{\hyperlink{trackers_8h_source}{trackers.\+h}}.
\Hypertarget{group___t_r_a_c_k_e_r_s_gad91d8ca89074270fc040c0449e57cf07}\index{Trackers defines@{Trackers defines}!if\_assert\_usertracker@{if\_assert\_usertracker}}
\index{if\_assert\_usertracker@{if\_assert\_usertracker}!Trackers defines@{Trackers defines}}
\doxysubsubsubsubsection{\texorpdfstring{if\_assert\_usertracker}{if\_assert\_usertracker}}
{\footnotesize\ttfamily \label{group___t_r_a_c_k_e_r_s_gad91d8ca89074270fc040c0449e57cf07}
\#define if\+\_\+assert\+\_\+usertracker(\begin{DoxyParamCaption}\item[{}]{\+\_\+cntstruct\+\_\+}{, }\item[{}]{\+\_\+uservarnumb\+\_\+}{}\end{DoxyParamCaption})}
{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{\textcolor{keywordflow}{if}(\mbox{\hyperlink{group___t_r_a_c_k_e_r_s_gadd7fd2c6e3a4800f1d5ddab35fd4b43e}{assert\_usertracker}}(\_cntstruct\_,\ \_uservarnumb\_))}
\end{DoxyCode}
Условие для проверки существует ли указанная пользовательская переменная
Definition at line \mbox{\hyperlink{trackers_8h_source_l00083}{83}} of file \mbox{\hyperlink{trackers_8h_source}{trackers.\+h}}.
\Hypertarget{group___t_r_a_c_k_e_r_s_ga39b6ffbc561f8caac276415e1ad32c30}\index{Trackers defines@{Trackers defines}!tern\_assert\_usertracker@{tern\_assert\_usertracker}}
\index{tern\_assert\_usertracker@{tern\_assert\_usertracker}!Trackers defines@{Trackers defines}}
\doxysubsubsubsubsection{\texorpdfstring{tern\_assert\_usertracker}{tern\_assert\_usertracker}}
{\footnotesize\ttfamily \label{group___t_r_a_c_k_e_r_s_ga39b6ffbc561f8caac276415e1ad32c30}
\#define tern\+\_\+assert\+\_\+usertracker(\begin{DoxyParamCaption}\item[{}]{\+\_\+cntstruct\+\_\+}{, }\item[{}]{\+\_\+uservarnumb\+\_\+}{}\end{DoxyParamCaption})}
{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{(\mbox{\hyperlink{group___t_r_a_c_k_e_r_s_gadd7fd2c6e3a4800f1d5ddab35fd4b43e}{assert\_usertracker}}(\_cntstruct\_,\ \_uservarnumb\_))\ ?\ \_uservarnumb\_\ :\ 0}
\end{DoxyCode}
Тернарный оператор для проверки существует ли указанная пользовательская переменная
Definition at line \mbox{\hyperlink{trackers_8h_source_l00085}{85}} of file \mbox{\hyperlink{trackers_8h_source}{trackers.\+h}}.
\Hypertarget{group___t_r_a_c_k_e_r_s_gab880911066605602a966641682090169}\index{Trackers defines@{Trackers defines}!TrackerGet\_Ok@{TrackerGet\_Ok}}
\index{TrackerGet\_Ok@{TrackerGet\_Ok}!Trackers defines@{Trackers defines}}
\doxysubsubsubsubsection{\texorpdfstring{TrackerGet\_Ok}{TrackerGet\_Ok}}
{\footnotesize\ttfamily \label{group___t_r_a_c_k_e_r_s_gab880911066605602a966641682090169}
\#define Tracker\+Get\+\_\+\+Ok(\begin{DoxyParamCaption}\item[{}]{\+\_\+cntstruct\+\_\+}{}\end{DoxyParamCaption})}
{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{(\_cntstruct\_).cnt\_ok}
\end{DoxyCode}
Считать счетчик успешных событий
Definition at line \mbox{\hyperlink{trackers_8h_source_l00089}{89}} of file \mbox{\hyperlink{trackers_8h_source}{trackers.\+h}}.
\Hypertarget{group___t_r_a_c_k_e_r_s_ga9dc91e6b798a081f95f2ccef2c288e5e}\index{Trackers defines@{Trackers defines}!TrackerGet\_Err@{TrackerGet\_Err}}
\index{TrackerGet\_Err@{TrackerGet\_Err}!Trackers defines@{Trackers defines}}
\doxysubsubsubsubsection{\texorpdfstring{TrackerGet\_Err}{TrackerGet\_Err}}
{\footnotesize\ttfamily \label{group___t_r_a_c_k_e_r_s_ga9dc91e6b798a081f95f2ccef2c288e5e}
\#define Tracker\+Get\+\_\+\+Err(\begin{DoxyParamCaption}\item[{}]{\+\_\+cntstruct\+\_\+}{}\end{DoxyParamCaption})}
{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{(\_cntstruct\_).cnt\_err}
\end{DoxyCode}
Считать счетчик ошибок
Definition at line \mbox{\hyperlink{trackers_8h_source_l00091}{91}} of file \mbox{\hyperlink{trackers_8h_source}{trackers.\+h}}.
\Hypertarget{group___t_r_a_c_k_e_r_s_ga47ac59a406ee74d4cd9fe0fbaf63a758}\index{Trackers defines@{Trackers defines}!TrackerGet\_Warn@{TrackerGet\_Warn}}
\index{TrackerGet\_Warn@{TrackerGet\_Warn}!Trackers defines@{Trackers defines}}
\doxysubsubsubsubsection{\texorpdfstring{TrackerGet\_Warn}{TrackerGet\_Warn}}
{\footnotesize\ttfamily \label{group___t_r_a_c_k_e_r_s_ga47ac59a406ee74d4cd9fe0fbaf63a758}
\#define Tracker\+Get\+\_\+\+Warn(\begin{DoxyParamCaption}\item[{}]{\+\_\+cntstruct\+\_\+}{}\end{DoxyParamCaption})}
{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{(\_cntstruct\_).cnt\_warn}
\end{DoxyCode}
Считать счетчик предупреждений
Definition at line \mbox{\hyperlink{trackers_8h_source_l00093}{93}} of file \mbox{\hyperlink{trackers_8h_source}{trackers.\+h}}.
\Hypertarget{group___t_r_a_c_k_e_r_s_ga4b08632669043dfdbd219dda03502bdb}\index{Trackers defines@{Trackers defines}!TrackerGet\_User@{TrackerGet\_User}}
\index{TrackerGet\_User@{TrackerGet\_User}!Trackers defines@{Trackers defines}}
\doxysubsubsubsubsection{\texorpdfstring{TrackerGet\_User}{TrackerGet\_User}}
{\footnotesize\ttfamily \label{group___t_r_a_c_k_e_r_s_ga4b08632669043dfdbd219dda03502bdb}
\#define Tracker\+Get\+\_\+\+User(\begin{DoxyParamCaption}\item[{}]{\+\_\+cntstruct\+\_\+}{, }\item[{}]{\+\_\+uservarnumb\+\_\+}{}\end{DoxyParamCaption})}
{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{(\_cntstruct\_).user[\mbox{\hyperlink{group___t_r_a_c_k_e_r_s_ga39b6ffbc561f8caac276415e1ad32c30}{tern\_assert\_usertracker}}(\_cntstruct\_,\ \_uservarnumb\_)]}
\end{DoxyCode}
Считать пользовательскую переменную
\begin{DoxyNote}{Note}
Здесь нет проверки -\/ существует ли пользовательская переменная! Есть возможность выйти за границы структуры!!! Чтобы этого избежать можно использовать дефайн \#ref \doxylink{group___t_r_a_c_k_e_r_s_gadd7fd2c6e3a4800f1d5ddab35fd4b43e}{assert\+\_\+usertracker()} \begin{DoxyVerb} if(assert_usertracker(struct, 0)) {
TrackerGet_User(struct, 0)
}
\end{DoxyVerb}
\end{DoxyNote}
Definition at line \mbox{\hyperlink{trackers_8h_source_l00105}{105}} of file \mbox{\hyperlink{trackers_8h_source}{trackers.\+h}}.
\Hypertarget{group___t_r_a_c_k_e_r_s_ga23de0006aa08984cfeddb6aa5e512fa1}\index{Trackers defines@{Trackers defines}!TrackerCnt\_Ok@{TrackerCnt\_Ok}}
\index{TrackerCnt\_Ok@{TrackerCnt\_Ok}!Trackers defines@{Trackers defines}}
\doxysubsubsubsubsection{\texorpdfstring{TrackerCnt\_Ok}{TrackerCnt\_Ok}}
{\footnotesize\ttfamily \label{group___t_r_a_c_k_e_r_s_ga23de0006aa08984cfeddb6aa5e512fa1}
\#define Tracker\+Cnt\+\_\+\+Ok(\begin{DoxyParamCaption}\item[{}]{\+\_\+cntstruct\+\_\+}{}\end{DoxyParamCaption})}
{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{(\_cntstruct\_).cnt\_ok++}
\end{DoxyCode}
Инкрементирование счетчика успешных событий
Definition at line \mbox{\hyperlink{trackers_8h_source_l00110}{110}} of file \mbox{\hyperlink{trackers_8h_source}{trackers.\+h}}.
\Hypertarget{group___t_r_a_c_k_e_r_s_ga49af29ab3927cad105c1d2b018a767e9}\index{Trackers defines@{Trackers defines}!TrackerCnt\_Err@{TrackerCnt\_Err}}
\index{TrackerCnt\_Err@{TrackerCnt\_Err}!Trackers defines@{Trackers defines}}
\doxysubsubsubsubsection{\texorpdfstring{TrackerCnt\_Err}{TrackerCnt\_Err}}
{\footnotesize\ttfamily \label{group___t_r_a_c_k_e_r_s_ga49af29ab3927cad105c1d2b018a767e9}
\#define Tracker\+Cnt\+\_\+\+Err(\begin{DoxyParamCaption}\item[{}]{\+\_\+cntstruct\+\_\+}{}\end{DoxyParamCaption})}
{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{(\_cntstruct\_).cnt\_err++}
\end{DoxyCode}
Инкрементирование счетчика ошибок
Definition at line \mbox{\hyperlink{trackers_8h_source_l00112}{112}} of file \mbox{\hyperlink{trackers_8h_source}{trackers.\+h}}.
\Hypertarget{group___t_r_a_c_k_e_r_s_ga8017fb05a56a1b667244f1f786fa9c57}\index{Trackers defines@{Trackers defines}!TrackerCnt\_Warn@{TrackerCnt\_Warn}}
\index{TrackerCnt\_Warn@{TrackerCnt\_Warn}!Trackers defines@{Trackers defines}}
\doxysubsubsubsubsection{\texorpdfstring{TrackerCnt\_Warn}{TrackerCnt\_Warn}}
{\footnotesize\ttfamily \label{group___t_r_a_c_k_e_r_s_ga8017fb05a56a1b667244f1f786fa9c57}
\#define Tracker\+Cnt\+\_\+\+Warn(\begin{DoxyParamCaption}\item[{}]{\+\_\+cntstruct\+\_\+}{}\end{DoxyParamCaption})}
{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{(\_cntstruct\_).cnt\_warn++}
\end{DoxyCode}
Инкрементирование счетчика предупреждений
Definition at line \mbox{\hyperlink{trackers_8h_source_l00114}{114}} of file \mbox{\hyperlink{trackers_8h_source}{trackers.\+h}}.
\Hypertarget{group___t_r_a_c_k_e_r_s_ga1b7549afc4a1760b54a9b93b0f6d105e}\index{Trackers defines@{Trackers defines}!TrackerCnt\_User@{TrackerCnt\_User}}
\index{TrackerCnt\_User@{TrackerCnt\_User}!Trackers defines@{Trackers defines}}
\doxysubsubsubsubsection{\texorpdfstring{TrackerCnt\_User}{TrackerCnt\_User}}
{\footnotesize\ttfamily \label{group___t_r_a_c_k_e_r_s_ga1b7549afc4a1760b54a9b93b0f6d105e}
\#define Tracker\+Cnt\+\_\+\+User(\begin{DoxyParamCaption}\item[{}]{\+\_\+cntstruct\+\_\+}{, }\item[{}]{\+\_\+uservarnumb\+\_\+}{}\end{DoxyParamCaption})}
{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{\mbox{\hyperlink{group___t_r_a_c_k_e_r_s_gad91d8ca89074270fc040c0449e57cf07}{if\_assert\_usertracker}}(\_cntstruct\_,\ \_uservarnumb\_)\ (\_cntstruct\_).user[\_uservarnumb\_]++;}
\end{DoxyCode}
Инкрементирование пользовательской переменной
Definition at line \mbox{\hyperlink{trackers_8h_source_l00116}{116}} of file \mbox{\hyperlink{trackers_8h_source}{trackers.\+h}}.
\Hypertarget{group___t_r_a_c_k_e_r_s_gad2f4062a9ac8c2ab062a364f640ebc51}\index{Trackers defines@{Trackers defines}!TrackerWrite\_User@{TrackerWrite\_User}}
\index{TrackerWrite\_User@{TrackerWrite\_User}!Trackers defines@{Trackers defines}}
\doxysubsubsubsubsection{\texorpdfstring{TrackerWrite\_User}{TrackerWrite\_User}}
{\footnotesize\ttfamily \label{group___t_r_a_c_k_e_r_s_gad2f4062a9ac8c2ab062a364f640ebc51}
\#define Tracker\+Write\+\_\+\+User(\begin{DoxyParamCaption}\item[{}]{\+\_\+cntstruct\+\_\+}{, }\item[{}]{\+\_\+uservarnumb\+\_\+}{, }\item[{}]{\+\_\+val\+\_\+}{}\end{DoxyParamCaption})}
{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{\mbox{\hyperlink{group___t_r_a_c_k_e_r_s_gad91d8ca89074270fc040c0449e57cf07}{if\_assert\_usertracker}}(\_cntstruct\_,\ \_uservarnumb\_)\ (\_cntstruct\_).user[\_uservarnumb\_]\ =\ (\_val\_)}
\end{DoxyCode}
Запись числа в пользовательскую переменную
Definition at line \mbox{\hyperlink{trackers_8h_source_l00118}{118}} of file \mbox{\hyperlink{trackers_8h_source}{trackers.\+h}}.
\Hypertarget{group___t_r_a_c_k_e_r_s_ga704f7b9f8c65c9bcec48ce7cb77a2d3b}\index{Trackers defines@{Trackers defines}!TrackerClear\_All@{TrackerClear\_All}}
\index{TrackerClear\_All@{TrackerClear\_All}!Trackers defines@{Trackers defines}}
\doxysubsubsubsubsection{\texorpdfstring{TrackerClear\_All}{TrackerClear\_All}}
{\footnotesize\ttfamily \label{group___t_r_a_c_k_e_r_s_ga704f7b9f8c65c9bcec48ce7cb77a2d3b}
\#define Tracker\+Clear\+\_\+\+All(\begin{DoxyParamCaption}\item[{}]{\+\_\+cntstruct\+\_\+}{}\end{DoxyParamCaption})}
{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{memset(\&(\_cntstruct\_),\ 0,\ \textcolor{keyword}{sizeof}(\_cntstruct\_))}
\end{DoxyCode}
Очистка всей структуры
Definition at line \mbox{\hyperlink{trackers_8h_source_l00121}{121}} of file \mbox{\hyperlink{trackers_8h_source}{trackers.\+h}}.
\Hypertarget{group___t_r_a_c_k_e_r_s_ga5dd8bac8c7ab5832019d55d7a68371b9}\index{Trackers defines@{Trackers defines}!TrackerClear\_Ok@{TrackerClear\_Ok}}
\index{TrackerClear\_Ok@{TrackerClear\_Ok}!Trackers defines@{Trackers defines}}
\doxysubsubsubsubsection{\texorpdfstring{TrackerClear\_Ok}{TrackerClear\_Ok}}
{\footnotesize\ttfamily \label{group___t_r_a_c_k_e_r_s_ga5dd8bac8c7ab5832019d55d7a68371b9}
\#define Tracker\+Clear\+\_\+\+Ok(\begin{DoxyParamCaption}\item[{}]{\+\_\+cntstruct\+\_\+}{}\end{DoxyParamCaption})}
{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{(\_cntstruct\_).cnt\_ok\ =\ 0}
\end{DoxyCode}
Очистка счетчика успешных событий
Definition at line \mbox{\hyperlink{trackers_8h_source_l00123}{123}} of file \mbox{\hyperlink{trackers_8h_source}{trackers.\+h}}.
\Hypertarget{group___t_r_a_c_k_e_r_s_gae860b6947c6e317e14d40bd7b4b8eb74}\index{Trackers defines@{Trackers defines}!TrackerClear\_Err@{TrackerClear\_Err}}
\index{TrackerClear\_Err@{TrackerClear\_Err}!Trackers defines@{Trackers defines}}
\doxysubsubsubsubsection{\texorpdfstring{TrackerClear\_Err}{TrackerClear\_Err}}
{\footnotesize\ttfamily \label{group___t_r_a_c_k_e_r_s_gae860b6947c6e317e14d40bd7b4b8eb74}
\#define Tracker\+Clear\+\_\+\+Err(\begin{DoxyParamCaption}\item[{}]{\+\_\+cntstruct\+\_\+}{}\end{DoxyParamCaption})}
{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{(\_cntstruct\_).cnt\_err\ =\ 0}
\end{DoxyCode}
Очистка счетчика ошибок
Definition at line \mbox{\hyperlink{trackers_8h_source_l00125}{125}} of file \mbox{\hyperlink{trackers_8h_source}{trackers.\+h}}.
\Hypertarget{group___t_r_a_c_k_e_r_s_ga365a8c60bd13b75154feda649dd21ead}\index{Trackers defines@{Trackers defines}!TrackerClear\_Warn@{TrackerClear\_Warn}}
\index{TrackerClear\_Warn@{TrackerClear\_Warn}!Trackers defines@{Trackers defines}}
\doxysubsubsubsubsection{\texorpdfstring{TrackerClear\_Warn}{TrackerClear\_Warn}}
{\footnotesize\ttfamily \label{group___t_r_a_c_k_e_r_s_ga365a8c60bd13b75154feda649dd21ead}
\#define Tracker\+Clear\+\_\+\+Warn(\begin{DoxyParamCaption}\item[{}]{\+\_\+cntstruct\+\_\+}{}\end{DoxyParamCaption})}
{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{(\_cntstruct\_).cnt\_warn\ =\ 0}
\end{DoxyCode}
Очистка счетчика предупреждений
Definition at line \mbox{\hyperlink{trackers_8h_source_l00127}{127}} of file \mbox{\hyperlink{trackers_8h_source}{trackers.\+h}}.
\Hypertarget{group___t_r_a_c_k_e_r_s_ga063dab1067005e1600ea32531fdf3f8d}\index{Trackers defines@{Trackers defines}!TrackerClear\_User@{TrackerClear\_User}}
\index{TrackerClear\_User@{TrackerClear\_User}!Trackers defines@{Trackers defines}}
\doxysubsubsubsubsection{\texorpdfstring{TrackerClear\_User}{TrackerClear\_User}}
{\footnotesize\ttfamily \label{group___t_r_a_c_k_e_r_s_ga063dab1067005e1600ea32531fdf3f8d}
\#define Tracker\+Clear\+\_\+\+User(\begin{DoxyParamCaption}\item[{}]{\+\_\+cntstruct\+\_\+}{, }\item[{}]{\+\_\+uservarnumb\+\_\+}{}\end{DoxyParamCaption})}
{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{\mbox{\hyperlink{group___t_r_a_c_k_e_r_s_gad91d8ca89074270fc040c0449e57cf07}{if\_assert\_usertracker}}(\_cntstruct\_,\ \_uservarnumb\_)\ (\_cntstruct\_).user[\_uservarnumb\_]\ =\ 0;}
\end{DoxyCode}
Очистка пользовательской переменной
Definition at line \mbox{\hyperlink{trackers_8h_source_l00129}{129}} of file \mbox{\hyperlink{trackers_8h_source}{trackers.\+h}}.
\Hypertarget{group___t_r_a_c_k_e_r_s_gaaec7ec19977bb26fa1919dfe920b82d5}\index{Trackers defines@{Trackers defines}!TrackerClear\_UserAll@{TrackerClear\_UserAll}}
\index{TrackerClear\_UserAll@{TrackerClear\_UserAll}!Trackers defines@{Trackers defines}}
\doxysubsubsubsubsection{\texorpdfstring{TrackerClear\_UserAll}{TrackerClear\_UserAll}}
{\footnotesize\ttfamily \label{group___t_r_a_c_k_e_r_s_gaaec7ec19977bb26fa1919dfe920b82d5}
\#define Tracker\+Clear\+\_\+\+User\+All(\begin{DoxyParamCaption}\item[{}]{\+\_\+cntstruct\+\_\+}{}\end{DoxyParamCaption})}
{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{memset(\&(\_cntstruct\_).user,\ 0,\ \textcolor{keyword}{sizeof}((\_cntstruct\_).user))}
\end{DoxyCode}
Очистка всех пользовательских переменных
Definition at line \mbox{\hyperlink{trackers_8h_source_l00131}{131}} of file \mbox{\hyperlink{trackers_8h_source}{trackers.\+h}}.

View File

@@ -0,0 +1 @@
2cc6db69719569eeaf3a77181ade09ce

View File

@@ -0,0 +1,143 @@
\doxysubsubsection{Utils defines }
\hypertarget{group___u_t_i_l_s___d_e_f_i_n_e_s}{}\label{group___u_t_i_l_s___d_e_f_i_n_e_s}\index{Utils defines@{Utils defines}}
Общие вспомогательные макросы
Collaboration diagram for Utils defines\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=262pt]{group___u_t_i_l_s___d_e_f_i_n_e_s}
\end{center}
\end{figure}
\doxysubsubsubsubsection*{Macros}
\begin{DoxyCompactItemize}
\item
\#define \mbox{\hyperlink{group___u_t_i_l_s___d_e_f_i_n_e_s_gaf5e598848326d48e86167e5099a029be}{Clear\+Struct}}(\+\_\+struct\+\_\+)
\begin{DoxyCompactList}\small\item\em Обнуление структуры. \end{DoxyCompactList}\item
\#define \mbox{\hyperlink{group___u_t_i_l_s___d_e_f_i_n_e_s_gabf45f2b60eedf80cf9d1dbe4302a741e}{Divide\+\_\+\+Up}}(\+\_\+val\+\_\+, \+\_\+div\+\_\+)
\begin{DoxyCompactList}\small\item\em Деление с округлением вверх \end{DoxyCompactList}\item
\#define \mbox{\hyperlink{group___u_t_i_l_s___d_e_f_i_n_e_s_ga0f22e895ac7781c3d1b68fee182c4291}{Byte\+Swap16}}(v)
\begin{DoxyCompactList}\small\item\em Swap between Little Endian and Big Endian. \end{DoxyCompactList}\item
\#define \mbox{\hyperlink{group___u_t_i_l_s___d_e_f_i_n_e_s_ga996f7be338ccb40d1a2a5abc1ad61759}{ABS}}(x)
\begin{DoxyCompactList}\small\item\em Абсолютное значение числа \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsubsection{Detailed Description}
Общие вспомогательные макросы
\label{doc-define-members}
\Hypertarget{group___u_t_i_l_s___d_e_f_i_n_e_s_doc-define-members}
\doxysubsubsubsection{Macro Definition Documentation}
\Hypertarget{group___u_t_i_l_s___d_e_f_i_n_e_s_gaf5e598848326d48e86167e5099a029be}\index{Utils defines@{Utils defines}!ClearStruct@{ClearStruct}}
\index{ClearStruct@{ClearStruct}!Utils defines@{Utils defines}}
\doxysubsubsubsubsection{\texorpdfstring{ClearStruct}{ClearStruct}}
{\footnotesize\ttfamily \label{group___u_t_i_l_s___d_e_f_i_n_e_s_gaf5e598848326d48e86167e5099a029be}
\#define Clear\+Struct(\begin{DoxyParamCaption}\item[{}]{\+\_\+struct\+\_\+}{}\end{DoxyParamCaption})}
{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{memset(\&(\_struct\_),\ 0,\ \textcolor{keyword}{sizeof}(\_struct\_))}
\end{DoxyCode}
Обнуление структуры.
\begin{DoxyParams}{Parameters}
{\em \+\_\+struct\+\_\+} & Структура, которую нужно обнулить.\\
\hline
\end{DoxyParams}
Макрос использует memset для обнуления всей памяти структуры. Используется для быстрой и безопасной инициализации переменных структур до нуля.
Definition at line \mbox{\hyperlink{mylibs__defs_8h_source_l00169}{169}} of file \mbox{\hyperlink{mylibs__defs_8h_source}{mylibs\+\_\+defs.\+h}}.
\Hypertarget{group___u_t_i_l_s___d_e_f_i_n_e_s_gabf45f2b60eedf80cf9d1dbe4302a741e}\index{Utils defines@{Utils defines}!Divide\_Up@{Divide\_Up}}
\index{Divide\_Up@{Divide\_Up}!Utils defines@{Utils defines}}
\doxysubsubsubsubsection{\texorpdfstring{Divide\_Up}{Divide\_Up}}
{\footnotesize\ttfamily \label{group___u_t_i_l_s___d_e_f_i_n_e_s_gabf45f2b60eedf80cf9d1dbe4302a741e}
\#define Divide\+\_\+\+Up(\begin{DoxyParamCaption}\item[{}]{\+\_\+val\+\_\+}{, }\item[{}]{\+\_\+div\+\_\+}{}\end{DoxyParamCaption})}
{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{((\_val\_\ -\/\ 1)\ /\ \_div\_)\ +\ 1\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ через\ мат\ выражение\ */}}
\end{DoxyCode}
Деление с округлением вверх
\begin{DoxyParams}{Parameters}
{\em \+\_\+val\+\_\+} & Делимое. \\
\hline
{\em \+\_\+div\+\_\+} & Делитель. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Результат деления, округленный вверх.
\end{DoxyReturn}
Если результат деления без остатка\+: он возвращается как есть Если с остатком -\/ округляется вверх
Definition at line \mbox{\hyperlink{mylibs__defs_8h_source_l00180}{180}} of file \mbox{\hyperlink{mylibs__defs_8h_source}{mylibs\+\_\+defs.\+h}}.
\Hypertarget{group___u_t_i_l_s___d_e_f_i_n_e_s_ga0f22e895ac7781c3d1b68fee182c4291}\index{Utils defines@{Utils defines}!ByteSwap16@{ByteSwap16}}
\index{ByteSwap16@{ByteSwap16}!Utils defines@{Utils defines}}
\doxysubsubsubsubsection{\texorpdfstring{ByteSwap16}{ByteSwap16}}
{\footnotesize\ttfamily \label{group___u_t_i_l_s___d_e_f_i_n_e_s_ga0f22e895ac7781c3d1b68fee182c4291}
\#define Byte\+Swap16(\begin{DoxyParamCaption}\item[{}]{v}{}\end{DoxyParamCaption})}
{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{(((v\&0xFF00)\ >>\ (8))\ |\ ((v\&0x00FF)\ <<\ (8)))}
\end{DoxyCode}
Swap between Little Endian and Big Endian.
\begin{DoxyParams}{Parameters}
{\em v} & Исходное 16-\/битное значение. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Результат с поменяными местами старшим и младшим байтом.
\end{DoxyReturn}
Переключения между двумя типами хранения слова\+: HI-\/\+LO байты и LO-\/\+HI байты.
Definition at line \mbox{\hyperlink{mylibs__defs_8h_source_l00188}{188}} of file \mbox{\hyperlink{mylibs__defs_8h_source}{mylibs\+\_\+defs.\+h}}.
\Hypertarget{group___u_t_i_l_s___d_e_f_i_n_e_s_ga996f7be338ccb40d1a2a5abc1ad61759}\index{Utils defines@{Utils defines}!ABS@{ABS}}
\index{ABS@{ABS}!Utils defines@{Utils defines}}
\doxysubsubsubsubsection{\texorpdfstring{ABS}{ABS}}
{\footnotesize\ttfamily \label{group___u_t_i_l_s___d_e_f_i_n_e_s_ga996f7be338ccb40d1a2a5abc1ad61759}
\#define ABS(\begin{DoxyParamCaption}\item[{}]{x}{}\end{DoxyParamCaption})}
{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{(\ ((x)\ >\ 0)?\ (x)\ :\ -\/(x))}
\end{DoxyCode}
Абсолютное значение числа
\begin{DoxyParams}{Parameters}
{\em x} & Число. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Абсолютное значение числа x.
\end{DoxyReturn}
Берет число по модулю. Хз как работает библиотечный abs в stdlib.\+h, мб это быстрее, но вряд ли конечно.
Definition at line \mbox{\hyperlink{mylibs__defs_8h_source_l00196}{196}} of file \mbox{\hyperlink{mylibs__defs_8h_source}{mylibs\+\_\+defs.\+h}}.

View File

@@ -0,0 +1,108 @@
\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}

View File

@@ -0,0 +1,459 @@
%%
%% This is file `longtable.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% longtable.dtx (with options: `package')
%%
%% This is a generated file.
%%
%% The source is maintained by the LaTeX Project team and bug
%% reports for it can be opened at http://latex-project.org/bugs.html
%% (but please observe conditions on bug reports sent to that address!)
%%
%% Copyright 1993-2016
%% The LaTeX3 Project and any individual authors listed elsewhere
%% in this file.
%%
%% This file was generated from file(s) of the Standard LaTeX `Tools Bundle'.
%% --------------------------------------------------------------------------
%%
%% It may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3c
%% of this license or (at your option) any later version.
%% The latest version of this license is in
%% http://www.latex-project.org/lppl.txt
%% and version 1.3c or later is part of all distributions of LaTeX
%% version 2005/12/01 or later.
%%
%% This file may only be distributed together with a copy of the LaTeX
%% `Tools Bundle'. You may however distribute the LaTeX `Tools Bundle'
%% without such generated files.
%%
%% The list of all files belonging to the LaTeX `Tools Bundle' is
%% given in the file `manifest.txt'.
%%
%% File: longtable.dtx Copyright (C) 1990-2001 David Carlisle
\NeedsTeXFormat{LaTeX2e}[1995/06/01]
\ProvidesPackage{longtable_doxygen}
[2014/10/28 v4.11 Multi-page Table package (DPC) - frozen version for doxygen]
\def\LT@err{\PackageError{longtable}}
\def\LT@warn{\PackageWarning{longtable}}
\def\LT@final@warn{%
\AtEndDocument{%
\LT@warn{Table \@width s have changed. Rerun LaTeX.\@gobbletwo}}%
\global\let\LT@final@warn\relax}
\DeclareOption{errorshow}{%
\def\LT@warn{\PackageInfo{longtable}}}
\DeclareOption{pausing}{%
\def\LT@warn#1{%
\LT@err{#1}{This is not really an error}}}
\DeclareOption{set}{}
\DeclareOption{final}{}
\ProcessOptions
\newskip\LTleft \LTleft=\fill
\newskip\LTright \LTright=\fill
\newskip\LTpre \LTpre=\bigskipamount
\newskip\LTpost \LTpost=\bigskipamount
\newcount\LTchunksize \LTchunksize=20
\let\c@LTchunksize\LTchunksize
\newdimen\LTcapwidth \LTcapwidth=4in
\newbox\LT@head
\newbox\LT@firsthead
\newbox\LT@foot
\newbox\LT@lastfoot
\newcount\LT@cols
\newcount\LT@rows
\newcounter{LT@tables}
\newcounter{LT@chunks}[LT@tables]
\ifx\c@table\undefined
\newcounter{table}
\def\fnum@table{\tablename~\thetable}
\fi
\ifx\tablename\undefined
\def\tablename{Table}
\fi
\newtoks\LT@p@ftn
\mathchardef\LT@end@pen=30000
\def\longtable{%
\par
\ifx\multicols\@undefined
\else
\ifnum\col@number>\@ne
\@twocolumntrue
\fi
\fi
\if@twocolumn
\LT@err{longtable not in 1-column mode}\@ehc
\fi
\begingroup
\@ifnextchar[\LT@array{\LT@array[x]}}
\def\LT@array[#1]#2{%
\refstepcounter{table}\stepcounter{LT@tables}%
\if l#1%
\LTleft\z@ \LTright\fill
\else\if r#1%
\LTleft\fill \LTright\z@
\else\if c#1%
\LTleft\fill \LTright\fill
\fi\fi\fi
\let\LT@mcol\multicolumn
\let\LT@@tabarray\@tabarray
\let\LT@@hl\hline
\def\@tabarray{%
\let\hline\LT@@hl
\LT@@tabarray}%
\let\\\LT@tabularcr\let\tabularnewline\\%
\def\newpage{\noalign{\break}}%
\def\pagebreak{\noalign{\ifnum`}=0\fi\@testopt{\LT@no@pgbk-}4}%
\def\nopagebreak{\noalign{\ifnum`}=0\fi\@testopt\LT@no@pgbk4}%
\let\hline\LT@hline \let\kill\LT@kill\let\caption\LT@caption
\@tempdima\ht\strutbox
\let\@endpbox\LT@endpbox
\ifx\extrarowheight\@undefined
\let\@acol\@tabacol
\let\@classz\@tabclassz \let\@classiv\@tabclassiv
\def\@startpbox{\vtop\LT@startpbox}%
\let\@@startpbox\@startpbox
\let\@@endpbox\@endpbox
\let\LT@LL@FM@cr\@tabularcr
\else
\advance\@tempdima\extrarowheight
\col@sep\tabcolsep
\let\@startpbox\LT@startpbox\let\LT@LL@FM@cr\@arraycr
\fi
\setbox\@arstrutbox\hbox{\vrule
\@height \arraystretch \@tempdima
\@depth \arraystretch \dp \strutbox
\@width \z@}%
\let\@sharp##\let\protect\relax
\begingroup
\@mkpream{#2}%
\xdef\LT@bchunk{%
\global\advance\c@LT@chunks\@ne
\global\LT@rows\z@\setbox\z@\vbox\bgroup
\LT@setprevdepth
\tabskip\LTleft \noexpand\halign to\hsize\bgroup
\tabskip\z@ \@arstrut \@preamble \tabskip\LTright \cr}%
\endgroup
\expandafter\LT@nofcols\LT@bchunk&\LT@nofcols
\LT@make@row
\m@th\let\par\@empty
\everycr{}\lineskip\z@\baselineskip\z@
\LT@bchunk}
\def\LT@no@pgbk#1[#2]{\penalty #1\@getpen{#2}\ifnum`{=0\fi}}
\def\LT@start{%
\let\LT@start\endgraf
\endgraf\penalty\z@\vskip\LTpre
\dimen@\pagetotal
\advance\dimen@ \ht\ifvoid\LT@firsthead\LT@head\else\LT@firsthead\fi
\advance\dimen@ \dp\ifvoid\LT@firsthead\LT@head\else\LT@firsthead\fi
\advance\dimen@ \ht\LT@foot
\dimen@ii\vfuzz
\vfuzz\maxdimen
\setbox\tw@\copy\z@
\setbox\tw@\vsplit\tw@ to \ht\@arstrutbox
\setbox\tw@\vbox{\unvbox\tw@}%
\vfuzz\dimen@ii
\advance\dimen@ \ht
\ifdim\ht\@arstrutbox>\ht\tw@\@arstrutbox\else\tw@\fi
\advance\dimen@\dp
\ifdim\dp\@arstrutbox>\dp\tw@\@arstrutbox\else\tw@\fi
\advance\dimen@ -\pagegoal
\ifdim \dimen@>\z@\vfil\break\fi
\global\@colroom\@colht
\ifvoid\LT@foot\else
\global\advance\vsize-\ht\LT@foot
\global\advance\@colroom-\ht\LT@foot
\dimen@\pagegoal\advance\dimen@-\ht\LT@foot\pagegoal\dimen@
\maxdepth\z@
\fi
\ifvoid\LT@firsthead\copy\LT@head\else\box\LT@firsthead\fi\nobreak
\output{\LT@output}}
\def\endlongtable{%
\crcr
\noalign{%
\let\LT@entry\LT@entry@chop
\xdef\LT@save@row{\LT@save@row}}%
\LT@echunk
\LT@start
\unvbox\z@
\LT@get@widths
\if@filesw
{\let\LT@entry\LT@entry@write\immediate\write\@auxout{%
\gdef\expandafter\noexpand
\csname LT@\romannumeral\c@LT@tables\endcsname
{\LT@save@row}}}%
\fi
\ifx\LT@save@row\LT@@save@row
\else
\LT@warn{Column \@width s have changed\MessageBreak
in table \thetable}%
\LT@final@warn
\fi
\endgraf\penalty -\LT@end@pen
\ifvoid\LT@foot\else
\global\advance\vsize\ht\LT@foot
\global\advance\@colroom\ht\LT@foot
\dimen@\pagegoal\advance\dimen@\ht\LT@foot\pagegoal\dimen@
\fi
\endgroup
\global\@mparbottom\z@
\endgraf\penalty\z@\addvspace\LTpost
\ifvoid\footins\else\insert\footins{}\fi}
\def\LT@nofcols#1&{%
\futurelet\@let@token\LT@n@fcols}
\def\LT@n@fcols{%
\advance\LT@cols\@ne
\ifx\@let@token\LT@nofcols
\expandafter\@gobble
\else
\expandafter\LT@nofcols
\fi}
\def\LT@tabularcr{%
\relax\iffalse{\fi\ifnum0=`}\fi
\@ifstar
{\def\crcr{\LT@crcr\noalign{\nobreak}}\let\cr\crcr
\LT@t@bularcr}%
{\LT@t@bularcr}}
\let\LT@crcr\crcr
\let\LT@setprevdepth\relax
\def\LT@t@bularcr{%
\global\advance\LT@rows\@ne
\ifnum\LT@rows=\LTchunksize
\gdef\LT@setprevdepth{%
\prevdepth\z@\global
\global\let\LT@setprevdepth\relax}%
\expandafter\LT@xtabularcr
\else
\ifnum0=`{}\fi
\expandafter\LT@LL@FM@cr
\fi}
\def\LT@xtabularcr{%
\@ifnextchar[\LT@argtabularcr\LT@ntabularcr}
\def\LT@ntabularcr{%
\ifnum0=`{}\fi
\LT@echunk
\LT@start
\unvbox\z@
\LT@get@widths
\LT@bchunk}
\def\LT@argtabularcr[#1]{%
\ifnum0=`{}\fi
\ifdim #1>\z@
\unskip\@xargarraycr{#1}%
\else
\@yargarraycr{#1}%
\fi
\LT@echunk
\LT@start
\unvbox\z@
\LT@get@widths
\LT@bchunk}
\def\LT@echunk{%
\crcr\LT@save@row\cr\egroup
\global\setbox\@ne\lastbox
\unskip
\egroup}
\def\LT@entry#1#2{%
\ifhmode\@firstofone{&}\fi\omit
\ifnum#1=\c@LT@chunks
\else
\kern#2\relax
\fi}
\def\LT@entry@chop#1#2{%
\noexpand\LT@entry
{\ifnum#1>\c@LT@chunks
1}{0pt%
\else
#1}{#2%
\fi}}
\def\LT@entry@write{%
\noexpand\LT@entry^^J%
\@spaces}
\def\LT@kill{%
\LT@echunk
\LT@get@widths
\expandafter\LT@rebox\LT@bchunk}
\def\LT@rebox#1\bgroup{%
#1\bgroup
\unvbox\z@
\unskip
\setbox\z@\lastbox}
\def\LT@blank@row{%
\xdef\LT@save@row{\expandafter\LT@build@blank
\romannumeral\number\LT@cols 001 }}
\def\LT@build@blank#1{%
\if#1m%
\noexpand\LT@entry{1}{0pt}%
\expandafter\LT@build@blank
\fi}
\def\LT@make@row{%
\global\expandafter\let\expandafter\LT@save@row
\csname LT@\romannumeral\c@LT@tables\endcsname
\ifx\LT@save@row\relax
\LT@blank@row
\else
{\let\LT@entry\or
\if!%
\ifcase\expandafter\expandafter\expandafter\LT@cols
\expandafter\@gobble\LT@save@row
\or
\else
\relax
\fi
!%
\else
\aftergroup\LT@blank@row
\fi}%
\fi}
\let\setlongtables\relax
\def\LT@get@widths{%
\setbox\tw@\hbox{%
\unhbox\@ne
\let\LT@old@row\LT@save@row
\global\let\LT@save@row\@empty
\count@\LT@cols
\loop
\unskip
\setbox\tw@\lastbox
\ifhbox\tw@
\LT@def@row
\advance\count@\m@ne
\repeat}%
\ifx\LT@@save@row\@undefined
\let\LT@@save@row\LT@save@row
\fi}
\def\LT@def@row{%
\let\LT@entry\or
\edef\@tempa{%
\ifcase\expandafter\count@\LT@old@row
\else
{1}{0pt}%
\fi}%
\let\LT@entry\relax
\xdef\LT@save@row{%
\LT@entry
\expandafter\LT@max@sel\@tempa
\LT@save@row}}
\def\LT@max@sel#1#2{%
{\ifdim#2=\wd\tw@
#1%
\else
\number\c@LT@chunks
\fi}%
{\the\wd\tw@}}
\def\LT@hline{%
\noalign{\ifnum0=`}\fi
\penalty\@M
\futurelet\@let@token\LT@@hline}
\def\LT@@hline{%
\ifx\@let@token\hline
\global\let\@gtempa\@gobble
\gdef\LT@sep{\penalty-\@medpenalty\vskip\doublerulesep}%
\else
\global\let\@gtempa\@empty
\gdef\LT@sep{\penalty-\@lowpenalty\vskip-\arrayrulewidth}%
\fi
\ifnum0=`{\fi}%
\multispan\LT@cols
\unskip\leaders\hrule\@height\arrayrulewidth\hfill\cr
\noalign{\LT@sep}%
\multispan\LT@cols
\unskip\leaders\hrule\@height\arrayrulewidth\hfill\cr
\noalign{\penalty\@M}%
\@gtempa}
\def\LT@caption{%
\noalign\bgroup
\@ifnextchar[{\egroup\LT@c@ption\@firstofone}\LT@capti@n}
\def\LT@c@ption#1[#2]#3{%
\LT@makecaption#1\fnum@table{#3}%
\def\@tempa{#2}%
\ifx\@tempa\@empty\else
{\let\\\space
\addcontentsline{lot}{table}{\protect\numberline{\thetable}{#2}}}%
\fi}
\def\LT@capti@n{%
\@ifstar
{\egroup\LT@c@ption\@gobble[]}%
{\egroup\@xdblarg{\LT@c@ption\@firstofone}}}
\def\LT@makecaption#1#2#3{%
\LT@mcol\LT@cols c{\hbox to\z@{\hss\parbox[t]\LTcapwidth{%
\sbox\@tempboxa{#1{#2: }#3}%
\ifdim\wd\@tempboxa>\hsize
#1{#2: }#3%
\else
\hbox to\hsize{\hfil\box\@tempboxa\hfil}%
\fi
\endgraf\vskip\baselineskip}%
\hss}}}
\def\LT@output{%
\ifnum\outputpenalty <-\@Mi
\ifnum\outputpenalty > -\LT@end@pen
\LT@err{floats and marginpars not allowed in a longtable}\@ehc
\else
\setbox\z@\vbox{\unvbox\@cclv}%
\ifdim \ht\LT@lastfoot>\ht\LT@foot
\dimen@\pagegoal
\advance\dimen@\ht\LT@foot
\advance\dimen@-\ht\LT@lastfoot
\ifdim\dimen@<\ht\z@
\setbox\@cclv\vbox{\unvbox\z@\copy\LT@foot\vss}%
\@makecol
\@outputpage
\global\vsize\@colroom
\setbox\z@\vbox{\box\LT@head}%
\fi
\fi
\unvbox\z@\ifvoid\LT@lastfoot\copy\LT@foot\else\box\LT@lastfoot\fi
\fi
\else
\setbox\@cclv\vbox{\unvbox\@cclv\copy\LT@foot\vss}%
\@makecol
\@outputpage
\global\vsize\@colroom
\copy\LT@head\nobreak
\fi}
\def\LT@end@hd@ft#1{%
\LT@echunk
\ifx\LT@start\endgraf
\LT@err
{Longtable head or foot not at start of table}%
{Increase LTchunksize}%
\fi
\setbox#1\box\z@
\LT@get@widths
\LT@bchunk}
\def\endfirsthead{\LT@end@hd@ft\LT@firsthead}
\def\endhead{\LT@end@hd@ft\LT@head}
\def\endfoot{\LT@end@hd@ft\LT@foot}
\def\endlastfoot{\LT@end@hd@ft\LT@lastfoot}
\def\LT@startpbox#1{%
\bgroup
\let\@footnotetext\LT@p@ftntext
\setlength\hsize{#1}%
\@arrayparboxrestore
\vrule \@height \ht\@arstrutbox \@width \z@}
\def\LT@endpbox{%
\@finalstrut\@arstrutbox
\egroup
\the\LT@p@ftn
\global\LT@p@ftn{}%
\hfil}
%% added \long to prevent:
% LaTeX Warning: Command \LT@p@ftntext has changed.
%
% from the original repository (https://github.com/latex3/latex2e/blob/develop/required/tools/longtable.dtx):
% \changes{v4.15}{2021/03/28}
% {make long for gh/364}
% Inside the `p' column, just save up the footnote text in a token
% register.
\long\def\LT@p@ftntext#1{%
\edef\@tempa{\the\LT@p@ftn\noexpand\footnotetext[\the\c@footnote]}%
\global\LT@p@ftn\expandafter{\@tempa{#1}}}%
\@namedef{ver@longtable.sty}{2014/10/28 v4.11 Multi-page Table package (DPC) - frozen version for doxygen}
\endinput
%%
%% End of file `longtable.sty'.

View File

@@ -0,0 +1,67 @@
pushd %~dp0
if not %errorlevel% == 0 goto :end1
set ORG_LATEX_CMD=%LATEX_CMD%
set ORG_MKIDX_CMD=%MKIDX_CMD%
set ORG_BIBTEX_CMD=%BIBTEX_CMD%
set ORG_LATEX_COUNT=%LATEX_COUNT%
set ORG_MANUAL_FILE=%MANUAL_FILE%
if "X"%LATEX_CMD% == "X" set LATEX_CMD=pdflatex
if "X"%MKIDX_CMD% == "X" set MKIDX_CMD=makeindex
if "X"%BIBTEX_CMD% == "X" set BIBTEX_CMD=bibtex
if "X"%LATEX_COUNT% == "X" set LATEX_COUNT=8
if "X"%MANUAL_FILE% == "X" set MANUAL_FILE=refman
del /s /f *.ps *.dvi *.aux *.toc *.idx *.ind *.ilg *.log *.out *.brf *.blg *.bbl %MANUAL_FILE%.pdf
%LATEX_CMD% %MANUAL_FILE%
@if ERRORLEVEL 1 goto :error
echo ----
%MKIDX_CMD% %MANUAL_FILE%.idx
echo ----
%LATEX_CMD% %MANUAL_FILE%
@if ERRORLEVEL 1 goto :error
setlocal enabledelayedexpansion
set count=%LATEX_COUNT%
:repeat
set content=X
for /F "tokens=*" %%T in ( 'findstr /C:"Rerun LaTeX" %MANUAL_FILE%.log' ) do set content="%%~T"
if !content! == X for /F "tokens=*" %%T in ( 'findstr /C:"Rerun to get cross-references right" %MANUAL_FILE%.log' ) do set content="%%~T"
if !content! == X for /F "tokens=*" %%T in ( 'findstr /C:"Rerun to get bibliographical references right" %MANUAL_FILE%.log' ) do set content="%%~T"
if !content! == X goto :skip
set /a count-=1
if !count! EQU 0 goto :skip
echo ----
%LATEX_CMD% %MANUAL_FILE%
@if ERRORLEVEL 1 goto :error
goto :repeat
:skip
endlocal
%MKIDX_CMD% %MANUAL_FILE%.idx
%LATEX_CMD% %MANUAL_FILE%
@if ERRORLEVEL 1 goto :error
goto :end
:error
@echo ===============
@echo Please consult %MANUAL_FILE%.log to see the error messages
@echo ===============
:end
@REM reset environment
popd
set LATEX_CMD=%ORG_LATEX_CMD%
set ORG_LATEX_CMD=
set MKIDX_CMD=%ORG_MKIDX_CMD%
set ORG_MKIDX_CMD=
set BIBTEX_CMD=%ORG_BIBTEX_CMD%
set ORG_BIBTEX_CMD=
set MANUAL_FILE=%ORG_MANUAL_FILE%
set ORG_MANUAL_FILE=
set LATEX_COUNT=%ORG_LATEX_COUNT%
set ORG_LATEX_COUNT=
:end1

View File

@@ -0,0 +1,69 @@
\doxysection{E\+:/.WORK/\+STM32/\+STM\+\_\+\+Libs/\+STM32\+\_\+\+Extended\+Libs/\+My\+Libs/\+Inc/mylibs\+\_\+defs.h File Reference}
\hypertarget{mylibs__defs_8h}{}\label{mylibs__defs_8h}\index{E:/.WORK/STM32/STM\_Libs/STM32\_ExtendedLibs/MyLibs/Inc/mylibs\_defs.h@{E:/.WORK/STM32/STM\_Libs/STM32\_ExtendedLibs/MyLibs/Inc/mylibs\_defs.h}}
Заголочный файл для дефайнов библиотеки My\+Libs\+General.
{\ttfamily \#include "{}mylibs\+\_\+config.\+h"{}}\newline
Include dependency graph for mylibs\+\_\+defs.\+h\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=218pt]{mylibs__defs_8h__incl}
\end{center}
\end{figure}
This graph shows which files directly or indirectly include this file\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{mylibs__defs_8h__dep__incl}
\end{center}
\end{figure}
\doxysubsubsection*{Macros}
\begin{DoxyCompactItemize}
\item
\#define \mbox{\hyperlink{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_gae110df81afd885a390bbeb152d7b709f}{My\+Libs\+\_\+\+Error\+\_\+\+Handler}}(params)
\begin{DoxyCompactList}\small\item\em Error\+\_\+\+Handler который будет вызыватся в библиотеке \end{DoxyCompactList}\item
\#define \mbox{\hyperlink{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_ga5d066a5b9781f9437e75d98677489eb9}{check\+\_\+null\+\_\+ptr\+\_\+1}}(p1)
\begin{DoxyCompactList}\small\item\em Проверить один указатель на NULL. \end{DoxyCompactList}\item
\#define \mbox{\hyperlink{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_ga27b363f333cacdccc15f5174e096b5b3}{check\+\_\+null\+\_\+ptr\+\_\+2}}(p1, p2)
\begin{DoxyCompactList}\small\item\em Проверить два указателя на NULL. \end{DoxyCompactList}\item
\#define \mbox{\hyperlink{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_ga838b40542faa9aa273d18f921b21fda2}{check\+\_\+null\+\_\+ptr\+\_\+3}}(p1, p2, p3)
\begin{DoxyCompactList}\small\item\em Проверить три указателя на NULL. \end{DoxyCompactList}\item
\#define \mbox{\hyperlink{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_ga590973be111afc3f9ba15e6939530254}{check\+\_\+null\+\_\+ptr\+\_\+4}}(p1, p2, p3, p4)
\begin{DoxyCompactList}\small\item\em Проверить четыре указателя на NULL. \end{DoxyCompactList}\item
\#define \mbox{\hyperlink{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_gaab0aafd7a4a21ec4f338b19269f65490}{check\+\_\+null\+\_\+ptr\+\_\+5}}(p1, p2, p3, p4, p5)
\begin{DoxyCompactList}\small\item\em Проверить пять указателей на NULL. \end{DoxyCompactList}\item
\#define \mbox{\hyperlink{group___d_e_l_a_y_s___d_e_f_i_n_e_s_gabeb97579daeb622c6651ed03c4a27479}{ms\+Delay}}(\+\_\+ms\+\_\+)
\begin{DoxyCompactList}\small\item\em Блокирующая задержка на указанное количество миллисекунд. \end{DoxyCompactList}\item
\#define \mbox{\hyperlink{group___d_e_l_a_y_s___d_e_f_i_n_e_s_ga8a5051b1292d1019fe8dd3fc5521ab25}{ms\+Delay\+Start}}(\+\_\+pvar\+\_\+)
\begin{DoxyCompactList}\small\item\em Начать отсчет задержки. \end{DoxyCompactList}\item
\#define \mbox{\hyperlink{group___d_e_l_a_y_s___d_e_f_i_n_e_s_ga0b97e172659a59ee4fa56f851643ae85}{ms\+Delay\+While\+Active}}(\+\_\+ms\+\_\+, \+\_\+pvar\+\_\+)
\begin{DoxyCompactList}\small\item\em Проверяет, активна ли задержка. \end{DoxyCompactList}\item
\#define \mbox{\hyperlink{group___d_e_l_a_y_s___d_e_f_i_n_e_s_gaed082c07b9fc4d1894330d885b9b5518}{ms\+Delay\+Wait\+Done}}(\+\_\+ms\+\_\+, \+\_\+pvar\+\_\+)
\begin{DoxyCompactList}\small\item\em Проверяет, завершилась ли задержка. \end{DoxyCompactList}\item
\#define \mbox{\hyperlink{group___u_t_i_l_s___d_e_f_i_n_e_s_gaf5e598848326d48e86167e5099a029be}{Clear\+Struct}}(\+\_\+struct\+\_\+)
\begin{DoxyCompactList}\small\item\em Обнуление структуры. \end{DoxyCompactList}\item
\#define \mbox{\hyperlink{group___u_t_i_l_s___d_e_f_i_n_e_s_gabf45f2b60eedf80cf9d1dbe4302a741e}{Divide\+\_\+\+Up}}(\+\_\+val\+\_\+, \+\_\+div\+\_\+)
\begin{DoxyCompactList}\small\item\em Деление с округлением вверх \end{DoxyCompactList}\item
\#define \mbox{\hyperlink{group___u_t_i_l_s___d_e_f_i_n_e_s_ga0f22e895ac7781c3d1b68fee182c4291}{Byte\+Swap16}}(v)
\begin{DoxyCompactList}\small\item\em Swap between Little Endian and Big Endian. \end{DoxyCompactList}\item
\#define \mbox{\hyperlink{group___u_t_i_l_s___d_e_f_i_n_e_s_ga996f7be338ccb40d1a2a5abc1ad61759}{ABS}}(x)
\begin{DoxyCompactList}\small\item\em Абсолютное значение числа \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection*{Functions}
\begin{DoxyCompactItemize}
\item
void {\bfseries Error\+\_\+\+Handler} (void)
\end{DoxyCompactItemize}
\doxysubsection{Detailed Description}
Заголочный файл для дефайнов библиотеки My\+Libs\+General.
Definition in file \mbox{\hyperlink{mylibs__defs_8h_source}{mylibs\+\_\+defs.\+h}}.

View File

@@ -0,0 +1 @@
5509e2c012e99076e328d162ce3492a8

View File

@@ -0,0 +1 @@
176e6999d7cd538f9e3cc807eadcf4e5

Binary file not shown.

View File

@@ -0,0 +1,227 @@
\doxysection{mylibs\+\_\+defs.\+h}
\hypertarget{mylibs__defs_8h_source}{}\label{mylibs__defs_8h_source}\index{E:/.WORK/STM32/STM\_Libs/STM32\_ExtendedLibs/MyLibs/Inc/mylibs\_defs.h@{E:/.WORK/STM32/STM\_Libs/STM32\_ExtendedLibs/MyLibs/Inc/mylibs\_defs.h}}
\mbox{\hyperlink{mylibs__defs_8h}{Go to the documentation of this file.}}
\begin{DoxyCode}{0}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00001}00001\ \textcolor{comment}{/**\ }}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00002}00002\ \textcolor{comment}{**************************************************************************}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00003}00003\ \textcolor{comment}{*\ @file\ mylibs\_defs.h}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00004}00004\ \textcolor{comment}{*\ @brief\ Заголочный\ файл\ для\ дефайнов\ библиотеки\ MyLibsGeneral.}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00005}00005\ \textcolor{comment}{**************************************************************************}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00006}00006\ \textcolor{comment}{*\ @defgroup\ MYLIBS\_TOOLS\ \ General\ Tools}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00007}00007\ \textcolor{comment}{*\ @ingroup\ \ MYLIBS\_ALL}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00008}00008\ \textcolor{comment}{*\ @brief\ \ \ \ Общие\ макросы\ и\ typedef'ы,\ используемые\ по\ всему\ проекту}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00009}00009\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00010}00010\ \textcolor{comment}{*\ @defgroup\ MYLIBS\_DEBUG\_TOOLS\ \ Debug\ Tools}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00011}00011\ \textcolor{comment}{*\ @ingroup\ \ MYLIBS\_ALL}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00012}00012\ \textcolor{comment}{*\ @brief\ \ \ \ Утилиты\ для\ тестирования\ программы}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00013}00013\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00014}00014\ \textcolor{comment}{*\ @addtogroup\ BENCH\_TIME}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00015}00015\ \textcolor{comment}{*\ @ingroup\ MYLIBS\_DEBUG\_TOOLS\ }}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00016}00016\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00017}00017\ \textcolor{comment}{*\ @addtogroup\ GEN\_OPTIMIZER}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00018}00018\ \textcolor{comment}{*\ @ingroup\ MYLIBS\_DEBUG\_TOOLS\ }}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00019}00019\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00020}00020\ \textcolor{comment}{*\ @addtogroup\ TRACE}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00021}00021\ \textcolor{comment}{*\ @ingroup\ MYLIBS\_DEBUG\_TOOLS\ }}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00022}00022\ \textcolor{comment}{*}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00023}00023\ \textcolor{comment}{*\ @addtogroup\ TRACKERS}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00024}00024\ \textcolor{comment}{*\ @ingroup\ MYLIBS\_DEBUG\_TOOLS\ }}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00025}00025\ \textcolor{comment}{*************************************************************************/}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00026}00026\ \textcolor{preprocessor}{\#ifndef\ \_\_MYLIBS\_TOOLS\_H\_}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00027}00027\ \textcolor{preprocessor}{\#define\ \_\_MYLIBS\_TOOLS\_H\_}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00028}00028\ }
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00029}00029\ \textcolor{preprocessor}{\#include\ "{}mylibs\_config.h"{}}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00030}00030\ }
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00031}00031\ \textcolor{comment}{/***************************************************************************}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00032}00032\ \textcolor{comment}{******************************ERROR\_HANDLER********************************/}\textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00033}00033\ \textcolor{comment}{/**\ }}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00034}00034\ \textcolor{comment}{\ \ *\ @addtogroup\ ERROR\_HANDLER\_DEFINES\ \ \ Error\ Handler\ defines}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00035}00035\ \textcolor{comment}{\ \ *\ @ingroup\ \ \ \ MYLIBS\_TOOLS}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00036}00036\ \textcolor{comment}{\ \ *\ @brief\ \ \ \ \ \ Дефайны\ для\ обработки\ ошибок}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00037}00037\ \textcolor{comment}{\ \ *\ @\{}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00038}00038\ \textcolor{comment}{\ \ */}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00039}00039\ }
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00040}00040\ \textcolor{comment}{/*\ extern\ Error\_Handler\ from\ main.h\ */}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00041}00041\ \textcolor{keyword}{extern}\ \textcolor{keywordtype}{void}\ Error\_Handler(\textcolor{keywordtype}{void});}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00042}00042\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00043}00043\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00044}00044\ \textcolor{comment}{\ \ *\ @brief\ Error\_Handler\ который\ будет\ вызыватся\ в\ библиотеке}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00045}00045\ \textcolor{comment}{\ \ */}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00046}\mbox{\hyperlink{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_gae110df81afd885a390bbeb152d7b709f}{00046}}\ \textcolor{preprocessor}{\#define\ MyLibs\_Error\_Handler(params)\ \ Error\_Handler(params)}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00047}00047\ \textcolor{comment}{/*\ If\ error\ handler\ not\ defined\ -\/\ set\ void\ */}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00048}00048\ \textcolor{preprocessor}{\#ifndef\ MyLibs\_Error\_Handler}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00049}00049\ \textcolor{preprocessor}{\#define\ MyLibs\_Error\_Handler(...)}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00050}00050\ \textcolor{preprocessor}{\#endif\ }\textcolor{comment}{//\ MyLibs\_Error\_Handler}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00051}00051\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00052}00052\ \textcolor{comment}{/**\ @brief\ Проверить\ один\ указатель\ на\ NULL\ */}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00053}\mbox{\hyperlink{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_ga5d066a5b9781f9437e75d98677489eb9}{00053}}\ \textcolor{preprocessor}{\#define\ check\_null\_ptr\_1(p1)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (p1\ ==\ NULL)}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00054}00054\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00055}00055\ \textcolor{comment}{/**\ @brief\ Проверить\ два\ указателя\ на\ NULL\ */}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00056}\mbox{\hyperlink{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_ga27b363f333cacdccc15f5174e096b5b3}{00056}}\ \textcolor{preprocessor}{\#define\ check\_null\_ptr\_2(p1,\ p2)\ \ \ \ \ \ \ \ \ \ \ \ \ \ ((p1\ ==\ NULL)\ ||\ (p1\ !=\ NULL\ \&\&\ p2\ ==\ NULL))}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00057}00057\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00058}00058\ \textcolor{comment}{/**\ @brief\ Проверить\ три\ указателя\ на\ NULL\ */}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00059}\mbox{\hyperlink{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_ga838b40542faa9aa273d18f921b21fda2}{00059}}\ \textcolor{preprocessor}{\#define\ check\_null\_ptr\_3(p1,\ p2,\ p3)\ \ \ \ \ \ \ \ \ \ ((p1\ ==\ NULL)\ ||\ (p1\ !=\ NULL\ \&\&\ ((p2\ ==\ NULL)\ ||\ (p2\ !=\ NULL\ \&\&\ p3\ ==\ NULL))))}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00060}00060\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00061}00061\ \textcolor{comment}{/**\ @brief\ Проверить\ четыре\ указателя\ на\ NULL\ */}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00062}\mbox{\hyperlink{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_ga590973be111afc3f9ba15e6939530254}{00062}}\ \textcolor{preprocessor}{\#define\ check\_null\_ptr\_4(p1,\ p2,\ p3,\ p4)\ \ \ \ \ \ ((p1\ ==\ NULL)\ ||\ (p1\ !=\ NULL\ \&\&\ ((p2\ ==\ NULL)\ ||\ (p2\ !=\ NULL\ \&\&\ ((p3\ ==\ NULL)\ ||\ (p3\ !=\ NULL\ \&\&\ p4\ ==\ NULL))))))}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00063}00063\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00064}00064\ \textcolor{comment}{/**\ @brief\ Проверить\ пять\ указателей\ на\ NULL\ */}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00065}\mbox{\hyperlink{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_gaab0aafd7a4a21ec4f338b19269f65490}{00065}}\ \textcolor{preprocessor}{\#define\ check\_null\_ptr\_5(p1,\ p2,\ p3,\ p4,\ p5)\ \ ((p1\ ==\ NULL)\ ||\ (p1\ !=\ NULL\ \&\&\ ((p2\ ==\ NULL)\ ||\ (p2\ !=\ NULL\ \&\&\ ((p3\ ==\ NULL)\ ||\ (p3\ !=\ NULL\ \&\&\ ((p4\ ==\ NULL)\ ||\ (p4\ !=\ NULL\ \&\&\ p5\ ==\ NULL))))))))}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00066}00066\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00067}00067\ \textcolor{comment}{/**\ ERROR\_HANDLER\_DEFINES}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00068}00068\ \textcolor{comment}{\ \ *\ @\}}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00069}00069\ \textcolor{comment}{\ \ */}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00070}00070\ \ \ }
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00071}00071\ }
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00072}00072\ \textcolor{comment}{/***************************************************************************}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00073}00073\ \textcolor{comment}{******************************DELAYS\_DEFINES*******************************/}\textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00074}00074\ \textcolor{comment}{/**\ }}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00075}00075\ \textcolor{comment}{\ \ *\ @addtogroup\ DELAYS\_DEFINES\ \ \ \ Delays\ defines}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00076}00076\ \textcolor{comment}{\ \ *\ @ingroup\ \ \ \ MYLIBS\_TOOLS}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00077}00077\ \textcolor{comment}{\ \ *\ @brief\ \ \ \ \ \ \ Макросы\ и\ определения\ для\ работы\ с\ задержками\ в\ миллисекундах.}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00078}00078\ \textcolor{comment}{\ \ *\ @details}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00079}00079\ \textcolor{comment}{\ \ *\ Этот\ блок\ содержит\ макросы\ для\ реализации\ задержек\ с\ использованием\ HAL\ или\ FreeRTOS:}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00080}00080\ \textcolor{comment}{\ \ *\ -\/\ @ref\ msDelay\ \ \ \ \ \ \ \ \ \ \ \ \ \ простая\ задержка\ заданной\ длительности;}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00081}00081\ \textcolor{comment}{\ \ *\ -\/\ @ref\ msDelayStart\ \ \ \ \ \ \ \ \ сохранение\ текущего\ времени\ начала\ задержки;}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00082}00082\ \textcolor{comment}{\ \ *\ -\/\ @ref\ msDelayWhileActive\ \ \ проверка,\ активна\ ли\ задержка;}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00083}00083\ \textcolor{comment}{\ \ *\ -\/\ @ref\ msDelayWaitDone\ \ \ \ \ \ проверка,\ завершена\ ли\ задержка.}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00084}00084\ \textcolor{comment}{\ \ *\ Эти\ макросы\ удобны\ для\ реализации\ неблокирующих\ задержек.}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00085}00085\ \textcolor{comment}{\ \ *\ @\{}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00086}00086\ \textcolor{comment}{\ \ */}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00087}00087\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00088}00088\ \textcolor{comment}{/**\ }}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00089}00089\ \textcolor{comment}{\ \ *\ @def\ msDelay(\_ms\_)}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00090}00090\ \textcolor{comment}{\ \ *\ @brief\ Блокирующая\ задержка\ на\ указанное\ количество\ миллисекунд.}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00091}00091\ \textcolor{comment}{\ \ *\ @param\ \_ms\_\ Время\ задержки\ в\ миллисекундах.}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00092}00092\ \textcolor{comment}{\ \ *\ @note\ Использует\ задержку\ через\ @ref\ local\_time\ или\ osDelay\ в\ зависимости\ от\ @ref\ FREERTOS\_DELAY.}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00093}00093\ \textcolor{comment}{\ \ */}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00094}00094\ \textcolor{preprocessor}{\#ifdef\ FREERTOS\_DELAY}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00095}00095\ \textcolor{preprocessor}{\ \ \#define\ msDelay(\_ms\_)\ \ \ \ \ \ \ osDelay(\_ms\_)}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00096}00096\ \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00097}\mbox{\hyperlink{group___d_e_l_a_y_s___d_e_f_i_n_e_s_gabeb97579daeb622c6651ed03c4a27479}{00097}}\ \textcolor{preprocessor}{\ \ \#define\ msDelay(\_ms\_)\ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00098}00098\ \textcolor{preprocessor}{\ \ \ \ do\ \{\ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00099}00099\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ uint32\_t\ \_start\_\ =\ local\_time();\ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00100}00100\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ while\ (local\_time()\ -\/\ \_start\_\ <\ (\_ms\_))\ \{\}\ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00101}00101\ \textcolor{preprocessor}{\ \ \ \ \}\ while(0)}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00102}00102\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00103}00103\ }
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00104}00104\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00105}00105\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00106}00106\ \textcolor{comment}{\ \ *\ @brief\ Начать\ отсчет\ задержки.}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00107}00107\ \textcolor{comment}{\ \ *\ @param\ \_pvar\_\ Указатель\ на\ переменную\ типа\ uint32\_t\ для\ хранения\ времени\ старта.}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00108}00108\ \textcolor{comment}{\ \ *\ @details\ После\ вызова\ этого\ макроса\ переменная\ \_pvar\_\ содержит\ текущее\ количество\ миллисекунд}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00109}00109\ \textcolor{comment}{\ \ *\ с\ момента\ запуска\ системы\ (@ref\ local\_time).\ }}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00110}00110\ \textcolor{comment}{\ \ *\ }}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00111}00111\ \textcolor{comment}{\ \ *\ Используется\ для\ реализации\ неблокирующих\ задержек.}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00112}00112\ \textcolor{comment}{\ \ */}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00113}\mbox{\hyperlink{group___d_e_l_a_y_s___d_e_f_i_n_e_s_ga8a5051b1292d1019fe8dd3fc5521ab25}{00113}}\ \textcolor{preprocessor}{\#define\ msDelayStart(\_pvar\_)\ \ \ \ \ \ \ \ \ \ \ \ *(\_pvar\_)\ =\ local\_time()}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00114}00114\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00115}00115\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00116}00116\ \textcolor{comment}{\ *\ @brief\ Проверяет,\ активна\ ли\ задержка.}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00117}00117\ \textcolor{comment}{\ *\ @param\ \_ms\_\ Длительность\ задержки\ в\ миллисекундах.}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00118}00118\ \textcolor{comment}{\ *\ @param\ \_pvar\_\ Указатель\ на\ переменную,\ в\ которой\ сохранено\ время\ начала\ (@ref\ msDelayStart).}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00119}00119\ \textcolor{comment}{\ *\ @retval\ 1\ Задержка\ еще\ активна.}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00120}00120\ \textcolor{comment}{\ *\ @retval\ 0\ Задержка\ завершена.}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00121}00121\ \textcolor{comment}{\ *\ @details}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00122}00122\ \textcolor{comment}{\ *\ Возвращает\ true,\ пока\ время\ задержки\ не\ истекло.\ Используется\ в\ проверках,}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00123}00123\ \textcolor{comment}{\ *\ когда\ нужно\ **действовать,\ пока\ задержка\ выполняется**.\ Пример:}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00124}00124\ \textcolor{comment}{\ *\ @code}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00125}00125\ \textcolor{comment}{\ *\ while(msDelayWhileActive(1000,\ \&tick))\ \{}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00126}00126\ \textcolor{comment}{\ *\ \ \ \ \ //\ выполняем\ другие\ задачи,\ задержка\ не\ блокирует\ поток}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00127}00127\ \textcolor{comment}{\ *\ \}}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00128}00128\ \textcolor{comment}{\ *\ @endcode}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00129}00129\ \textcolor{comment}{\ */}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00130}\mbox{\hyperlink{group___d_e_l_a_y_s___d_e_f_i_n_e_s_ga0b97e172659a59ee4fa56f851643ae85}{00130}}\ \textcolor{preprocessor}{\#define\ msDelayWhileActive(\_ms\_,\ \_pvar\_)\ \ \ \ (local\_time()\ -\/\ *(\_pvar\_)\ <\ \_ms\_)}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00131}00131\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00132}00132\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00133}00133\ \textcolor{comment}{\ *\ @brief\ Проверяет,\ завершилась\ ли\ задержка.}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00134}00134\ \textcolor{comment}{\ *\ @param\ \_ms\_\ Длительность\ задержки\ в\ миллисекундах.}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00135}00135\ \textcolor{comment}{\ *\ @param\ \_pvar\_\ Указатель\ на\ переменную,\ в\ которой\ сохранено\ время\ начала\ (msDelayStart).}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00136}00136\ \textcolor{comment}{\ *\ @retval\ 1\ Задержка\ завершена.}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00137}00137\ \textcolor{comment}{\ *\ @retval\ 0\ Задержка\ еще\ активна.}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00138}00138\ \textcolor{comment}{\ *\ @details}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00139}00139\ \textcolor{comment}{\ *\ Возвращает\ true,\ когда\ задержка\ уже\ завершена.\ Используется\ в\ проверках,}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00140}00140\ \textcolor{comment}{\ *\ когда\ нужно\ **выполнить\ действие\ только\ после\ окончания\ задержки**.\ Пример:}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00141}00141\ \textcolor{comment}{\ *\ @code}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00142}00142\ \textcolor{comment}{\ *\ if(msDelayWaitDone(1000,\ \&tick))\ \{}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00143}00143\ \textcolor{comment}{\ *\ \ \ \ \ //\ выполняем\ действие\ после\ завершения\ задержки}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00144}00144\ \textcolor{comment}{\ *\ \}}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00145}00145\ \textcolor{comment}{\ *\ @endcode}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00146}00146\ \textcolor{comment}{\ */}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00147}\mbox{\hyperlink{group___d_e_l_a_y_s___d_e_f_i_n_e_s_gaed082c07b9fc4d1894330d885b9b5518}{00147}}\ \textcolor{preprocessor}{\#define\ msDelayWaitDone(\_ms\_,\ \_pvar\_)\ \ \ \ (local\_time()\ -\/\ *(\_pvar\_)\ >=\ \_ms\_)}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00148}00148\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00149}00149\ \textcolor{comment}{/**\ DELAYS\_DEFINES}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00150}00150\ \textcolor{comment}{\ \ *\ @\}}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00151}00151\ \textcolor{comment}{\ \ */}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00152}00152\ }
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00153}00153\ }
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00154}00154\ \textcolor{comment}{/***************************************************************************}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00155}00155\ \textcolor{comment}{*******************************UTIL\_DEFINES********************************/}\textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00156}00156\ \textcolor{comment}{/**\ }}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00157}00157\ \textcolor{comment}{\ \ *\ @addtogroup\ UTILS\_DEFINES\ \ \ \ \ \ Utils\ defines}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00158}00158\ \textcolor{comment}{\ \ *\ @ingroup\ \ \ \ MYLIBS\_TOOLS}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00159}00159\ \textcolor{comment}{\ \ *\ @brief\ \ \ \ \ \ Общие\ вспомогательные\ макросы}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00160}00160\ \textcolor{comment}{\ \ *\ @\{}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00161}00161\ \textcolor{comment}{\ \ */}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00162}00162\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00163}00163\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00164}00164\ \textcolor{comment}{\ *\ @brief\ Обнуление\ структуры.}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00165}00165\ \textcolor{comment}{\ *\ @param\ \_struct\_\ Структура,\ которую\ нужно\ обнулить.}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00166}00166\ \textcolor{comment}{\ *\ @details\ Макрос\ использует\ memset\ для\ обнуления\ всей\ памяти\ структуры.}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00167}00167\ \textcolor{comment}{\ *\ Используется\ для\ быстрой\ и\ безопасной\ инициализации\ переменных\ структур\ до\ нуля.}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00168}00168\ \textcolor{comment}{\ */}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00169}\mbox{\hyperlink{group___u_t_i_l_s___d_e_f_i_n_e_s_gaf5e598848326d48e86167e5099a029be}{00169}}\ \textcolor{preprocessor}{\#define\ ClearStruct(\_struct\_)\ \ \ \ \ memset(\&(\_struct\_),\ 0,\ sizeof(\_struct\_))}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00170}00170\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00171}00171\ \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00172}00172\ \textcolor{comment}{\ \ *\ @brief\ \ Деление\ с\ округлением\ вверх}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00173}00173\ \textcolor{comment}{\ \ *\ @param\ \_val\_\ Делимое.}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00174}00174\ \textcolor{comment}{\ \ *\ @param\ \_div\_\ Делитель.}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00175}00175\ \textcolor{comment}{\ \ *\ @return\ Результат\ деления,\ округленный\ вверх.}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00176}00176\ \textcolor{comment}{\ \ *\ @details\ \ Если\ результат\ деления\ без\ остатка:\ он\ возвращается\ как\ есть}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00177}00177\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ Если\ с\ остатком\ -\/\ округляется\ вверх}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00178}00178\ \textcolor{comment}{\ \ */}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00179}00179\ \textcolor{comment}{//\#define\ Divide\_Up(\_val\_,\ \_div\_)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (((\_val\_)\%(\_div\_))?\ (\_val\_)/(\_div\_)+1\ :\ (\_val\_)/\_div\_)\ \ /*\ через\ тернарный\ оператор\ */}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00180}\mbox{\hyperlink{group___u_t_i_l_s___d_e_f_i_n_e_s_gabf45f2b60eedf80cf9d1dbe4302a741e}{00180}}\ \textcolor{preprocessor}{\#define\ Divide\_Up(\_val\_,\ \_div\_)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ((\_val\_\ -\/\ 1)\ /\ \_div\_)\ +\ 1\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }\textcolor{comment}{/*\ через\ мат\ выражение\ */}\textcolor{preprocessor}{\ }}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00181}00181\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00182}00182\ \textcolor{comment}{/**\ }}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00183}00183\ \textcolor{comment}{\ \ *\ @brief\ \ Swap\ between\ Little\ Endian\ and\ Big\ Endian}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00184}00184\ \textcolor{comment}{\ \ *\ @param\ v\ Исходное\ 16-\/битное\ значение.}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00185}00185\ \textcolor{comment}{\ \ *\ @return\ Результат\ с\ поменяными\ местами\ старшим\ и\ младшим\ байтом.}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00186}00186\ \textcolor{comment}{\ \ *\ @details\ \ Переключения\ между\ двумя\ типами\ хранения\ слова:\ HI-\/LO\ байты\ и\ LO-\/HI\ байты.}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00187}00187\ \textcolor{comment}{\ \ */}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00188}\mbox{\hyperlink{group___u_t_i_l_s___d_e_f_i_n_e_s_ga0f22e895ac7781c3d1b68fee182c4291}{00188}}\ \textcolor{preprocessor}{\#define\ ByteSwap16(v)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (((v\&0xFF00)\ >>\ (8))\ |\ ((v\&0x00FF)\ <<\ (8)))}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00189}00189\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00190}00190\ \textcolor{comment}{/**\ }}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00191}00191\ \textcolor{comment}{\ \ *\ @brief\ \ Абсолютное\ значение\ числа}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00192}00192\ \textcolor{comment}{\ \ *\ @param\ x\ Число.}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00193}00193\ \textcolor{comment}{\ \ *\ @return\ Абсолютное\ значение\ числа\ x.}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00194}00194\ \textcolor{comment}{\ \ *\ @details\ \ Берет\ число\ по\ модулю.\ Хз\ как\ работает\ библиотечный\ abs\ в\ stdlib.h,\ мб\ это\ быстрее,\ но\ вряд\ ли\ конечно.}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00195}00195\ \textcolor{comment}{\ \ */}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00196}\mbox{\hyperlink{group___u_t_i_l_s___d_e_f_i_n_e_s_ga996f7be338ccb40d1a2a5abc1ad61759}{00196}}\ \textcolor{preprocessor}{\#define\ ABS(x)\ (\ ((x)\ >\ 0)?\ (x)\ :\ -\/(x))}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00197}00197\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00198}00198\ \textcolor{comment}{/**\ UTILS\_DEFINES}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00199}00199\ \textcolor{comment}{\ \ *\ @\}}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00200}00200\ \textcolor{comment}{\ \ */}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00201}00201\ \ \ }
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00202}00202\ }
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00203}00203\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00204}00204\ \textcolor{comment}{/**\ }}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00205}00205\ \textcolor{comment}{\ *\ @cond\ LIBS\_INTERNAL}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00206}00206\ \textcolor{comment}{\ */}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00207}00207\ }
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00208}00208\ \textcolor{keyword}{static}\ \textcolor{keywordtype}{int}\ dummy;\ \textcolor{comment}{//\ переменная\ которой\ присваиваются\ значения,\ которые\ некуда\ присвоить}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00209}00209\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00210}00210\ \textcolor{comment}{/**\ \ }}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00211}00211\ \textcolor{comment}{\ \ *\ @brief\ \ Аналог\ HAL\ макроса\ для\ привязки\ DMA\ к\ UART.}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00212}00212\ \textcolor{comment}{\ \ *\ @note\ \ \ @ref\ \_\_HAL\_LINKDMA.}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00213}00213\ \textcolor{comment}{\ \ */}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00214}00214\ \textcolor{preprocessor}{\#define\ \_\_USER\_LINKDMA(\_\_HANDLE\_\_,\ \_\_PPP\_DMA\_FIELD\_\_,\ \_\_DMA\_HANDLE\_\_)\ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00215}00215\ \textcolor{preprocessor}{do\{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00216}00216\ \textcolor{preprocessor}{(\_\_HANDLE\_\_)-\/>\_\_PPP\_DMA\_FIELD\_\_\ =\ (\_\_DMA\_HANDLE\_\_);\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00217}00217\ \textcolor{preprocessor}{(\_\_DMA\_HANDLE\_\_)-\/>Parent\ =\ (\_\_HANDLE\_\_);\}\ while(0U)}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00218}00218\ }
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00219}00219\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00220}00220\ \textcolor{comment}{/**\ @endcond\ */}}
\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00221}00221\ \textcolor{preprocessor}{\#endif\ }\textcolor{comment}{//\_\_MYLIBS\_TOOLS\_H\_}}
\end{DoxyCode}

View File

@@ -0,0 +1,285 @@
% Handle batch mode
% to overcome problems with too many open files
\let\mypdfximage\pdfximage\def\pdfximage{\immediate\mypdfximage}
\RequirePackage{iftex}
\ifLuaTeX
\directlua{pdf.setminorversion(7)}
\fi
\ifXeTeX
\special{pdf:minorversion 7}
\fi
\ifPDFTeX
\pdfminorversion=7
\fi
% Set document class depending on configuration
\documentclass[twoside]{book}
%% moved from doxygen.sty due to workaround for LaTex 2019 version and unmaintained tabu package
\usepackage{ifthen}
\ifx\requestedLaTeXdate\undefined
\usepackage{array}
\else
\usepackage{array}[=2016-10-06]
\fi
%%
% Packages required by doxygen
\makeatletter
\providecommand\IfFormatAtLeastTF{\@ifl@t@r\fmtversion}
% suppress package identification of infwarerr as it contains the word "warning"
\let\@@protected@wlog\protected@wlog
\def\protected@wlog#1{\wlog{package info suppressed}}
\RequirePackage{infwarerr}
\let\protected@wlog\@@protected@wlog
\makeatother
\IfFormatAtLeastTF{2016/01/01}{}{\usepackage{fixltx2e}} % for \textsubscript
\ifPDFTeX
\IfFormatAtLeastTF{2015/01/01}{\pdfsuppresswarningpagegroup=1}{}
\fi
\usepackage{doxygen}
\usepackage{graphicx}
\iftutex
\usepackage{fontspec}
\defaultfontfeatures{Ligatures={TeX}}
\usepackage{unicode-math}
\else
\usepackage[utf8]{inputenc}
\fi
\usepackage{makeidx}
\PassOptionsToPackage{warn}{textcomp}
\usepackage{textcomp}
\usepackage[nointegrals]{wasysym}
\usepackage{ifxetex}
% NLS support packages
% Define default fonts
% Font selection
\iftutex
\else
\usepackage[T1]{fontenc}
\fi
% set main and monospaced font
\usepackage[scaled=.90]{helvet}
\usepackage{courier}
\renewcommand{\familydefault}{\sfdefault}
\doxyallsectionsfont{%
\fontseries{bc}\selectfont%
\color{darkgray}%
}
\renewcommand{\DoxyLabelFont}{%
\fontseries{bc}\selectfont%
\color{darkgray}%
}
\newcommand{\+}{\discretionary{\mbox{\scriptsize$\hookleftarrow$}}{}{}}
% Arguments of doxygenemoji:
% 1) ':<text>:' form of the emoji, already LaTeX-escaped
% 2) file with the name of the emoji without the .png extension
% in case image exist use this otherwise use the ':<text>:' form
\newcommand{\doxygenemoji}[2]{%
\IfFileExists{./#2.png}{\raisebox{-0.1em}{\includegraphics[height=0.9em]{./#2.png}}}{#1}%
}
% Page & text layout
\usepackage{geometry}
\geometry{%
a4paper,%
top=2.5cm,%
bottom=2.5cm,%
left=2.5cm,%
right=2.5cm%
}
\usepackage{changepage}
% Allow a bit of overflow to go unnoticed by other means
\tolerance=750
\hfuzz=15pt
\hbadness=750
\setlength{\emergencystretch}{15pt}
\setlength{\parindent}{0cm}
\newcommand{\doxynormalparskip}{\setlength{\parskip}{3ex plus 2ex minus 2ex}}
\newcommand{\doxytocparskip}{\setlength{\parskip}{1ex plus 0ex minus 0ex}}
\doxynormalparskip
% Redefine paragraph/subparagraph environments, using sectsty fonts
\makeatletter
\renewcommand{\paragraph}{%
\@startsection{paragraph}{4}{0ex}{-1.0ex}{1.0ex}{%
\normalfont\normalsize\bfseries\SS@parafont%
}%
}
\renewcommand{\subparagraph}{%
\@startsection{subparagraph}{5}{0ex}{-1.0ex}{1.0ex}{%
\normalfont\normalsize\bfseries\SS@subparafont%
}%
}
\makeatother
\makeatletter
\newcommand\hrulefilll{\leavevmode\leaders\hrule\hskip 0pt plus 1filll\kern\z@}
\makeatother
% Headers & footers
\usepackage{fancyhdr}
\pagestyle{fancyplain}
\renewcommand{\footrulewidth}{0.4pt}
\fancypagestyle{fancyplain}{
\fancyhf{}
\fancyhead[LE, RO]{\bfseries\thepage}
\fancyhead[LO]{\bfseries\rightmark}
\fancyhead[RE]{\bfseries\leftmark}
\fancyfoot[LO, RE]{\bfseries\scriptsize Generated by Doxygen }
}
\fancypagestyle{plain}{
\fancyhf{}
\fancyfoot[LO, RE]{\bfseries\scriptsize Generated by Doxygen }
\renewcommand{\headrulewidth}{0pt}
}
\pagestyle{fancyplain}
\renewcommand{\chaptermark}[1]{%
\markboth{#1}{}%
}
\renewcommand{\sectionmark}[1]{%
\markright{\thesection\ #1}%
}
% ToC, LoF, LoT, bibliography, and index
% Indices & bibliography
\usepackage[numbers]{natbib}
\usepackage[titles]{tocloft}
\setcounter{tocdepth}{3}
\setcounter{secnumdepth}{5}
% creating indexes
\makeindex
\ifPDFTeX
\usepackage{newunicodechar}
\makeatletter
\def\doxynewunicodechar#1#2{%
\@tempswafalse
\edef\nuc@tempa{\detokenize{#1}}%
\if\relax\nuc@tempa\relax
\nuc@emptyargerr
\else
\edef\@tempb{\expandafter\@car\nuc@tempa\@nil}%
\nuc@check
\if@tempswa
\@namedef{u8:\nuc@tempa}{#2}%
\fi
\fi
}
\makeatother
\doxynewunicodechar{}{${}^{-}$}% Superscript minus
\doxynewunicodechar{²}{${}^{2}$}% Superscript two
\doxynewunicodechar{³}{${}^{3}$}% Superscript three
\fi
% Hyperlinks
% Hyperlinks (required, but should be loaded last)
\ifPDFTeX
\usepackage[pdftex,pagebackref=true]{hyperref}
\else
\ifXeTeX
\usepackage[xetex,pagebackref=true]{hyperref}
\else
\ifLuaTeX
\usepackage[luatex,pagebackref=true]{hyperref}
\else
\usepackage[ps2pdf,pagebackref=true]{hyperref}
\fi
\fi
\fi
\hypersetup{%
colorlinks=true,%
linkcolor=blue,%
citecolor=blue,%
unicode,%
pdftitle={My\+Libs},%
pdfsubject={Расширенные библиотеки для STM32}%
}
% Custom commands used by the header
% Custom commands
\newcommand{\clearemptydoublepage}{%
\newpage{\pagestyle{empty}\cleardoublepage}%
}
% caption style definition
\usepackage{caption}
\captionsetup{labelsep=space,justification=centering,font={bf},singlelinecheck=off,skip=4pt,position=top}
% in page table of contents
\IfFormatAtLeastTF{2023/05/01}{\usepackage[deeplevels]{etoc}}{\usepackage[deeplevels]{etoc_doxygen}}
\etocsettocstyle{\doxytocparskip}{\doxynormalparskip}
\etocsetlevel{subsubsubsection}{4}
\etocsetlevel{subsubsubsubsection}{5}
\etocsetlevel{subsubsubsubsubsection}{6}
\etocsetlevel{subsubsubsubsubsubsection}{7}
\etocsetlevel{paragraph}{8}
\etocsetlevel{subparagraph}{9}
% prevent numbers overlap the titles in toc
\renewcommand{\numberline}[1]{#1~}
% End of preamble, now comes the document contents
%===== C O N T E N T S =====
\begin{document}
\raggedbottom
% Titlepage & ToC
% To avoid duplicate page anchors due to reuse of same numbers for
% the index (be it as roman numbers)
\hypersetup{pageanchor=false,
bookmarksnumbered=true,
pdfencoding=unicode
}
\pagenumbering{alph}
\begin{titlepage}
\vspace*{7cm}
\begin{center}%
{\Large My\+Libs}\\
[1ex]\large 1.\+0 \\
\vspace*{1cm}
{\large Generated by Doxygen 1.14.0}\\
\end{center}
\end{titlepage}
\clearemptydoublepage
\pagenumbering{roman}
\tableofcontents
\clearemptydoublepage
\pagenumbering{arabic}
% re-enable anchors again
\hypersetup{pageanchor=true}
%--- Begin generated contents ---
\input{index}
\chapter{Topic Index}
\input{topics}
\chapter{Class Index}
\input{annotated}
\chapter{File Index}
\input{files}
\chapter{Topic Documentation}
\input{group___m_y_l_i_b_s___a_l_l}
\chapter{Class Documentation}
\input{struct_gen_optimizer__t}
\input{struct_r_t_t___flash_header__t}
\input{struct_s_e_g_g_e_r___r_t_t___b_u_f_f_e_r___d_o_w_n}
\input{struct_s_e_g_g_e_r___r_t_t___b_u_f_f_e_r___u_p}
\input{struct_s_e_g_g_e_r___r_t_t___c_b}
\input{struct_s_e_g_g_e_r___r_t_t___p_r_i_n_t_f___d_e_s_c}
\input{unionuint16___bit_type_def}
\input{unionuint32___bit_type_def}
\input{unionuint64___bit_type_def}
\input{unionuint8___bit_type_def}
\chapter{File Documentation}
\input{____mylibs__config_8h_source}
\input{____mylibs__include_8h_source}
\input{_____s_e_g_g_e_r___r_t_t___conf_8h_source}
\input{bench__time_8h}
\input{bench__time_8h_source}
\input{bit__access_8h}
\input{bit__access_8h_source}
\input{gen__optimizer_8h}
\input{gen__optimizer_8h_source}
\input{mylibs__defs_8h}
\input{mylibs__defs_8h_source}
\input{trace_8h}
\input{trace_8h_source}
\input{trackers_8h}
\input{trackers_8h_source}
\input{_s_e_g_g_e_r___r_t_t_8c_source}
\input{_s_e_g_g_e_r___r_t_t_8h_source}
\input{_s_e_g_g_e_r___r_t_t__printf_8c_source}
\input{_s_e_g_g_e_r___r_t_t___syscalls___k_e_i_l_8c_source}
%--- End generated contents ---
% Index
\backmatter
\newpage
\phantomsection
\clearemptydoublepage
\addcontentsline{toc}{chapter}{\indexname}
\printindex
% Required for some languages (in combination with latexdocumentpre from the header)
\end{document}

View File

@@ -0,0 +1,131 @@
\doxysection{Gen\+Optimizer\+\_\+t Struct Reference}
\hypertarget{struct_gen_optimizer__t}{}\label{struct_gen_optimizer__t}\index{GenOptimizer\_t@{GenOptimizer\_t}}
\doxysubsubsection*{Public Attributes}
\begin{DoxyCompactItemize}
\item
uint16\+\_\+t \mbox{\hyperlink{struct_gen_optimizer__t_afe598a90024a8aa628dd16f3a2b38eb5}{n\+\_\+params}}
\item
uint16\+\_\+t \mbox{\hyperlink{struct_gen_optimizer__t_a9e20d2f6f39a5147e6dbac46baca73a9}{n\+\_\+cand}}
\item
uint16\+\_\+t \mbox{\hyperlink{struct_gen_optimizer__t_a8201f1eede36a2c04ec7b4caac7465c9}{n\+\_\+best}}
\item
float \mbox{\hyperlink{struct_gen_optimizer__t_ad4dc0e53b3ca6bf2a642dfe7a1d1f26c}{mutation\+\_\+amp}}
\item
float \mbox{\hyperlink{struct_gen_optimizer__t_a3e82afdb058ce54a227d63bd498ea8cf}{loss}} \mbox{[}0\mbox{]}
\item
float \mbox{\hyperlink{struct_gen_optimizer__t_a758f8ed0ea12dc5c91b311c18fc776f8}{candidates}} \mbox{[}0\mbox{]}\mbox{[}0\mbox{]}
\item
uint16\+\_\+t \mbox{\hyperlink{struct_gen_optimizer__t_afde03f5cff5148f0246b4e2c5f5c4367}{iq\+\_\+mutation}}
\item
int32\+\_\+t \mbox{\hyperlink{struct_gen_optimizer__t_a4554e609bbec5ede27719da81699dd1a}{loss}} \mbox{[}0\mbox{]}
\item
int32\+\_\+t \mbox{\hyperlink{struct_gen_optimizer__t_a2e879ebe62d9fe8ba1cb824cca040845}{candidates}} \mbox{[}0\mbox{]}\mbox{[}0\mbox{]}
\end{DoxyCompactItemize}
\doxysubsection{Detailed Description}
Definition at line \mbox{\hyperlink{gen__optimizer_8h_source_l00319}{319}} of file \mbox{\hyperlink{gen__optimizer_8h_source}{gen\+\_\+optimizer.\+h}}.
\label{doc-variable-members}
\Hypertarget{struct_gen_optimizer__t_doc-variable-members}
\doxysubsection{Member Data Documentation}
\Hypertarget{struct_gen_optimizer__t_afe598a90024a8aa628dd16f3a2b38eb5}\index{GenOptimizer\_t@{GenOptimizer\_t}!n\_params@{n\_params}}
\index{n\_params@{n\_params}!GenOptimizer\_t@{GenOptimizer\_t}}
\doxysubsubsection{\texorpdfstring{n\_params}{n\_params}}
{\footnotesize\ttfamily \label{struct_gen_optimizer__t_afe598a90024a8aa628dd16f3a2b38eb5}
uint16\+\_\+t Gen\+Optimizer\+\_\+t\+::n\+\_\+params}
Definition at line \mbox{\hyperlink{gen__optimizer_8h_source_l00320}{320}} of file \mbox{\hyperlink{gen__optimizer_8h_source}{gen\+\_\+optimizer.\+h}}.
\Hypertarget{struct_gen_optimizer__t_a9e20d2f6f39a5147e6dbac46baca73a9}\index{GenOptimizer\_t@{GenOptimizer\_t}!n\_cand@{n\_cand}}
\index{n\_cand@{n\_cand}!GenOptimizer\_t@{GenOptimizer\_t}}
\doxysubsubsection{\texorpdfstring{n\_cand}{n\_cand}}
{\footnotesize\ttfamily \label{struct_gen_optimizer__t_a9e20d2f6f39a5147e6dbac46baca73a9}
uint16\+\_\+t Gen\+Optimizer\+\_\+t\+::n\+\_\+cand}
Definition at line \mbox{\hyperlink{gen__optimizer_8h_source_l00321}{321}} of file \mbox{\hyperlink{gen__optimizer_8h_source}{gen\+\_\+optimizer.\+h}}.
\Hypertarget{struct_gen_optimizer__t_a8201f1eede36a2c04ec7b4caac7465c9}\index{GenOptimizer\_t@{GenOptimizer\_t}!n\_best@{n\_best}}
\index{n\_best@{n\_best}!GenOptimizer\_t@{GenOptimizer\_t}}
\doxysubsubsection{\texorpdfstring{n\_best}{n\_best}}
{\footnotesize\ttfamily \label{struct_gen_optimizer__t_a8201f1eede36a2c04ec7b4caac7465c9}
uint16\+\_\+t Gen\+Optimizer\+\_\+t\+::n\+\_\+best}
Definition at line \mbox{\hyperlink{gen__optimizer_8h_source_l00322}{322}} of file \mbox{\hyperlink{gen__optimizer_8h_source}{gen\+\_\+optimizer.\+h}}.
\Hypertarget{struct_gen_optimizer__t_ad4dc0e53b3ca6bf2a642dfe7a1d1f26c}\index{GenOptimizer\_t@{GenOptimizer\_t}!mutation\_amp@{mutation\_amp}}
\index{mutation\_amp@{mutation\_amp}!GenOptimizer\_t@{GenOptimizer\_t}}
\doxysubsubsection{\texorpdfstring{mutation\_amp}{mutation\_amp}}
{\footnotesize\ttfamily \label{struct_gen_optimizer__t_ad4dc0e53b3ca6bf2a642dfe7a1d1f26c}
float Gen\+Optimizer\+\_\+t\+::mutation\+\_\+amp}
Definition at line \mbox{\hyperlink{gen__optimizer_8h_source_l00323}{323}} of file \mbox{\hyperlink{gen__optimizer_8h_source}{gen\+\_\+optimizer.\+h}}.
\Hypertarget{struct_gen_optimizer__t_a3e82afdb058ce54a227d63bd498ea8cf}\index{GenOptimizer\_t@{GenOptimizer\_t}!loss@{loss}}
\index{loss@{loss}!GenOptimizer\_t@{GenOptimizer\_t}}
\doxysubsubsection{\texorpdfstring{loss}{loss}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily \label{struct_gen_optimizer__t_a3e82afdb058ce54a227d63bd498ea8cf}
float Gen\+Optimizer\+\_\+t\+::loss\mbox{[}0\mbox{]}}
Definition at line \mbox{\hyperlink{gen__optimizer_8h_source_l00324}{324}} of file \mbox{\hyperlink{gen__optimizer_8h_source}{gen\+\_\+optimizer.\+h}}.
\Hypertarget{struct_gen_optimizer__t_a758f8ed0ea12dc5c91b311c18fc776f8}\index{GenOptimizer\_t@{GenOptimizer\_t}!candidates@{candidates}}
\index{candidates@{candidates}!GenOptimizer\_t@{GenOptimizer\_t}}
\doxysubsubsection{\texorpdfstring{candidates}{candidates}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily \label{struct_gen_optimizer__t_a758f8ed0ea12dc5c91b311c18fc776f8}
float Gen\+Optimizer\+\_\+t\+::candidates\mbox{[}0\mbox{]}\mbox{[}0\mbox{]}}
Definition at line \mbox{\hyperlink{gen__optimizer_8h_source_l00325}{325}} of file \mbox{\hyperlink{gen__optimizer_8h_source}{gen\+\_\+optimizer.\+h}}.
\Hypertarget{struct_gen_optimizer__t_afde03f5cff5148f0246b4e2c5f5c4367}\index{GenOptimizer\_t@{GenOptimizer\_t}!iq\_mutation@{iq\_mutation}}
\index{iq\_mutation@{iq\_mutation}!GenOptimizer\_t@{GenOptimizer\_t}}
\doxysubsubsection{\texorpdfstring{iq\_mutation}{iq\_mutation}}
{\footnotesize\ttfamily \label{struct_gen_optimizer__t_afde03f5cff5148f0246b4e2c5f5c4367}
uint16\+\_\+t Gen\+Optimizer\+\_\+t\+::iq\+\_\+mutation}
Definition at line \mbox{\hyperlink{____mylibs__include_8h_source_l00084}{84}} of file \mbox{\hyperlink{____mylibs__include_8h_source}{\+\_\+\+\_\+mylibs\+\_\+include.\+h}}.
\Hypertarget{struct_gen_optimizer__t_a4554e609bbec5ede27719da81699dd1a}\index{GenOptimizer\_t@{GenOptimizer\_t}!loss@{loss}}
\index{loss@{loss}!GenOptimizer\_t@{GenOptimizer\_t}}
\doxysubsubsection{\texorpdfstring{loss}{loss}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily \label{struct_gen_optimizer__t_a4554e609bbec5ede27719da81699dd1a}
int32\+\_\+t Gen\+Optimizer\+\_\+t\+::loss\mbox{[}0\mbox{]}}
Definition at line \mbox{\hyperlink{____mylibs__include_8h_source_l00085}{85}} of file \mbox{\hyperlink{____mylibs__include_8h_source}{\+\_\+\+\_\+mylibs\+\_\+include.\+h}}.
\Hypertarget{struct_gen_optimizer__t_a2e879ebe62d9fe8ba1cb824cca040845}\index{GenOptimizer\_t@{GenOptimizer\_t}!candidates@{candidates}}
\index{candidates@{candidates}!GenOptimizer\_t@{GenOptimizer\_t}}
\doxysubsubsection{\texorpdfstring{candidates}{candidates}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily \label{struct_gen_optimizer__t_a2e879ebe62d9fe8ba1cb824cca040845}
int32\+\_\+t Gen\+Optimizer\+\_\+t\+::candidates\mbox{[}0\mbox{]}\mbox{[}0\mbox{]}}
Definition at line \mbox{\hyperlink{____mylibs__include_8h_source_l00086}{86}} of file \mbox{\hyperlink{____mylibs__include_8h_source}{\+\_\+\+\_\+mylibs\+\_\+include.\+h}}.
The documentation for this struct was generated from the following files\+:\begin{DoxyCompactItemize}
\item
E\+:/.\+WORK/\+STM32/\+STM\+\_\+\+Libs/\+STM32\+\_\+\+Extended\+Libs/\+My\+Libs/\+Inc/\mbox{\hyperlink{gen__optimizer_8h}{gen\+\_\+optimizer.\+h}}\item
E\+:/.\+WORK/\+STM32/\+STM\+\_\+\+Libs/\+STM32\+\_\+\+Extended\+Libs/\+\_\+\+\_\+mylibs\+\_\+include.\+h\end{DoxyCompactItemize}

View File

@@ -0,0 +1,79 @@
\doxysection{RTT\+\_\+\+Flash\+Header\+\_\+t Struct Reference}
\hypertarget{struct_r_t_t___flash_header__t}{}\label{struct_r_t_t___flash_header__t}\index{RTT\_FlashHeader\_t@{RTT\_FlashHeader\_t}}
Структура RTT, которая будет положена в Flash.
{\ttfamily \#include $<$trace.\+h$>$}
\doxysubsubsection*{Public Attributes}
\begin{DoxyCompactItemize}
\item
uint32\+\_\+t \mbox{\hyperlink{struct_r_t_t___flash_header__t_a844ee5470a323a749856cbb7a682dc57}{tag}}
\begin{DoxyCompactList}\small\item\em Уникальный идентификатор буфера \end{DoxyCompactList}\item
uint32\+\_\+t \mbox{\hyperlink{struct_r_t_t___flash_header__t_afd1a5c51af6f97d170c2ccbbe3e34699}{size}}
\begin{DoxyCompactList}\small\item\em Размер данных \end{DoxyCompactList}\item
char \mbox{\hyperlink{struct_r_t_t___flash_header__t_a1100df39b0eccb835946f4c13de23b4e}{data}} \mbox{[}\mbox{\hyperlink{group___t_r_a_c_e___c_o_n_f_i_g_ga501312b24e322de4dd6755ad442f0ba3}{RTT\+\_\+\+FLASH\+\_\+\+BUFFER\+\_\+\+SIZE}}\mbox{]}
\begin{DoxyCompactList}\small\item\em Буфер RTT. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection{Detailed Description}
Структура RTT, которая будет положена в Flash.
Definition at line \mbox{\hyperlink{trace_8h_source_l00192}{192}} of file \mbox{\hyperlink{trace_8h_source}{trace.\+h}}.
\label{doc-variable-members}
\Hypertarget{struct_r_t_t___flash_header__t_doc-variable-members}
\doxysubsection{Member Data Documentation}
\Hypertarget{struct_r_t_t___flash_header__t_a844ee5470a323a749856cbb7a682dc57}\index{RTT\_FlashHeader\_t@{RTT\_FlashHeader\_t}!tag@{tag}}
\index{tag@{tag}!RTT\_FlashHeader\_t@{RTT\_FlashHeader\_t}}
\doxysubsubsection{\texorpdfstring{tag}{tag}}
{\footnotesize\ttfamily \label{struct_r_t_t___flash_header__t_a844ee5470a323a749856cbb7a682dc57}
uint32\+\_\+t RTT\+\_\+\+Flash\+Header\+\_\+t\+::tag}
Уникальный идентификатор буфера
Definition at line \mbox{\hyperlink{trace_8h_source_l00193}{193}} of file \mbox{\hyperlink{trace_8h_source}{trace.\+h}}.
\Hypertarget{struct_r_t_t___flash_header__t_afd1a5c51af6f97d170c2ccbbe3e34699}\index{RTT\_FlashHeader\_t@{RTT\_FlashHeader\_t}!size@{size}}
\index{size@{size}!RTT\_FlashHeader\_t@{RTT\_FlashHeader\_t}}
\doxysubsubsection{\texorpdfstring{size}{size}}
{\footnotesize\ttfamily \label{struct_r_t_t___flash_header__t_afd1a5c51af6f97d170c2ccbbe3e34699}
uint32\+\_\+t RTT\+\_\+\+Flash\+Header\+\_\+t\+::size}
Размер данных
Definition at line \mbox{\hyperlink{trace_8h_source_l00194}{194}} of file \mbox{\hyperlink{trace_8h_source}{trace.\+h}}.
\Hypertarget{struct_r_t_t___flash_header__t_a1100df39b0eccb835946f4c13de23b4e}\index{RTT\_FlashHeader\_t@{RTT\_FlashHeader\_t}!data@{data}}
\index{data@{data}!RTT\_FlashHeader\_t@{RTT\_FlashHeader\_t}}
\doxysubsubsection{\texorpdfstring{data}{data}}
{\footnotesize\ttfamily \label{struct_r_t_t___flash_header__t_a1100df39b0eccb835946f4c13de23b4e}
char RTT\+\_\+\+Flash\+Header\+\_\+t\+::data\mbox{[}\mbox{\hyperlink{group___t_r_a_c_e___c_o_n_f_i_g_ga501312b24e322de4dd6755ad442f0ba3}{RTT\+\_\+\+FLASH\+\_\+\+BUFFER\+\_\+\+SIZE}}\mbox{]}}
Буфер RTT.
Definition at line \mbox{\hyperlink{trace_8h_source_l00195}{195}} of file \mbox{\hyperlink{trace_8h_source}{trace.\+h}}.
The documentation for this struct was generated from the following file\+:\begin{DoxyCompactItemize}
\item
E\+:/.\+WORK/\+STM32/\+STM\+\_\+\+Libs/\+STM32\+\_\+\+Extended\+Libs/\+My\+Libs/\+Inc/\mbox{\hyperlink{trace_8h}{trace.\+h}}\end{DoxyCompactItemize}

View File

@@ -0,0 +1,94 @@
\doxysection{SEGGER\+\_\+\+RTT\+\_\+\+BUFFER\+\_\+\+DOWN Struct Reference}
\hypertarget{struct_s_e_g_g_e_r___r_t_t___b_u_f_f_e_r___d_o_w_n}{}\label{struct_s_e_g_g_e_r___r_t_t___b_u_f_f_e_r___d_o_w_n}\index{SEGGER\_RTT\_BUFFER\_DOWN@{SEGGER\_RTT\_BUFFER\_DOWN}}
\doxysubsubsection*{Public Attributes}
\begin{DoxyCompactItemize}
\item
const char \texorpdfstring{$\ast$}{*} \mbox{\hyperlink{struct_s_e_g_g_e_r___r_t_t___b_u_f_f_e_r___d_o_w_n_a5cca21c6a1efeb5fb1c8a4fbf9fcdf84}{s\+Name}}
\item
char \texorpdfstring{$\ast$}{*} \mbox{\hyperlink{struct_s_e_g_g_e_r___r_t_t___b_u_f_f_e_r___d_o_w_n_ada5ecc573d5e0ae1a0f813a1c24156f7}{p\+Buffer}}
\item
unsigned \mbox{\hyperlink{struct_s_e_g_g_e_r___r_t_t___b_u_f_f_e_r___d_o_w_n_ab9162c01b40361abcfe36898c9670741}{Size\+Of\+Buffer}}
\item
volatile unsigned \mbox{\hyperlink{struct_s_e_g_g_e_r___r_t_t___b_u_f_f_e_r___d_o_w_n_a3cb6a09b71f1910b8eb92f97f1c1ace0}{Wr\+Off}}
\item
unsigned \mbox{\hyperlink{struct_s_e_g_g_e_r___r_t_t___b_u_f_f_e_r___d_o_w_n_ae16253ec1c01af1ea4da2ccdb4b2fcbc}{Rd\+Off}}
\item
unsigned \mbox{\hyperlink{struct_s_e_g_g_e_r___r_t_t___b_u_f_f_e_r___d_o_w_n_a9b60add7975e43598a08d5cf528245f7}{Flags}}
\end{DoxyCompactItemize}
\doxysubsection{Detailed Description}
Definition at line \mbox{\hyperlink{_s_e_g_g_e_r___r_t_t_8h_source_l00330}{330}} of file \mbox{\hyperlink{_s_e_g_g_e_r___r_t_t_8h_source}{SEGGER\+\_\+\+RTT.\+h}}.
\label{doc-variable-members}
\Hypertarget{struct_s_e_g_g_e_r___r_t_t___b_u_f_f_e_r___d_o_w_n_doc-variable-members}
\doxysubsection{Member Data Documentation}
\Hypertarget{struct_s_e_g_g_e_r___r_t_t___b_u_f_f_e_r___d_o_w_n_a5cca21c6a1efeb5fb1c8a4fbf9fcdf84}\index{SEGGER\_RTT\_BUFFER\_DOWN@{SEGGER\_RTT\_BUFFER\_DOWN}!sName@{sName}}
\index{sName@{sName}!SEGGER\_RTT\_BUFFER\_DOWN@{SEGGER\_RTT\_BUFFER\_DOWN}}
\doxysubsubsection{\texorpdfstring{sName}{sName}}
{\footnotesize\ttfamily \label{struct_s_e_g_g_e_r___r_t_t___b_u_f_f_e_r___d_o_w_n_a5cca21c6a1efeb5fb1c8a4fbf9fcdf84}
const char\texorpdfstring{$\ast$}{*} SEGGER\+\_\+\+RTT\+\_\+\+BUFFER\+\_\+\+DOWN\+::s\+Name}
Definition at line \mbox{\hyperlink{_s_e_g_g_e_r___r_t_t_8h_source_l00331}{331}} of file \mbox{\hyperlink{_s_e_g_g_e_r___r_t_t_8h_source}{SEGGER\+\_\+\+RTT.\+h}}.
\Hypertarget{struct_s_e_g_g_e_r___r_t_t___b_u_f_f_e_r___d_o_w_n_ada5ecc573d5e0ae1a0f813a1c24156f7}\index{SEGGER\_RTT\_BUFFER\_DOWN@{SEGGER\_RTT\_BUFFER\_DOWN}!pBuffer@{pBuffer}}
\index{pBuffer@{pBuffer}!SEGGER\_RTT\_BUFFER\_DOWN@{SEGGER\_RTT\_BUFFER\_DOWN}}
\doxysubsubsection{\texorpdfstring{pBuffer}{pBuffer}}
{\footnotesize\ttfamily \label{struct_s_e_g_g_e_r___r_t_t___b_u_f_f_e_r___d_o_w_n_ada5ecc573d5e0ae1a0f813a1c24156f7}
char\texorpdfstring{$\ast$}{*} SEGGER\+\_\+\+RTT\+\_\+\+BUFFER\+\_\+\+DOWN\+::p\+Buffer}
Definition at line \mbox{\hyperlink{_s_e_g_g_e_r___r_t_t_8h_source_l00332}{332}} of file \mbox{\hyperlink{_s_e_g_g_e_r___r_t_t_8h_source}{SEGGER\+\_\+\+RTT.\+h}}.
\Hypertarget{struct_s_e_g_g_e_r___r_t_t___b_u_f_f_e_r___d_o_w_n_ab9162c01b40361abcfe36898c9670741}\index{SEGGER\_RTT\_BUFFER\_DOWN@{SEGGER\_RTT\_BUFFER\_DOWN}!SizeOfBuffer@{SizeOfBuffer}}
\index{SizeOfBuffer@{SizeOfBuffer}!SEGGER\_RTT\_BUFFER\_DOWN@{SEGGER\_RTT\_BUFFER\_DOWN}}
\doxysubsubsection{\texorpdfstring{SizeOfBuffer}{SizeOfBuffer}}
{\footnotesize\ttfamily \label{struct_s_e_g_g_e_r___r_t_t___b_u_f_f_e_r___d_o_w_n_ab9162c01b40361abcfe36898c9670741}
unsigned SEGGER\+\_\+\+RTT\+\_\+\+BUFFER\+\_\+\+DOWN\+::\+Size\+Of\+Buffer}
Definition at line \mbox{\hyperlink{_s_e_g_g_e_r___r_t_t_8h_source_l00333}{333}} of file \mbox{\hyperlink{_s_e_g_g_e_r___r_t_t_8h_source}{SEGGER\+\_\+\+RTT.\+h}}.
\Hypertarget{struct_s_e_g_g_e_r___r_t_t___b_u_f_f_e_r___d_o_w_n_a3cb6a09b71f1910b8eb92f97f1c1ace0}\index{SEGGER\_RTT\_BUFFER\_DOWN@{SEGGER\_RTT\_BUFFER\_DOWN}!WrOff@{WrOff}}
\index{WrOff@{WrOff}!SEGGER\_RTT\_BUFFER\_DOWN@{SEGGER\_RTT\_BUFFER\_DOWN}}
\doxysubsubsection{\texorpdfstring{WrOff}{WrOff}}
{\footnotesize\ttfamily \label{struct_s_e_g_g_e_r___r_t_t___b_u_f_f_e_r___d_o_w_n_a3cb6a09b71f1910b8eb92f97f1c1ace0}
volatile unsigned SEGGER\+\_\+\+RTT\+\_\+\+BUFFER\+\_\+\+DOWN\+::\+Wr\+Off}
Definition at line \mbox{\hyperlink{_s_e_g_g_e_r___r_t_t_8h_source_l00334}{334}} of file \mbox{\hyperlink{_s_e_g_g_e_r___r_t_t_8h_source}{SEGGER\+\_\+\+RTT.\+h}}.
\Hypertarget{struct_s_e_g_g_e_r___r_t_t___b_u_f_f_e_r___d_o_w_n_ae16253ec1c01af1ea4da2ccdb4b2fcbc}\index{SEGGER\_RTT\_BUFFER\_DOWN@{SEGGER\_RTT\_BUFFER\_DOWN}!RdOff@{RdOff}}
\index{RdOff@{RdOff}!SEGGER\_RTT\_BUFFER\_DOWN@{SEGGER\_RTT\_BUFFER\_DOWN}}
\doxysubsubsection{\texorpdfstring{RdOff}{RdOff}}
{\footnotesize\ttfamily \label{struct_s_e_g_g_e_r___r_t_t___b_u_f_f_e_r___d_o_w_n_ae16253ec1c01af1ea4da2ccdb4b2fcbc}
unsigned SEGGER\+\_\+\+RTT\+\_\+\+BUFFER\+\_\+\+DOWN\+::\+Rd\+Off}
Definition at line \mbox{\hyperlink{_s_e_g_g_e_r___r_t_t_8h_source_l00335}{335}} of file \mbox{\hyperlink{_s_e_g_g_e_r___r_t_t_8h_source}{SEGGER\+\_\+\+RTT.\+h}}.
\Hypertarget{struct_s_e_g_g_e_r___r_t_t___b_u_f_f_e_r___d_o_w_n_a9b60add7975e43598a08d5cf528245f7}\index{SEGGER\_RTT\_BUFFER\_DOWN@{SEGGER\_RTT\_BUFFER\_DOWN}!Flags@{Flags}}
\index{Flags@{Flags}!SEGGER\_RTT\_BUFFER\_DOWN@{SEGGER\_RTT\_BUFFER\_DOWN}}
\doxysubsubsection{\texorpdfstring{Flags}{Flags}}
{\footnotesize\ttfamily \label{struct_s_e_g_g_e_r___r_t_t___b_u_f_f_e_r___d_o_w_n_a9b60add7975e43598a08d5cf528245f7}
unsigned SEGGER\+\_\+\+RTT\+\_\+\+BUFFER\+\_\+\+DOWN\+::\+Flags}
Definition at line \mbox{\hyperlink{_s_e_g_g_e_r___r_t_t_8h_source_l00336}{336}} of file \mbox{\hyperlink{_s_e_g_g_e_r___r_t_t_8h_source}{SEGGER\+\_\+\+RTT.\+h}}.
The documentation for this struct was generated from the following file\+:\begin{DoxyCompactItemize}
\item
E\+:/.\+WORK/\+STM32/\+STM\+\_\+\+Libs/\+STM32\+\_\+\+Extended\+Libs/\+RTT/SEGGER\+\_\+\+RTT.\+h\end{DoxyCompactItemize}

View File

@@ -0,0 +1,94 @@
\doxysection{SEGGER\+\_\+\+RTT\+\_\+\+BUFFER\+\_\+\+UP Struct Reference}
\hypertarget{struct_s_e_g_g_e_r___r_t_t___b_u_f_f_e_r___u_p}{}\label{struct_s_e_g_g_e_r___r_t_t___b_u_f_f_e_r___u_p}\index{SEGGER\_RTT\_BUFFER\_UP@{SEGGER\_RTT\_BUFFER\_UP}}
\doxysubsubsection*{Public Attributes}
\begin{DoxyCompactItemize}
\item
const char \texorpdfstring{$\ast$}{*} \mbox{\hyperlink{struct_s_e_g_g_e_r___r_t_t___b_u_f_f_e_r___u_p_a6ca6c6087f49fc73cf9c60fa249db581}{s\+Name}}
\item
char \texorpdfstring{$\ast$}{*} \mbox{\hyperlink{struct_s_e_g_g_e_r___r_t_t___b_u_f_f_e_r___u_p_a55af663660f355dd66148ea3a12086cb}{p\+Buffer}}
\item
unsigned \mbox{\hyperlink{struct_s_e_g_g_e_r___r_t_t___b_u_f_f_e_r___u_p_a723612a58edf1812316c6d68b1a5e10a}{Size\+Of\+Buffer}}
\item
unsigned \mbox{\hyperlink{struct_s_e_g_g_e_r___r_t_t___b_u_f_f_e_r___u_p_add452c6f708e96f6bd6bf200736c2d0a}{Wr\+Off}}
\item
volatile unsigned \mbox{\hyperlink{struct_s_e_g_g_e_r___r_t_t___b_u_f_f_e_r___u_p_a5656936cd59a5ddab55af1aa1467b67f}{Rd\+Off}}
\item
unsigned \mbox{\hyperlink{struct_s_e_g_g_e_r___r_t_t___b_u_f_f_e_r___u_p_a1909346568b558be56c77e2c6e79882b}{Flags}}
\end{DoxyCompactItemize}
\doxysubsection{Detailed Description}
Definition at line \mbox{\hyperlink{_s_e_g_g_e_r___r_t_t_8h_source_l00317}{317}} of file \mbox{\hyperlink{_s_e_g_g_e_r___r_t_t_8h_source}{SEGGER\+\_\+\+RTT.\+h}}.
\label{doc-variable-members}
\Hypertarget{struct_s_e_g_g_e_r___r_t_t___b_u_f_f_e_r___u_p_doc-variable-members}
\doxysubsection{Member Data Documentation}
\Hypertarget{struct_s_e_g_g_e_r___r_t_t___b_u_f_f_e_r___u_p_a6ca6c6087f49fc73cf9c60fa249db581}\index{SEGGER\_RTT\_BUFFER\_UP@{SEGGER\_RTT\_BUFFER\_UP}!sName@{sName}}
\index{sName@{sName}!SEGGER\_RTT\_BUFFER\_UP@{SEGGER\_RTT\_BUFFER\_UP}}
\doxysubsubsection{\texorpdfstring{sName}{sName}}
{\footnotesize\ttfamily \label{struct_s_e_g_g_e_r___r_t_t___b_u_f_f_e_r___u_p_a6ca6c6087f49fc73cf9c60fa249db581}
const char\texorpdfstring{$\ast$}{*} SEGGER\+\_\+\+RTT\+\_\+\+BUFFER\+\_\+\+UP\+::s\+Name}
Definition at line \mbox{\hyperlink{_s_e_g_g_e_r___r_t_t_8h_source_l00318}{318}} of file \mbox{\hyperlink{_s_e_g_g_e_r___r_t_t_8h_source}{SEGGER\+\_\+\+RTT.\+h}}.
\Hypertarget{struct_s_e_g_g_e_r___r_t_t___b_u_f_f_e_r___u_p_a55af663660f355dd66148ea3a12086cb}\index{SEGGER\_RTT\_BUFFER\_UP@{SEGGER\_RTT\_BUFFER\_UP}!pBuffer@{pBuffer}}
\index{pBuffer@{pBuffer}!SEGGER\_RTT\_BUFFER\_UP@{SEGGER\_RTT\_BUFFER\_UP}}
\doxysubsubsection{\texorpdfstring{pBuffer}{pBuffer}}
{\footnotesize\ttfamily \label{struct_s_e_g_g_e_r___r_t_t___b_u_f_f_e_r___u_p_a55af663660f355dd66148ea3a12086cb}
char\texorpdfstring{$\ast$}{*} SEGGER\+\_\+\+RTT\+\_\+\+BUFFER\+\_\+\+UP\+::p\+Buffer}
Definition at line \mbox{\hyperlink{_s_e_g_g_e_r___r_t_t_8h_source_l00319}{319}} of file \mbox{\hyperlink{_s_e_g_g_e_r___r_t_t_8h_source}{SEGGER\+\_\+\+RTT.\+h}}.
\Hypertarget{struct_s_e_g_g_e_r___r_t_t___b_u_f_f_e_r___u_p_a723612a58edf1812316c6d68b1a5e10a}\index{SEGGER\_RTT\_BUFFER\_UP@{SEGGER\_RTT\_BUFFER\_UP}!SizeOfBuffer@{SizeOfBuffer}}
\index{SizeOfBuffer@{SizeOfBuffer}!SEGGER\_RTT\_BUFFER\_UP@{SEGGER\_RTT\_BUFFER\_UP}}
\doxysubsubsection{\texorpdfstring{SizeOfBuffer}{SizeOfBuffer}}
{\footnotesize\ttfamily \label{struct_s_e_g_g_e_r___r_t_t___b_u_f_f_e_r___u_p_a723612a58edf1812316c6d68b1a5e10a}
unsigned SEGGER\+\_\+\+RTT\+\_\+\+BUFFER\+\_\+\+UP\+::\+Size\+Of\+Buffer}
Definition at line \mbox{\hyperlink{_s_e_g_g_e_r___r_t_t_8h_source_l00320}{320}} of file \mbox{\hyperlink{_s_e_g_g_e_r___r_t_t_8h_source}{SEGGER\+\_\+\+RTT.\+h}}.
\Hypertarget{struct_s_e_g_g_e_r___r_t_t___b_u_f_f_e_r___u_p_add452c6f708e96f6bd6bf200736c2d0a}\index{SEGGER\_RTT\_BUFFER\_UP@{SEGGER\_RTT\_BUFFER\_UP}!WrOff@{WrOff}}
\index{WrOff@{WrOff}!SEGGER\_RTT\_BUFFER\_UP@{SEGGER\_RTT\_BUFFER\_UP}}
\doxysubsubsection{\texorpdfstring{WrOff}{WrOff}}
{\footnotesize\ttfamily \label{struct_s_e_g_g_e_r___r_t_t___b_u_f_f_e_r___u_p_add452c6f708e96f6bd6bf200736c2d0a}
unsigned SEGGER\+\_\+\+RTT\+\_\+\+BUFFER\+\_\+\+UP\+::\+Wr\+Off}
Definition at line \mbox{\hyperlink{_s_e_g_g_e_r___r_t_t_8h_source_l00321}{321}} of file \mbox{\hyperlink{_s_e_g_g_e_r___r_t_t_8h_source}{SEGGER\+\_\+\+RTT.\+h}}.
\Hypertarget{struct_s_e_g_g_e_r___r_t_t___b_u_f_f_e_r___u_p_a5656936cd59a5ddab55af1aa1467b67f}\index{SEGGER\_RTT\_BUFFER\_UP@{SEGGER\_RTT\_BUFFER\_UP}!RdOff@{RdOff}}
\index{RdOff@{RdOff}!SEGGER\_RTT\_BUFFER\_UP@{SEGGER\_RTT\_BUFFER\_UP}}
\doxysubsubsection{\texorpdfstring{RdOff}{RdOff}}
{\footnotesize\ttfamily \label{struct_s_e_g_g_e_r___r_t_t___b_u_f_f_e_r___u_p_a5656936cd59a5ddab55af1aa1467b67f}
volatile unsigned SEGGER\+\_\+\+RTT\+\_\+\+BUFFER\+\_\+\+UP\+::\+Rd\+Off}
Definition at line \mbox{\hyperlink{_s_e_g_g_e_r___r_t_t_8h_source_l00322}{322}} of file \mbox{\hyperlink{_s_e_g_g_e_r___r_t_t_8h_source}{SEGGER\+\_\+\+RTT.\+h}}.
\Hypertarget{struct_s_e_g_g_e_r___r_t_t___b_u_f_f_e_r___u_p_a1909346568b558be56c77e2c6e79882b}\index{SEGGER\_RTT\_BUFFER\_UP@{SEGGER\_RTT\_BUFFER\_UP}!Flags@{Flags}}
\index{Flags@{Flags}!SEGGER\_RTT\_BUFFER\_UP@{SEGGER\_RTT\_BUFFER\_UP}}
\doxysubsubsection{\texorpdfstring{Flags}{Flags}}
{\footnotesize\ttfamily \label{struct_s_e_g_g_e_r___r_t_t___b_u_f_f_e_r___u_p_a1909346568b558be56c77e2c6e79882b}
unsigned SEGGER\+\_\+\+RTT\+\_\+\+BUFFER\+\_\+\+UP\+::\+Flags}
Definition at line \mbox{\hyperlink{_s_e_g_g_e_r___r_t_t_8h_source_l00323}{323}} of file \mbox{\hyperlink{_s_e_g_g_e_r___r_t_t_8h_source}{SEGGER\+\_\+\+RTT.\+h}}.
The documentation for this struct was generated from the following file\+:\begin{DoxyCompactItemize}
\item
E\+:/.\+WORK/\+STM32/\+STM\+\_\+\+Libs/\+STM32\+\_\+\+Extended\+Libs/\+RTT/SEGGER\+\_\+\+RTT.\+h\end{DoxyCompactItemize}

View File

@@ -0,0 +1,92 @@
\doxysection{SEGGER\+\_\+\+RTT\+\_\+\+CB Struct Reference}
\hypertarget{struct_s_e_g_g_e_r___r_t_t___c_b}{}\label{struct_s_e_g_g_e_r___r_t_t___c_b}\index{SEGGER\_RTT\_CB@{SEGGER\_RTT\_CB}}
Collaboration diagram for SEGGER\+\_\+\+RTT\+\_\+\+CB\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{struct_s_e_g_g_e_r___r_t_t___c_b__coll__graph}
\end{center}
\end{figure}
\doxysubsubsection*{Public Attributes}
\begin{DoxyCompactItemize}
\item
char \mbox{\hyperlink{struct_s_e_g_g_e_r___r_t_t___c_b_af91aeb3c800fed5306a57f5b688888a9}{ac\+ID}} \mbox{[}16\mbox{]}
\item
int \mbox{\hyperlink{struct_s_e_g_g_e_r___r_t_t___c_b_ae8607ab235f59d17b0d471c19c294b03}{Max\+Num\+Up\+Buffers}}
\item
int \mbox{\hyperlink{struct_s_e_g_g_e_r___r_t_t___c_b_a62aaabc4dcc0cb4164c5f54da753d7e9}{Max\+Num\+Down\+Buffers}}
\item
\mbox{\hyperlink{struct_s_e_g_g_e_r___r_t_t___b_u_f_f_e_r___u_p}{SEGGER\+\_\+\+RTT\+\_\+\+BUFFER\+\_\+\+UP}} \mbox{\hyperlink{struct_s_e_g_g_e_r___r_t_t___c_b_af27ec025b21e2a8e42db0a19351cfff9}{a\+Up}} \mbox{[}SEGGER\+\_\+\+RTT\+\_\+\+MAX\+\_\+\+NUM\+\_\+\+UP\+\_\+\+BUFFERS\mbox{]}
\item
\mbox{\hyperlink{struct_s_e_g_g_e_r___r_t_t___b_u_f_f_e_r___d_o_w_n}{SEGGER\+\_\+\+RTT\+\_\+\+BUFFER\+\_\+\+DOWN}} \mbox{\hyperlink{struct_s_e_g_g_e_r___r_t_t___c_b_a459f2d8a20dced065dbd54afbdf434e5}{a\+Down}} \mbox{[}SEGGER\+\_\+\+RTT\+\_\+\+MAX\+\_\+\+NUM\+\_\+\+DOWN\+\_\+\+BUFFERS\mbox{]}
\end{DoxyCompactItemize}
\doxysubsection{Detailed Description}
Definition at line \mbox{\hyperlink{_s_e_g_g_e_r___r_t_t_8h_source_l00344}{344}} of file \mbox{\hyperlink{_s_e_g_g_e_r___r_t_t_8h_source}{SEGGER\+\_\+\+RTT.\+h}}.
\label{doc-variable-members}
\Hypertarget{struct_s_e_g_g_e_r___r_t_t___c_b_doc-variable-members}
\doxysubsection{Member Data Documentation}
\Hypertarget{struct_s_e_g_g_e_r___r_t_t___c_b_af91aeb3c800fed5306a57f5b688888a9}\index{SEGGER\_RTT\_CB@{SEGGER\_RTT\_CB}!acID@{acID}}
\index{acID@{acID}!SEGGER\_RTT\_CB@{SEGGER\_RTT\_CB}}
\doxysubsubsection{\texorpdfstring{acID}{acID}}
{\footnotesize\ttfamily \label{struct_s_e_g_g_e_r___r_t_t___c_b_af91aeb3c800fed5306a57f5b688888a9}
char SEGGER\+\_\+\+RTT\+\_\+\+CB\+::ac\+ID\mbox{[}16\mbox{]}}
Definition at line \mbox{\hyperlink{_s_e_g_g_e_r___r_t_t_8h_source_l00345}{345}} of file \mbox{\hyperlink{_s_e_g_g_e_r___r_t_t_8h_source}{SEGGER\+\_\+\+RTT.\+h}}.
\Hypertarget{struct_s_e_g_g_e_r___r_t_t___c_b_ae8607ab235f59d17b0d471c19c294b03}\index{SEGGER\_RTT\_CB@{SEGGER\_RTT\_CB}!MaxNumUpBuffers@{MaxNumUpBuffers}}
\index{MaxNumUpBuffers@{MaxNumUpBuffers}!SEGGER\_RTT\_CB@{SEGGER\_RTT\_CB}}
\doxysubsubsection{\texorpdfstring{MaxNumUpBuffers}{MaxNumUpBuffers}}
{\footnotesize\ttfamily \label{struct_s_e_g_g_e_r___r_t_t___c_b_ae8607ab235f59d17b0d471c19c294b03}
int SEGGER\+\_\+\+RTT\+\_\+\+CB\+::\+Max\+Num\+Up\+Buffers}
Definition at line \mbox{\hyperlink{_s_e_g_g_e_r___r_t_t_8h_source_l00346}{346}} of file \mbox{\hyperlink{_s_e_g_g_e_r___r_t_t_8h_source}{SEGGER\+\_\+\+RTT.\+h}}.
\Hypertarget{struct_s_e_g_g_e_r___r_t_t___c_b_a62aaabc4dcc0cb4164c5f54da753d7e9}\index{SEGGER\_RTT\_CB@{SEGGER\_RTT\_CB}!MaxNumDownBuffers@{MaxNumDownBuffers}}
\index{MaxNumDownBuffers@{MaxNumDownBuffers}!SEGGER\_RTT\_CB@{SEGGER\_RTT\_CB}}
\doxysubsubsection{\texorpdfstring{MaxNumDownBuffers}{MaxNumDownBuffers}}
{\footnotesize\ttfamily \label{struct_s_e_g_g_e_r___r_t_t___c_b_a62aaabc4dcc0cb4164c5f54da753d7e9}
int SEGGER\+\_\+\+RTT\+\_\+\+CB\+::\+Max\+Num\+Down\+Buffers}
Definition at line \mbox{\hyperlink{_s_e_g_g_e_r___r_t_t_8h_source_l00347}{347}} of file \mbox{\hyperlink{_s_e_g_g_e_r___r_t_t_8h_source}{SEGGER\+\_\+\+RTT.\+h}}.
\Hypertarget{struct_s_e_g_g_e_r___r_t_t___c_b_af27ec025b21e2a8e42db0a19351cfff9}\index{SEGGER\_RTT\_CB@{SEGGER\_RTT\_CB}!aUp@{aUp}}
\index{aUp@{aUp}!SEGGER\_RTT\_CB@{SEGGER\_RTT\_CB}}
\doxysubsubsection{\texorpdfstring{aUp}{aUp}}
{\footnotesize\ttfamily \label{struct_s_e_g_g_e_r___r_t_t___c_b_af27ec025b21e2a8e42db0a19351cfff9}
\mbox{\hyperlink{struct_s_e_g_g_e_r___r_t_t___b_u_f_f_e_r___u_p}{SEGGER\+\_\+\+RTT\+\_\+\+BUFFER\+\_\+\+UP}} SEGGER\+\_\+\+RTT\+\_\+\+CB\+::a\+Up\mbox{[}SEGGER\+\_\+\+RTT\+\_\+\+MAX\+\_\+\+NUM\+\_\+\+UP\+\_\+\+BUFFERS\mbox{]}}
Definition at line \mbox{\hyperlink{_s_e_g_g_e_r___r_t_t_8h_source_l00348}{348}} of file \mbox{\hyperlink{_s_e_g_g_e_r___r_t_t_8h_source}{SEGGER\+\_\+\+RTT.\+h}}.
\Hypertarget{struct_s_e_g_g_e_r___r_t_t___c_b_a459f2d8a20dced065dbd54afbdf434e5}\index{SEGGER\_RTT\_CB@{SEGGER\_RTT\_CB}!aDown@{aDown}}
\index{aDown@{aDown}!SEGGER\_RTT\_CB@{SEGGER\_RTT\_CB}}
\doxysubsubsection{\texorpdfstring{aDown}{aDown}}
{\footnotesize\ttfamily \label{struct_s_e_g_g_e_r___r_t_t___c_b_a459f2d8a20dced065dbd54afbdf434e5}
\mbox{\hyperlink{struct_s_e_g_g_e_r___r_t_t___b_u_f_f_e_r___d_o_w_n}{SEGGER\+\_\+\+RTT\+\_\+\+BUFFER\+\_\+\+DOWN}} SEGGER\+\_\+\+RTT\+\_\+\+CB\+::a\+Down\mbox{[}SEGGER\+\_\+\+RTT\+\_\+\+MAX\+\_\+\+NUM\+\_\+\+DOWN\+\_\+\+BUFFERS\mbox{]}}
Definition at line \mbox{\hyperlink{_s_e_g_g_e_r___r_t_t_8h_source_l00349}{349}} of file \mbox{\hyperlink{_s_e_g_g_e_r___r_t_t_8h_source}{SEGGER\+\_\+\+RTT.\+h}}.
The documentation for this struct was generated from the following file\+:\begin{DoxyCompactItemize}
\item
E\+:/.\+WORK/\+STM32/\+STM\+\_\+\+Libs/\+STM32\+\_\+\+Extended\+Libs/\+RTT/SEGGER\+\_\+\+RTT.\+h\end{DoxyCompactItemize}

View File

@@ -0,0 +1 @@
24224bac578793dc6abc7675d8c79818

View File

@@ -0,0 +1,82 @@
\doxysection{SEGGER\+\_\+\+RTT\+\_\+\+PRINTF\+\_\+\+DESC Struct Reference}
\hypertarget{struct_s_e_g_g_e_r___r_t_t___p_r_i_n_t_f___d_e_s_c}{}\label{struct_s_e_g_g_e_r___r_t_t___p_r_i_n_t_f___d_e_s_c}\index{SEGGER\_RTT\_PRINTF\_DESC@{SEGGER\_RTT\_PRINTF\_DESC}}
\doxysubsubsection*{Public Attributes}
\begin{DoxyCompactItemize}
\item
char \texorpdfstring{$\ast$}{*} \mbox{\hyperlink{struct_s_e_g_g_e_r___r_t_t___p_r_i_n_t_f___d_e_s_c_ab8724b23ebf34566d69eb6ed4a0b374e}{p\+Buffer}}
\item
unsigned \mbox{\hyperlink{struct_s_e_g_g_e_r___r_t_t___p_r_i_n_t_f___d_e_s_c_a26ff82b7970c500bb29f098cf49dd065}{Buffer\+Size}}
\item
unsigned \mbox{\hyperlink{struct_s_e_g_g_e_r___r_t_t___p_r_i_n_t_f___d_e_s_c_a65faff93dba548785741e95b5bd4e5b7}{Cnt}}
\item
int \mbox{\hyperlink{struct_s_e_g_g_e_r___r_t_t___p_r_i_n_t_f___d_e_s_c_a04a163688303b84088292b87423845ec}{Return\+Value}}
\item
unsigned \mbox{\hyperlink{struct_s_e_g_g_e_r___r_t_t___p_r_i_n_t_f___d_e_s_c_a843108780297879b7b99e4b31fc98463}{RTTBuffer\+Index}}
\end{DoxyCompactItemize}
\doxysubsection{Detailed Description}
Definition at line \mbox{\hyperlink{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00085}{85}} of file \mbox{\hyperlink{_s_e_g_g_e_r___r_t_t__printf_8c_source}{SEGGER\+\_\+\+RTT\+\_\+printf.\+c}}.
\label{doc-variable-members}
\Hypertarget{struct_s_e_g_g_e_r___r_t_t___p_r_i_n_t_f___d_e_s_c_doc-variable-members}
\doxysubsection{Member Data Documentation}
\Hypertarget{struct_s_e_g_g_e_r___r_t_t___p_r_i_n_t_f___d_e_s_c_ab8724b23ebf34566d69eb6ed4a0b374e}\index{SEGGER\_RTT\_PRINTF\_DESC@{SEGGER\_RTT\_PRINTF\_DESC}!pBuffer@{pBuffer}}
\index{pBuffer@{pBuffer}!SEGGER\_RTT\_PRINTF\_DESC@{SEGGER\_RTT\_PRINTF\_DESC}}
\doxysubsubsection{\texorpdfstring{pBuffer}{pBuffer}}
{\footnotesize\ttfamily \label{struct_s_e_g_g_e_r___r_t_t___p_r_i_n_t_f___d_e_s_c_ab8724b23ebf34566d69eb6ed4a0b374e}
char\texorpdfstring{$\ast$}{*} SEGGER\+\_\+\+RTT\+\_\+\+PRINTF\+\_\+\+DESC\+::p\+Buffer}
Definition at line \mbox{\hyperlink{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00086}{86}} of file \mbox{\hyperlink{_s_e_g_g_e_r___r_t_t__printf_8c_source}{SEGGER\+\_\+\+RTT\+\_\+printf.\+c}}.
\Hypertarget{struct_s_e_g_g_e_r___r_t_t___p_r_i_n_t_f___d_e_s_c_a26ff82b7970c500bb29f098cf49dd065}\index{SEGGER\_RTT\_PRINTF\_DESC@{SEGGER\_RTT\_PRINTF\_DESC}!BufferSize@{BufferSize}}
\index{BufferSize@{BufferSize}!SEGGER\_RTT\_PRINTF\_DESC@{SEGGER\_RTT\_PRINTF\_DESC}}
\doxysubsubsection{\texorpdfstring{BufferSize}{BufferSize}}
{\footnotesize\ttfamily \label{struct_s_e_g_g_e_r___r_t_t___p_r_i_n_t_f___d_e_s_c_a26ff82b7970c500bb29f098cf49dd065}
unsigned SEGGER\+\_\+\+RTT\+\_\+\+PRINTF\+\_\+\+DESC\+::\+Buffer\+Size}
Definition at line \mbox{\hyperlink{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00087}{87}} of file \mbox{\hyperlink{_s_e_g_g_e_r___r_t_t__printf_8c_source}{SEGGER\+\_\+\+RTT\+\_\+printf.\+c}}.
\Hypertarget{struct_s_e_g_g_e_r___r_t_t___p_r_i_n_t_f___d_e_s_c_a65faff93dba548785741e95b5bd4e5b7}\index{SEGGER\_RTT\_PRINTF\_DESC@{SEGGER\_RTT\_PRINTF\_DESC}!Cnt@{Cnt}}
\index{Cnt@{Cnt}!SEGGER\_RTT\_PRINTF\_DESC@{SEGGER\_RTT\_PRINTF\_DESC}}
\doxysubsubsection{\texorpdfstring{Cnt}{Cnt}}
{\footnotesize\ttfamily \label{struct_s_e_g_g_e_r___r_t_t___p_r_i_n_t_f___d_e_s_c_a65faff93dba548785741e95b5bd4e5b7}
unsigned SEGGER\+\_\+\+RTT\+\_\+\+PRINTF\+\_\+\+DESC\+::\+Cnt}
Definition at line \mbox{\hyperlink{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00088}{88}} of file \mbox{\hyperlink{_s_e_g_g_e_r___r_t_t__printf_8c_source}{SEGGER\+\_\+\+RTT\+\_\+printf.\+c}}.
\Hypertarget{struct_s_e_g_g_e_r___r_t_t___p_r_i_n_t_f___d_e_s_c_a04a163688303b84088292b87423845ec}\index{SEGGER\_RTT\_PRINTF\_DESC@{SEGGER\_RTT\_PRINTF\_DESC}!ReturnValue@{ReturnValue}}
\index{ReturnValue@{ReturnValue}!SEGGER\_RTT\_PRINTF\_DESC@{SEGGER\_RTT\_PRINTF\_DESC}}
\doxysubsubsection{\texorpdfstring{ReturnValue}{ReturnValue}}
{\footnotesize\ttfamily \label{struct_s_e_g_g_e_r___r_t_t___p_r_i_n_t_f___d_e_s_c_a04a163688303b84088292b87423845ec}
int SEGGER\+\_\+\+RTT\+\_\+\+PRINTF\+\_\+\+DESC\+::\+Return\+Value}
Definition at line \mbox{\hyperlink{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00090}{90}} of file \mbox{\hyperlink{_s_e_g_g_e_r___r_t_t__printf_8c_source}{SEGGER\+\_\+\+RTT\+\_\+printf.\+c}}.
\Hypertarget{struct_s_e_g_g_e_r___r_t_t___p_r_i_n_t_f___d_e_s_c_a843108780297879b7b99e4b31fc98463}\index{SEGGER\_RTT\_PRINTF\_DESC@{SEGGER\_RTT\_PRINTF\_DESC}!RTTBufferIndex@{RTTBufferIndex}}
\index{RTTBufferIndex@{RTTBufferIndex}!SEGGER\_RTT\_PRINTF\_DESC@{SEGGER\_RTT\_PRINTF\_DESC}}
\doxysubsubsection{\texorpdfstring{RTTBufferIndex}{RTTBufferIndex}}
{\footnotesize\ttfamily \label{struct_s_e_g_g_e_r___r_t_t___p_r_i_n_t_f___d_e_s_c_a843108780297879b7b99e4b31fc98463}
unsigned SEGGER\+\_\+\+RTT\+\_\+\+PRINTF\+\_\+\+DESC\+::\+RTTBuffer\+Index}
Definition at line \mbox{\hyperlink{_s_e_g_g_e_r___r_t_t__printf_8c_source_l00092}{92}} of file \mbox{\hyperlink{_s_e_g_g_e_r___r_t_t__printf_8c_source}{SEGGER\+\_\+\+RTT\+\_\+printf.\+c}}.
The documentation for this struct was generated from the following file\+:\begin{DoxyCompactItemize}
\item
E\+:/.\+WORK/\+STM32/\+STM\+\_\+\+Libs/\+STM32\+\_\+\+Extended\+Libs/\+RTT/SEGGER\+\_\+\+RTT\+\_\+printf.\+c\end{DoxyCompactItemize}

File diff suppressed because it is too large Load Diff

Some files were not shown because too many files have changed in this diff Show More