80 lines
3.1 KiB
C
80 lines
3.1 KiB
C
|
/**
|
|||
|
**************************************************************************
|
|||
|
* @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_
|