-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathsegger_wrapper_arm.h
117 lines (80 loc) · 3.46 KB
/
segger_wrapper_arm.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
/*
* segger_wrapper.h
*
* Created on: 5 oct. 2017
* Author: Vincent
*/
#ifndef LIBRARIES_UTILS_SEGGER_WRAPPER_ARM_H_
#define LIBRARIES_UTILS_SEGGER_WRAPPER_ARM_H_
#include "nrf_log.h"
#include <stddef.h>
#ifndef EMPTY_MACRO
#define EMPTY_MACRO do {} while (0)
#endif
///////// PARAMETERS
#ifndef USE_VCOM_LOGS
#define USE_VCOM_LOGS 0
#endif
#ifndef USE_SVIEW
#define USE_SVIEW 0
#endif
#ifndef NRF_LOG_BACKEND_RTT_ENABLED
#define NRF_LOG_BACKEND_RTT_ENABLED 1
#endif
#if USE_SVIEW
#include "SEGGER_SYSVIEW.h"
#endif
///////// DEFINES
#define RTT_LOG_CHANNEL 0
#if defined( USB_ENABLED ) && USE_VCOM_LOGS
#include "usb_cdc.h"
#define USB_PRINTF(...) usb_printf(__VA_ARGS__)
#define USB_PRINTC( X ) usb_print(X)
#else // defined( USB_ENABLED ) && USE_VCOM_LOGS
#define USB_PRINTF(...) EMPTY_MACRO
#define USB_PRINTC( X ) EMPTY_MACRO
#endif
#if USE_SVIEW
#define SVIEW_INIT(...) segger_init()
#define LOG_WARNING_SVIEW(...) SEGGER_SYSVIEW_WarnfHost(__VA_ARGS__)
#define LOG_ERROR_SVIEW(...) SEGGER_SYSVIEW_PrintfHost(__VA_ARGS__)
#else // USE_SVIEW
#define SVIEW_INIT(...) EMPTY_MACRO
#define LOG_WARNING_SVIEW(...) EMPTY_MACRO
#define LOG_ERROR_SVIEW(...) EMPTY_MACRO
#endif
#if defined ( BLE_STACK_SUPPORT_REQD )
#include "ble_api_base.h"
#define LOG_INFO_NUS(...) EMPTY_MACRO
#define LOG_WARNING_NUS(...) EMPTY_MACRO
#define LOG_ERROR_NUS(...) ble_nus_log(__VA_ARGS__)
#else
#define LOG_INFO_NUS(...) EMPTY_MACRO
#define LOG_WARNING_NUS(...) EMPTY_MACRO
#define LOG_ERROR_NUS(...) EMPTY_MACRO
#endif
#if NRF_LOG_ENABLED
#include "SEGGER_RTT.h"
#define LOG_INFO(...) SEGGER_RTT_printf(RTT_LOG_CHANNEL, __VA_ARGS__);SEGGER_RTT_PutChar(RTT_LOG_CHANNEL, '\r');SEGGER_RTT_PutChar(RTT_LOG_CHANNEL, '\n')
#define LOG_RAW_INFO(X) EMPTY_MACRO
#define LOG_WARNING(...) SEGGER_RTT_printf(RTT_LOG_CHANNEL, __VA_ARGS__);SEGGER_RTT_PutChar(RTT_LOG_CHANNEL, '\r');SEGGER_RTT_PutChar(RTT_LOG_CHANNEL, '\n')
#define LOG_DEBUG(...) EMPTY_MACRO
#define LOG_ERROR(...) LOG_ERROR_NUS(__VA_ARGS__);SEGGER_RTT_printf(RTT_LOG_CHANNEL, __VA_ARGS__);SEGGER_RTT_PutChar(RTT_LOG_CHANNEL, '\r');SEGGER_RTT_PutChar(RTT_LOG_CHANNEL, '\n')
#define LOG_GRAPH(...) EMPTY_MACRO
#define LOG_FLUSH(...) EMPTY_MACRO
#define LOG_PROCESS(...) NRF_LOG_PROCESS()
#else // NRF_LOG_ENABLED
#define LOG_INFO(...) USB_PRINTF(__VA_ARGS__)
#define LOG_RAW_INFO(X) USB_PRINTC(X)
#define LOG_WARNING(...) LOG_WARNING_SVIEW(__VA_ARGS__);USB_PRINTF(__VA_ARGS__)
#define LOG_DEBUG(...) EMPTY_MACRO
#define LOG_ERROR(...) LOG_ERROR_NUS(__VA_ARGS__);LOG_ERROR_SVIEW(__VA_ARGS__);USB_PRINTF(__VA_ARGS__)
#define LOG_GRAPH(...) EMPTY_MACRO
#define LOG_FLUSH(...) EMPTY_MACRO
#define LOG_PROCESS(...) false
#endif
#include "nrf_log.h"
#include "nrf_log_ctrl.h"
#include "nrf_log_default_backends.h"
#include "task_manager_wrapper.h"
#endif /* LIBRARIES_UTILS_SEGGER_WRAPPER_H_ */