Loading...
Searching...
No Matches
Flash RTT Buffer
My Libs » General Tools » Trace defines

Макросы и функции для сохранения/чтения 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 или позиции буферов.

Параметры:

- RTT_FLASH_BUFFER_SIZE - Размер буфера RTT в Flash
- RTT_FLASH_SECTOR - Сектор FLASH куда положится RTT буфер
- RTT_FLASH_SECTOR_START - Начало сектора RTT_FLASH_SECTOR
- RTT_FLASH_SECTOR_END - Конец сектора RTT_FLASH_SECTOR

## Function Documentation

## RTT_FlashPrepare()

__STATIC_FORCEINLINE void RTT_FlashPrepare | ( | void |  | ) |

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

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

Definition at line 203 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 227 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 324 of file trace.h.

## RTT_EraseFlash()

__STATIC_FORCEINLINE int RTT_EraseFlash | ( | void |  | ) |

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

Definition at line 388 of file trace.h.