/* Name: oddebug.h * Project: AVR library * Author: Christian Starkjohann * Creation Date: 2005-01-16 * Tabsize: 4 * Copyright: (c) 2005 by OBJECTIVE DEVELOPMENT Software GmbH * License: GNU GPL v2 (see License.txt), GNU GPL v3 or proprietary (CommercialLicense.txt) * This Revision: $Id: oddebug.h 692 2008-11-07 15:07:40Z cs $ */ #ifndef __oddebug_h_included__ #define __oddebug_h_included__ /* General Description: This module implements a function for debug logs on the serial line of the AVR microcontroller. Debugging can be configured with the define 'DEBUG_LEVEL'. If this macro is not defined or defined to 0, all debugging calls are no-ops. If it is 1, DBG1 logs will appear, but not DBG2. If it is 2, DBG1 and DBG2 logs will be printed. A debug log consists of a label ('prefix') to indicate which debug log created the output and a memory block to dump in hex ('data' and 'len'). */ #ifndef F_CPU # define F_CPU 12000000 /* 12 MHz */ #endif /* make sure we have the UART defines: */ #include "usbportability.h" #ifndef uchar # define uchar unsigned char #endif #if DEBUG_LEVEL > 0 && !(defined TXEN || defined TXEN0) /* no UART in device */ # warning "Debugging disabled because device has no UART" # undef DEBUG_LEVEL #endif #ifndef DEBUG_LEVEL # define DEBUG_LEVEL 0 #endif /* ------------------------------------------------------------------------- */ #if DEBUG_LEVEL > 0 # define DBG1(prefix, data, len) odDebug(prefix, data, len) #else # define DBG1(prefix, data, len) #endif #if DEBUG_LEVEL > 1 # define DBG2(prefix, data, len) odDebug(prefix, data, len) #else # define DBG2(prefix, data, len) #endif /* ------------------------------------------------------------------------- */ #if DEBUG_LEVEL > 0 extern void odDebug(uchar prefix, uchar *data, uchar len); /* Try to find our control registers; ATMEL likes to rename these */ #if defined UBRR # define ODDBG_UBRR UBRR #elif defined UBRRL # define ODDBG_UBRR UBRRL #elif defined UBRR0 # define ODDBG_UBRR UBRR0 #elif defined UBRR0L # define ODDBG_UBRR UBRR0L #endif #if defined UCR # define ODDBG_UCR UCR #elif defined UCSRB # define ODDBG_UCR UCSRB #elif defined UCSR0B # define ODDBG_UCR UCSR0B #endif #if defined TXEN # define ODDBG_TXEN TXEN #else # define ODDBG_TXEN TXEN0 #endif #if defined USR # define ODDBG_USR USR #elif defined UCSRA # define ODDBG_USR UCSRA #elif defined UCSR0A # define ODDBG_USR UCSR0A #endif #if defined UDRE # define ODDBG_UDRE UDRE #else # define ODDBG_UDRE UDRE0 #endif #if defined UDR # define ODDBG_UDR UDR #elif defined UDR0 # define ODDBG_UDR UDR0 #endif static inline void odDebugInit(void) { ODDBG_UCR |= (1<plain)
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
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261