MyLibs 1.0
Расширенные библиотеки для STM32
Loading...
Searching...
No Matches
Serial 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.