|
|
1 #ifndef _LOG_H_
3 f3 E/ y) O. l 2 #define _LOG_H_) x6 k+ f0 A4 n% q5 b+ m' J
3
* ^ [1 G' I' v 4 /* 0: printf; 1: UART1 */9 Z5 K w5 h! M
5 #define OUTPUT_TO_UART1 1
0 p: C# u+ \4 m. B- s9 q$ \ 6 + M- [. S; f, }! g! f
7 /* Switch Log Output */! u: f8 e: @& a
8 #if OUTPUT_TO_UART1
u1 s S- Q! L0 k, _- Q 9 /* For UART1 Initial */( w8 d5 q1 D5 L& q/ O$ J2 L
10 #include <stdlib.h>' y" v- a" F$ J, z
11 #include "hw_types.h"
# O* o7 } B" O/ ^# {# x! q 12 #include "hw_syscfg0_C6748.h"7 @% [1 D: r2 D2 d( }* s
13 #include "soc_C6748.h"
0 y: _$ @. e3 a% V+ y `! R 14 #include "psc.h"
5 A/ @4 h. ?6 Y( e& y: | 15 #include "gpio.h" / _! g ?& @6 k
16 #include "uart.h"
9 B" ^- Z: \6 Y% r2 N; L 17 #include "uartStdio.h"
* ?* z. C( k8 e1 Q7 r 18
( b& d- o" p/ C0 s- M* J9 @7 u 19 #define OUTPUT UARTprintf! X/ \3 i) @1 S1 A+ Q$ s
20 #else
! w0 R6 |$ J n( Q- c- y 21 #include <stdio.h>
5 U3 |' s# T6 T7 m4 W 22 #include <stdbool.h>
) {; s' u( ?6 B: h. r 23 5 ^; E' B; l2 P- {. @ z
24 #define OUTPUT printf1 D' ]% }3 e( T: @) t9 f
25 #endif
) q8 @& X/ I# R 26
! n$ i; r- y9 s/ u/ v 27 /* Log init */( W: s1 M1 b' B3 I* o
28 #if OUTPUT_TO_UART1! Z; }1 z7 b2 K; ]+ I6 U$ i
29 #define LOG_INIT() do { \/ ^# ?4 V) i8 R8 U N* c
30 PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, \0 ?5 A v/ ~; I$ w8 ^9 _
31 PSC_POWERDOMAIN_ALWAYS_ON, \5 l9 ?, ~5 {7 }0 Z/ @
32 PSC_MDCTL_NEXT_ENABLE); \; H/ v2 _$ v; _) f9 K7 n5 g7 i
33 GPIOBank6Pin12PinMuxSetup(); \. Z8 |: u- P9 \% }. P% L! W
34 GPIOBank6Pin13PinMuxSetup(); \. k9 n1 |. j+ A9 D8 y
35 GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT); \
- {4 X Q. ~( ]) A' W" a1 _4 x 36 GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT); \3 z; v, W# e- E& ]1 S
37 UARTStdioInit(); \
. v# D: b. K3 w- S* s* x 38 } while (0)
: p2 r; E8 A8 ?; C 39 #else( X5 F& S' ^1 p+ p; r
40 #define LOG_INIT() do { } while (0)
" f, Q5 \+ Z% i# K' u1 b6 Z' u4 Z; O 41 #endif
8 B# ~2 q2 u2 j2 W I 42
- |6 P4 I% x/ X; ^ 43 /* Log Output */$ i: B: e$ }1 U2 G4 ~0 i! N
44 #define LOG_INFO(format, ...) \, b7 o& _% ]; Z8 M; A! W
45 do { \
9 D" `1 b- P" ~! S2 U/ [, h0 S 46 OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
% B! R0 }3 I5 h: _& v2 | 47 } while (0), M' O" ~* }' J3 n S
48
/ N: H9 S) `0 r 49 #define LOG_ERROR(format, ...) \& ~' F: {( r/ e! l& d w. u
50 do { \
' ]$ ^; I0 x9 b4 o7 ]2 J! z8 @/ B 51 OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \/ J5 T& R% @% l( l6 H$ T2 n+ D
52 } while (0)6 v: E* ~8 e$ s% h' p
53 * ^! f. \9 z% @/ p5 v& u% c
54 #define LOG_DEBUG(format, ...) \
+ B4 p6 y2 o! a) A4 h 55 do { \" j( F2 C# ?( \
56 OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \ ?) Y! O1 _8 H t3 R+ Q; w. y, q
57 } while (0)! l5 x5 t( K! [, q( [3 q
58
0 I2 P" e' [& r; t( y7 S6 H( U 59 #define LOG_WARN(format, ...) \
7 L7 k+ n3 U! q0 \+ W7 v 60 do { \
! g# ~/ G; I/ i0 K% r0 S 61 OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \5 z9 w9 e: V, i y% _& F& D9 d$ U
62 } while (0)* e$ c0 g0 [3 n$ `: T" R4 c7 d* S
63
; x% P% j! M- _/ E* H 64 #define LOG_TRACE(format, ...) \
+ z6 X! ~1 z% A, O @8 s; X 65 do { \) g Q, v( T" ~" m6 m H. X
66 OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \3 ^( w6 d$ i5 F; l6 t. j% G
67 } while (0)8 Z+ ~0 z4 M* |0 K& V/ G
68 6 }7 h4 [: J2 a) T
69 #define LOG_FATAL(format, ...) \* b9 ?# u& M+ O& Y8 ~1 @
70 do { \% {" L6 W Z- T1 \- g$ [3 B5 W
71 OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
- @0 {" k) ]& k* Q 72 exit(1); \- e0 \" @7 a) R% \
73 } while (0)# G8 K$ y0 h/ R. B: u$ O
74
k W- |& s" f% Z0 C0 u& p1 [. f7 D 75 /* Assert */# ~9 {5 E/ }1 h* ^$ m
76 #define ASSERT(EXP) \4 ]4 }( J2 j9 B$ U/ b
77 do{ \
) a0 g* x6 a q; T9 `, b 78 if (!(EXP)) { \
7 F- _) e' G$ U 79 OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ ); \
! C. s+ f6 B( V 80 exit(1); \# M9 W' j5 W4 o& P' g
81 } \: m% C) J& [- m7 e6 A' i
82 } while(0)
; r% B1 C2 K3 i! M1 _. w% O1 V 83 8 y' e! Z4 [" m& g5 w& w( ~2 N( q
84 #endif
9 m4 [" Z5 ~8 G" d |
|