|
|
1 #ifndef _LOG_H_
$ v; {8 N3 P x" J: Q1 c 2 #define _LOG_H_
J3 [3 ~3 n! w d 3 $ V7 Z% Z* T7 _9 z( z
4 /* 0: printf; 1: UART1 */
% P) H, @1 T( g2 I9 p" I& y0 j 5 #define OUTPUT_TO_UART1 1
0 r1 m$ v/ l6 w, U) P 6 + t, G1 D2 n p( e
7 /* Switch Log Output */( g: ^* k% M1 Z! y$ _
8 #if OUTPUT_TO_UART1 F" f4 R8 _# M# s& ]
9 /* For UART1 Initial */
( H* Z1 j u' O7 @4 o# h) ?# U 10 #include <stdlib.h>
- Y! Z$ N& v3 ?7 h" a3 i- U+ z 11 #include "hw_types.h"
4 ~: q5 O' X$ f$ k7 d 12 #include "hw_syscfg0_C6748.h"
& Z: E, Y: M% V6 W* F" K 13 #include "soc_C6748.h"8 i, t; b: w- \" F# x* v- D. N
14 #include "psc.h" 5 b9 C% C# }3 k3 X. m9 `+ w4 @; \2 @
15 #include "gpio.h"
& N0 x# f" q/ `! D& b! j 16 #include "uart.h"/ L8 D2 `- X" K& G A
17 #include "uartStdio.h"
! y, ^) k- Z6 K- C! d! c9 e% K$ {: ? 18 h* N2 H, Y: O, f' Q0 A
19 #define OUTPUT UARTprintf
! Y+ }2 o1 _% A. O% g 20 #else% l; m( |; F$ k- H
21 #include <stdio.h>' K1 L5 u& F/ G8 ?) m
22 #include <stdbool.h>" m# E& c1 _" ~/ o. V/ q( L
23
: p0 A6 }" y3 t6 T3 O 24 #define OUTPUT printf
) y- v' p" \! _3 w* G+ ~+ t# t& x 25 #endif* [' C# N a6 o
26
% S+ N) |: }* }' w 27 /* Log init */3 {- I- F2 z- Q5 g! m' R
28 #if OUTPUT_TO_UART1
# h8 f I: e% Z1 e 29 #define LOG_INIT() do { \
+ i" ?: y# x2 w 30 PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, \: h4 E- [. Q; E6 T! N7 \% w! l( m% ^5 X
31 PSC_POWERDOMAIN_ALWAYS_ON, \( r u2 T z# I7 I0 D9 A
32 PSC_MDCTL_NEXT_ENABLE); \
3 i J9 X' [5 g 33 GPIOBank6Pin12PinMuxSetup(); \- \& H0 `! X8 X! d4 h% @ u/ B& ?
34 GPIOBank6Pin13PinMuxSetup(); \! {8 v% P1 p4 Z. R4 l+ B
35 GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT); \7 a/ u9 ? w: U2 Y& R+ k7 {
36 GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT); \( `; K% S1 A4 _8 N4 m
37 UARTStdioInit(); \
- t- g, X( ]7 a& o6 u/ e G 38 } while (0), t1 \# G/ w' l# y/ `
39 #else: u- L1 Z" j* l) t0 f: x; ]; z
40 #define LOG_INIT() do { } while (0)7 {' q. ^3 u; n3 e9 z6 p3 j) A
41 #endif
% l: ?5 e5 R: [ 42 - I) _/ ~5 k, ? M9 N3 w5 H
43 /* Log Output */
; r# L# N2 h6 v 44 #define LOG_INFO(format, ...) \
/ w8 [. e0 F7 D- B 45 do { \
: d( `/ Q" g0 e# Q 46 OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
5 v" W0 }+ T$ Z1 i4 f1 C3 T N 47 } while (0)
; r. H; Q" h( z9 C7 p1 h 48 : B _' G, l+ T
49 #define LOG_ERROR(format, ...) \7 W* ^& h. d' L1 Z5 l
50 do { \1 r% P1 w5 a4 {4 ~
51 OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \2 u G) P+ i1 b* D
52 } while (0)& y# n3 S% U& S* M
53
' w" J- ], J! A f 54 #define LOG_DEBUG(format, ...) \6 q! T' {- w' l. w3 [8 D
55 do { \
# a- @- r" ?1 c 56 OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
0 P" K) Q+ B+ Y6 f- P+ d6 A. s 57 } while (0)
3 z: }( f2 u) E/ m 58 ; B* J! I: ]" i$ O5 J3 @; X
59 #define LOG_WARN(format, ...) \
3 g# T% a5 P% N/ _ 60 do { \; C3 L9 H8 v6 |
61 OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
& f9 B4 A. b: x6 E- \5 m$ x 62 } while (0)
, w4 `3 C! x6 T7 W8 [ V( I+ x 63
. l+ ?2 H. C1 E- \9 S; B% D( J 64 #define LOG_TRACE(format, ...) \
- {0 P* v& l. }7 e5 l0 H 65 do { \9 x+ a7 w! [# }, T x
66 OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \* v+ d( b- X/ C) c9 C3 M* @
67 } while (0)& e; L, S) U ?
68
0 O" b7 L# b( ^5 D0 x 69 #define LOG_FATAL(format, ...) \, N2 y$ ^1 c; {/ u# U
70 do { \
) D8 o/ P5 ] M) u: S 71 OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \/ i9 R& e: T0 J" U2 o* W3 M
72 exit(1); \
3 ~6 Q, v. [* Q- T 73 } while (0); R0 O0 F0 k% H+ t4 B5 O
74 * E+ r+ U ?8 H3 Z W
75 /* Assert */
8 o4 _+ [, q/ ^ 76 #define ASSERT(EXP) \ y5 v+ `/ T" w
77 do{ \: D0 S: r# L4 Y8 k
78 if (!(EXP)) { \/ Q1 ]" }$ ]" b# U: W
79 OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ ); \
4 Y% R' t4 \; I7 n. e( M 80 exit(1); \7 L" F1 T8 _; _& m1 k! _
81 } \+ `# R+ |$ g7 A9 y
82 } while(0)
8 ?7 x6 U) f1 V+ W; }4 I2 X# V% o 83 1 T7 s' M; q# K, N0 \1 C) [2 }& M
84 #endif/ ~" u/ z: a5 ~
|
|