Loading...
Searching...
No Matches
Serial trace defines
My Libs » Debug Tools » Trace defines

Дефайны для работы с serial трассировкой (SWO, RTT) More...

Collaboration diagram for Serial trace defines:

## Macros

#define | my_printf(...)
| Универсальный макрос для вывода трассировки
#define | log_printf(TAG, fmt, ...)
| Макрос логирования с поддержкой уровней LOG_LEVEL.
#define | local_time()
| Локальное время
#define | LOG_LEVEL 1
| Уровень логирования (по умолчанию == 1)

## Detailed Description

Дефайны для работы с serial трассировкой (SWO, RTT)

В зависимости от настроек определяется дефайн my_printf() и log_printf() для работы с трассировкой:

- SERIAL_TRACE_ENABLE - Если трассировка отключена, то все дефайны определяются как 'ничего' и на производительность кода не влияют

- RTT_TRACE_ENABLE - для RTT это будет вызов функции SEGGER_RTT_printf()

  Предварительно надо подключить библиотеку SEGGER RTT (SEGGER_RTT.h) и вызвать функцию SEGGER_RTT_Init()

- SWO_TRACE_ENABLE для SWO это будет просто printf()

  Предварительно надо подключить библиотеку STDOUT и retarget под ITM:

          Manage Run-Time Environment -> Compiler -> I/O -> STDOUT -> ITM

  Для SWO также надо включить трассировку:

          Options For Target -> Debug -> Debugger Settings

  В вкладке Debug:

  - Port = SW В вкладке Trace:
  - Указать Core Clock
  - Выставить Trace Port = SWO
  - ITM - выбрать нужный порт (для Keil нулевой порт)

## Macro Definition Documentation

## my_printf

#define my_printf | ( |  | ... | ) |

Value:
SEGGER_RTT_printf(0, __VA_ARGS__)

Универсальный макрос для вывода трассировки

Варианты реализации:

- RTT_TRACE_ENABLE SEGGER_RTT_printf(0, ...)
- SWO_TRACE_ENABLE - printf(...)
- NO_TRACE - пустой макрос

Definition at line 79 of file trace.h.

## log_printf

#define log_printf | ( |  | TAG,
|  |  | fmt,
|  |  | ... )

Макрос логирования с поддержкой уровней LOG_LEVEL.

Parameters

  TAG | Тэг лога
  fmt,... | Форматируемая строка

Варианты реализации:

- LOG_LEVEL == 0 - логирование отключено (макрос пустой)
- LOG_LEVEL == 1 - выводится время local_time и TAG
  [123] [ADC] Measure Done
  [456] [ADC] Measure Err
- LOG_LEVEL >= 2 - выводится время, TAG, имя файла и номер строки
  [123] [ADC] (../Core/Src/adc.c:75) Measure Done
  [456] [ADC] (../Core/Src/adc.c:80) Measure Err

Definition at line 106 of file trace.h.

## local_time

#define local_time | ( |  | ) |

Value:
HAL_GetTick()

Локальное время

Definition at line 97 of file trace.h.

## LOG_LEVEL

#define LOG_LEVEL 1

Уровень логирования (по умолчанию == 1)

Definition at line 100 of file trace.h.