\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}}.

