Contiki-NG
Toggle main menu visibility
Loading...
Searching...
No Matches
segger-rtt-conf.h
1
/*********************************************************************
2
* SEGGER MICROCONTROLLER GmbH & Co. KG *
3
* Solutions for real time microcontroller applications *
4
**********************************************************************
5
* *
6
* (c) 2014 - 2015 SEGGER Microcontroller GmbH & Co. KG *
7
* *
8
* www.segger.com Support: support@segger.com *
9
* *
10
**********************************************************************
11
----------------------------------------------------------------------
12
File : SEGGER_RTT_Conf.h
13
Purpose : Implementation of SEGGER real-time transfer (RTT) which
14
allows real-time communication on targets which support
15
debugger memory accesses while the CPU is running.
16
---------------------------END-OF-HEADER------------------------------
17
*/
18
19
#ifndef SEGGER_RTT_CONF_H
20
#define SEGGER_RTT_CONF_H
21
22
#ifdef __ICCARM__
23
#include <intrinsics.h>
24
#endif
25
26
/*********************************************************************
27
*
28
* Defines, configurable
29
*
30
**********************************************************************
31
*/
32
33
#define SEGGER_RTT_MAX_NUM_UP_BUFFERS (4)
// Max. number of up-buffers (T->H) available on this target (Default: 2)
34
#define SEGGER_RTT_MAX_NUM_DOWN_BUFFERS (2)
// Max. number of down-buffers (H->T) available on this target (Default: 2)
35
36
#define BUFFER_SIZE_UP (8192)
// Size of the buffer for terminal output of target, up to host (Default: 1k)
37
#define BUFFER_SIZE_DOWN (16)
// Size of the buffer for terminal input to target from host (Usually keyboard input) (Default: 16)
38
39
#define SEGGER_RTT_PRINTF_BUFFER_SIZE (64u)
// Size of buffer for RTT printf to bulk-send chars via RTT (Default: 64)
40
41
#define SEGGER_RTT_MODE_DEFAULT SEGGER_RTT_MODE_NO_BLOCK_SKIP
// Mode for pre-initialized terminal channel (buffer 0)
42
43
//
44
// Target is not allowed to perform other RTT operations while string still has not been stored completely.
45
// Otherwise we would probably end up with a mixed string in the buffer.
46
// If using RTT from within interrupts, multiple tasks or multi processors, define the SEGGER_RTT_LOCK() and SEGGER_RTT_UNLOCK() function here.
47
//
48
/*********************************************************************
49
*
50
* RTT lock configuration for SEGGER Embedded Studio,
51
* Rowley CrossStudio and GCC
52
*/
53
#if (defined __SES_ARM) || (defined __CROSSWORKS_ARM) || (defined __GNUC__)
54
#ifdef __ARM_ARCH_6M__
55
#define SEGGER_RTT_LOCK(SavedState) { \
56
__asm__ volatile ("mrs %0, primask \n\t" \
57
"mov r1, $1 \n\t" \
58
"msr primask, r1 \n\t" \
59
: "=r" (SavedState) \
60
: \
61
: "r1" \
62
); \
63
}
64
65
#define SEGGER_RTT_UNLOCK(SavedState) { \
66
__asm__ volatile ("msr primask, %0 \n\t" \
67
: \
68
: "r" (SavedState) \
69
: \
70
); \
71
}
72
73
#elif (defined(__ARM_ARCH_7M__) || defined(__ARM_ARCH_7EM__))
74
#define SEGGER_RTT_LOCK(SavedState) { \
75
__asm__ volatile ("mrs %0, basepri \n\t" \
76
"mov r1, $128 \n\t" \
77
"msr basepri, r1 \n\t" \
78
: "=r" (SavedState) \
79
: \
80
: "r1" \
81
); \
82
}
83
#define SEGGER_RTT_UNLOCK(SavedState) { \
84
__asm__ volatile ("msr basepri, %0 \n\t" \
85
: \
86
: "r" (SavedState) \
87
: \
88
); \
89
}
90
#else
91
#define SEGGER_RTT_LOCK(SavedState) (void)(SavedState)
92
#define SEGGER_RTT_UNLOCK(SavedState) (void)(SavedState)
93
#endif
94
#endif
95
96
/*********************************************************************
97
*
98
* RTT lock configuration for IAR EWARM
99
*/
100
#ifdef __ICCARM__
101
#if (defined (__ARM7M__) && (__CORE__ == __ARM7M__))
102
#define SEGGER_RTT_LOCK(SavedState) { \
103
SavedState = __get_PRIMASK(); \
104
__set_PRIMASK(1); \
105
}
106
107
#define SEGGER_RTT_UNLOCK(SavedState) { \
108
__set_PRIMASK(SavedState); \
109
}
110
#elif (defined (__ARM7EM__) && (__CORE__ == __ARM7EM__))
111
#define SEGGER_RTT_LOCK(SavedState) { \
112
SavedState = __get_BASEPRI(); \
113
__set_BASEPRI(128); \
114
}
115
116
#define SEGGER_RTT_UNLOCK(SavedState) { \
117
__set_BASEPRI(SavedState); \
118
}
119
#endif
120
#endif
121
122
/*********************************************************************
123
*
124
* RTT lock configuration fallback
125
*/
126
#ifndef SEGGER_RTT_LOCK
127
#define SEGGER_RTT_LOCK(SavedState) (void)(SavedState)
128
#endif
129
130
#ifndef SEGGER_RTT_UNLOCK
131
#define SEGGER_RTT_UNLOCK(SavedState) (void)(SavedState)
132
#endif
133
134
#endif
135
/*************************** End of file ****************************/
arch
platform
nrf52840
rtt
segger-rtt-conf.h
Generated on
for Contiki-NG by
1.17.0