/** ************************************************************************** * @file trace.h * @brief Заголочный файл для работы с трассировкой. ************************************************************************** * @addtogroup TRACE Trace defines * @ingroup MYLIBS_DEFINES * @brief Дефайны для работы с трассировкой *************************************************************************/ #ifndef __TRACE_H_ #define __TRACE_H_ #include "mylibs_defs.h" /** * @addtogroup TRACE_SERIAL Serial trace defines * @ingroup TRACE * @brief Дефайны для работы с serial трассировкой * @details Определяется дефайн my_printf() для работы с serial трассировкой: - для RTT это будет вызов функции SEGGER_RTT_printf(), с подключением библиотеки SEGGER_RTT.h - для SWO это будет просто printf(), но библиотеку STDOUT надо подключить самостоятельно: @verbatim Manage Run-Time Environment -> Compiler -> I/O -> STDOUT @endverbatim - Если трассировка отключена, то все дефайны определяются как 'ничего' и на производительность кода не влияют @{ */ /* Выбор какой serial trace использовать */ #ifdef SERIAL_TRACE_ENABLE #if defined(RTT_TRACE_ENABLE) #undef SWO_TRACE_ENABLE #include "SEGGER_RTT.h" #define my_printf(...) SEGGER_RTT_printf(0, __VA_ARGS__) #elif defined(SWO_TRACE_ENABLE) #undef RTT_TRACE_ENABLE #define my_printf(...) printf(__VA_ARGS__) #else // NO_TRACE #define my_printf(...) #warning No trace is selected. Serial debug wont work. #endif // RTT_TRACE_ENABLE/SWO_TRACE_ENABLE/NO_TRACE #else //SERIAL_TRACE_ENABLE #define my_printf(...) #undef RTT_TRACE_ENABLE #undef SWO_TRACE_ENABLE #endif //SERIAL_TRACE_ENABLE /** TRACE_SERIAL * @} */ /** * @addtogroup TRACE_GPIO GPIO trace defines * @ingroup TRACE * @brief Дефайны для работы с GPIO трассировкой * @details Определяется дефайны для работы с GPIO трассировкой: - TRACE_GPIO_RESET() - для сброса ножки GPIO (через BSRR) - TRACE_GPIO_SET() - для выставления ножки GPIO (через BSRR) - Если трассировка отключена, то все дефайны определяются как 'ничего' и на производительность кода не влияют @{ */ #ifndef GPIO_TRACE_ENABLE #define TRACE_GPIO_RESET(_gpio_,_pin_) #define TRACE_GPIO_SET(_gpio_,_pin_) #else #define TRACE_GPIO_RESET(_gpio_,_pin_) (_gpio_)->BSRR = ((_pin_)<<16) #define TRACE_GPIO_SET(_gpio_,_pin_) (_gpio_)->BSRR = (((_pin_))) #endif //GPIO_TRACE_ENABLE /** TRACE_GPIO * @} */ #endif //__TRACE_H_