MyLibs 1.0
Расширенные библиотеки для STM32
Loading...
Searching...
No Matches
Flash RTT Buffer

Макросы и функции для сохранения/чтения RTT буфера в Flash. More...

Collaboration diagram for Flash RTT Buffer:

Classes

struct  RTT_FlashHeader_t
 Структура RTT, которая будет положена в Flash. More...

Functions

__STATIC_FORCEINLINE void RTT_FlashPrepare (void)
 Подготовка Flash к записи
__STATIC_FORCEINLINE int RTT_SaveToFlash (uint32_t tag, uint32_t tail_size)
 Сохраняет последние символы RTT-буфера в Flash по тегу
__STATIC_FORCEINLINE int RTT_ReadFromFlash (uint32_t tag, char *Buffer, uint32_t tail_size, uint32_t *read_size)
 Читает последние символы RTT-буфера из Flash по тегу
__STATIC_FORCEINLINE int RTT_EraseFlash (void)
 Стирание сектора Flash с RTT-буфером

Detailed Description

Макросы и функции для сохранения/чтения RTT буфера в Flash.

Модуль позволяет сохранять данные RTT буфера во Flash и читать их обратно по тегам.
Теги работают следующим образом:

  • Базовый тег (младший байт = 0): модуль сам выбирает первый свободный слот во Flash;
    новые записи получают автоинкрементированный младший байт тега (от 0x00 до 0xFF).
  • Конкретный тег (младший байт != 0): запись или чтение происходит строго с указанным тегом;
    если слот с таким тегом уже занят, запись не выполняется.
  • Автоинкремент позволяет хранить несколько последовательных записей в пределах одного базового тега,
    без необходимости вручную отслеживать адреса Flash или позиции буферов.

Параметры:

Function Documentation

◆ RTT_FlashPrepare()

__STATIC_FORCEINLINE void RTT_FlashPrepare ( void )

Подготовка Flash к записи

Сбрасывает ошибки Flash и ожидает готовности перед записью

Definition at line 202 of file trace.h.

◆ RTT_SaveToFlash()

__STATIC_FORCEINLINE int RTT_SaveToFlash ( uint32_t tag,
uint32_t tail_size )

Сохраняет последние символы RTT-буфера в Flash по тегу

Parameters
tagБазовый или конкретный идентификатор буфера.
tail_sizeКоличество последних символов RTT для копирования
buf_numУказатель на переменную в которую запишется номер буфера для конкретного тега
Returns
>=0 — номер буфера (тег) для записи, <0 — ошибка (нет места, тег уже занят, ошибка записи в флеш)

Автоматически копирует последние tail_size символов из RTT-буфера и записывает их во Flash. Тег может быть базовым или конкретным:

  • Если базовый (младший байт == 0) — будет выбран первый свободный слот с автоинкрементом. Автоинкремент формируется в пределах от 0x1 до 0xFF
  • Если конкретный (младший байт != 0) — запись выполняется только с этим тегом, иначе ошибка.

Definition at line 226 of file trace.h.

◆ RTT_ReadFromFlash()

__STATIC_FORCEINLINE int RTT_ReadFromFlash ( uint32_t tag,
char * Buffer,
uint32_t tail_size,
uint32_t * read_size )

Читает последние символы RTT-буфера из Flash по тегу

Parameters
tagБазовый или конкретный идентификатор буфера.
BufferБуфер назначения для копирования данных
tail_sizeКоличество последних символов, которые нужно прочитать
read_sizeКоличество считанных символов
Returns
>=0 — номер буфера (тег) для записи, <0 — ошибка (тег не найден или структура повреждена)

Копирует последние tail_size символов из найденной записи Flash в Buffer. Тег может быть базовым или конкретным:

  • Если базовый (младший байт == 0) — будет прочитана последняя запись из группы.
  • Если конкретный (младший байт != 0) — прочитывается именно эта запись.

Definition at line 323 of file trace.h.

◆ RTT_EraseFlash()

__STATIC_FORCEINLINE int RTT_EraseFlash ( void )

Стирание сектора Flash с RTT-буфером

Definition at line 387 of file trace.h.