|
|
1 #ifndef _LOG_H_
! | N6 J( _$ B( Y6 Y# u 2 #define _LOG_H_( }9 W4 \1 @1 ?( W* c$ J
3 4 g. M* `) e0 ^2 d' B% t* ~
4 /* 0: printf; 1: UART1 */" q Y7 n8 h2 F2 H7 D' g, r$ J$ }' _7 R
5 #define OUTPUT_TO_UART1 1/ f& N' ^! @+ @7 \0 L$ _
6 & n2 b$ Y( C; w5 q' n* W2 Z* w
7 /* Switch Log Output */: l; O4 K3 C( Y* F
8 #if OUTPUT_TO_UART1
- ?6 w6 Z; E3 O/ Q3 u 9 /* For UART1 Initial */
& ^) u2 C% n3 c ?( l7 } 10 #include <stdlib.h>/ P( U; U' W2 G6 F1 i: f. o$ f
11 #include "hw_types.h"
" v, ^ y: ]& M7 H 12 #include "hw_syscfg0_C6748.h"" P. X; s( w% @) B. f
13 #include "soc_C6748.h"
2 N0 D; R; h$ T2 i7 ?# M 14 #include "psc.h" ( @# o; z2 J5 H! K
15 #include "gpio.h" ' E& L5 U% h4 K3 U+ ~
16 #include "uart.h"
" `+ `. g0 `& E' [8 x x& @3 h, ? 17 #include "uartStdio.h"9 I" H7 S8 P7 S; \1 i1 ]
18
# U4 n' L8 F7 u1 Q1 W 19 #define OUTPUT UARTprintf! ?' a% c0 i* u7 ^: @& z
20 #else! F L, i5 W6 l; G% s* m
21 #include <stdio.h>1 B+ C) c* {3 S9 H' |& x C# M6 U
22 #include <stdbool.h>6 `7 n1 D& c) ~
23
7 h6 P% ]& I$ H, q% ~* y) W3 z 24 #define OUTPUT printf
6 n+ y" [& G/ P# Z 25 #endif! ~+ W" J& F7 ]& U; V' d1 K) u
26
; N; J9 m2 V" x+ y3 a 27 /* Log init */5 `6 m. l8 n7 ^2 N' m" F' H
28 #if OUTPUT_TO_UART1
8 J& B* Y: O0 {7 R* ^ 29 #define LOG_INIT() do { \* N0 N P5 P E" a. j% q1 F% ]
30 PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, \
' C/ j" J2 C6 ^2 E3 R 31 PSC_POWERDOMAIN_ALWAYS_ON, \- b9 b2 `8 s+ Q3 y. k
32 PSC_MDCTL_NEXT_ENABLE); \6 o8 J5 l$ B; U: X. ^# W
33 GPIOBank6Pin12PinMuxSetup(); \
9 e8 {& ]' z% F- M3 G& I/ N4 L 34 GPIOBank6Pin13PinMuxSetup(); \+ Q( f9 E9 W8 w" A+ w9 \
35 GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT); \
1 X) n2 W/ g! K4 }" {% Y 36 GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT); \" D6 A' j7 `- R( w l
37 UARTStdioInit(); \
( q- T5 U# @$ V/ s1 C) ]* u 38 } while (0)
- t. e, |7 m! C/ d! a 39 #else
* f% k; Z0 d0 B4 p 40 #define LOG_INIT() do { } while (0)
# V2 T& Z) c7 x K 41 #endif! {& P: ]# k9 ?9 r7 J; Z
42 8 @) F! M6 x4 T% p% W. l: C) O
43 /* Log Output */2 Y3 j9 F5 s0 U1 \7 o" ?: V. F
44 #define LOG_INFO(format, ...) \* Z2 ^; e7 d' j3 W3 a$ w6 J5 w
45 do { \9 W, v H7 W) c( t! s9 _
46 OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \4 ]7 ^2 ~, n5 z! ?- @6 ~2 S2 s
47 } while (0)
2 t1 h! S7 \ t9 B1 q 48
+ f5 h% \' s8 X, M# M; {4 s 49 #define LOG_ERROR(format, ...) \
2 `$ p/ M# Y. V) R9 x 50 do { \
) q$ F0 R& i, _' y5 p 51 OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
+ i0 N+ I% y2 P4 Q3 b, U# q 52 } while (0)8 v; {9 K+ \1 P7 ~% z$ L0 k
53 7 p; ?2 ^" o1 U8 l7 t1 X. K
54 #define LOG_DEBUG(format, ...) \7 ]) @3 Y* @/ v( {. a# C# v5 O6 z& b3 D
55 do { \/ v4 \% x9 E1 G; ], I5 D7 U
56 OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
, }) s1 e( ?- l* u3 `0 A9 B* L 57 } while (0)
/ a+ P; |5 l9 I( P. _$ i! ^ 58 " P, F- B9 H* r+ G% X+ A
59 #define LOG_WARN(format, ...) \3 g1 o9 Q* A. E' ~- J
60 do { \
$ M! l* ~+ J$ }1 l, p7 G( f+ a$ n! _ 61 OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \4 a# p3 J3 |; z5 {" p, ?2 w. V( e6 Z
62 } while (0)5 P5 ^( v" F0 R/ F3 Z3 Z
63 8 N5 ~' Z! _5 S5 Y
64 #define LOG_TRACE(format, ...) \, b `& i" t# W
65 do { \
% N% ?3 O, K2 d/ ]5 V) V# c6 P5 r 66 OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \& N- l$ N, _8 P* p, d7 ]8 Z6 t$ G
67 } while (0)& O9 p% x7 f, d6 A
68 6 f9 v- c. S, ^
69 #define LOG_FATAL(format, ...) \( M: l; u9 K" l
70 do { \+ d2 p+ J3 _$ l& Y+ y
71 OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
8 q1 J% t& |2 |' k7 z 72 exit(1); \
0 z! f: n: x* v2 c* @2 R 73 } while (0)
/ P2 `+ K; U5 U! u7 C# U; u 74 2 `# V) \; I2 W I# ]
75 /* Assert */6 j. I4 O6 _) x' G3 ^8 C+ g
76 #define ASSERT(EXP) \
/ e$ [$ L5 h5 u4 R4 }2 `+ s# }, o 77 do{ \
2 A. R, h. N: ` 78 if (!(EXP)) { \
( s8 B6 y$ Z1 g2 m# D 79 OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ ); \1 B2 y+ \ j: ]$ Y
80 exit(1); \
, {" `9 k9 K8 j9 |% \$ i 81 } \
5 {: D+ ~. j( u) P 82 } while(0)' e# S, p. T4 R6 F- z4 r* P
83
8 ?# m; x2 i+ c3 d& o/ \2 i/ S0 i+ V, _ 84 #endif8 @8 s1 J% R. I. m9 S
|
|