|
|
1 #ifndef _LOG_H_
$ J2 {. ^5 C# J x, p- n! r" E# k 2 #define _LOG_H_
9 v4 q/ O( \ L% S 3
) N; [& O7 \& q 4 /* 0: printf; 1: UART1 */( j( ^* A% {0 d, P9 j! K/ R0 h
5 #define OUTPUT_TO_UART1 1
7 y, X! m9 r4 t1 F" Z* t2 f) ~! ~ 6
, G2 W$ B$ v8 K6 |$ L; o4 s 7 /* Switch Log Output */0 X' B6 @1 g5 g- f0 P' X
8 #if OUTPUT_TO_UART1
6 }7 H" J! }) G( f8 y 9 /* For UART1 Initial */; q5 Z' T2 F# w) J+ D+ E
10 #include <stdlib.h>
& Y( w+ O3 {; O, P7 O 11 #include "hw_types.h"
: \) ?) _% Q2 z4 d ` 12 #include "hw_syscfg0_C6748.h") d4 r" m7 i: a: @- d2 Q5 n
13 #include "soc_C6748.h"4 U& Q a6 F, v& \3 N0 ^
14 #include "psc.h"
2 S# h1 q6 \1 [: n* X1 B5 D 15 #include "gpio.h" c9 A' ^6 ~5 Q K0 _( Z
16 #include "uart.h"0 {) m) Y* R# \7 k# o/ k- F/ v
17 #include "uartStdio.h"6 q& q/ Y3 j% ~; v$ h/ u5 p
18 ! f( @% a7 B+ m0 h; Y
19 #define OUTPUT UARTprintf
6 f2 v6 s8 _: w4 E- _ 20 #else
$ y1 w1 k( \2 R 21 #include <stdio.h>
* b9 h& _2 A2 }! H+ J4 e7 L 22 #include <stdbool.h>
: B: Y4 c, B! I- v# i, |0 g7 d 23 0 \1 Q/ r$ c7 ? J, l; b
24 #define OUTPUT printf- r5 `+ V& i) l+ p9 u6 n
25 #endif6 W, c: @' c) D+ r5 P! ^
26 ) g1 ]% | u6 G2 I
27 /* Log init */0 k2 b) F @& k9 D5 l; q4 W
28 #if OUTPUT_TO_UART1
9 V7 r/ L# a" ^: d- B9 b 29 #define LOG_INIT() do { \2 B5 \: j' C" q+ L
30 PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, \" ~* Y* Q, e2 o/ h7 p7 q
31 PSC_POWERDOMAIN_ALWAYS_ON, \4 H! @6 V4 v1 `6 g' R5 h# {
32 PSC_MDCTL_NEXT_ENABLE); \* P8 [# d8 h1 M
33 GPIOBank6Pin12PinMuxSetup(); \1 ^6 Z" ]7 ?/ x9 v0 Y( R
34 GPIOBank6Pin13PinMuxSetup(); \
# m' I3 E# Q G' s5 k# I0 } 35 GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT); \+ F; h" O- J N$ J2 ~
36 GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT); \
" K+ w! F% j0 f; D9 l 37 UARTStdioInit(); \0 V% \. y6 R/ |9 l { x x
38 } while (0)
2 F& n+ Q+ k9 T' Q( S3 O 39 #else
! }$ a0 g O6 f' v, h$ [3 D; ~ 40 #define LOG_INIT() do { } while (0)
1 ~) E# i2 d( e1 t 41 #endif
/ `! W! X5 W3 n7 ~8 {9 B# c 42
% S5 M: @' \% {% T5 j! i! Y& ` 43 /* Log Output */
( g. Z& X# a3 L5 ~" `$ O 44 #define LOG_INFO(format, ...) \
4 _9 p# @4 ?+ Q8 f# D- ^ 45 do { \
2 U( A9 o- a* W; A2 g 46 OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \; \6 m. w4 N" r; p7 c7 j; V
47 } while (0)
$ N) j; `- D9 {; t# L 48 - T3 g# n7 R/ x% N l
49 #define LOG_ERROR(format, ...) \
7 Y' w4 |# X7 S) c" a t 50 do { \
# Z' ?/ H0 E& e: b& K8 G+ g 51 OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \# y6 {6 m$ J% T/ j8 F
52 } while (0)
" P1 G$ V7 P, j' q+ A2 ? 53 3 J4 z+ V/ X- _5 ^/ T% C
54 #define LOG_DEBUG(format, ...) \
( Y/ A' H0 ?" [+ m9 Y 55 do { \
, i0 j% ^, g; p: m6 H 56 OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \7 w# p, m4 Y) f7 i- P* Y
57 } while (0)
% Z" ~; s; V0 I% Y 58 2 |1 t; `/ `6 [4 o C4 ?
59 #define LOG_WARN(format, ...) \+ x3 L2 l6 D9 i+ n
60 do { \4 e. N* b9 w7 T- l
61 OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \9 l3 D5 X ?9 w& ^/ I* |- x5 b' X
62 } while (0)' r$ ~1 h s7 R+ n. N# q! E
63 % g3 v! Q0 B' F2 q) \3 P
64 #define LOG_TRACE(format, ...) \
, j# w$ U u$ Z% h 65 do { \" l: s6 l9 a( C! c$ V
66 OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \! z4 T( s" ~5 o, `# N1 A2 v0 U1 o6 Q+ k1 x
67 } while (0)# a* n$ }' o" H" }/ @) V
68
. m) p& ] t/ t' @# h% L 69 #define LOG_FATAL(format, ...) \0 X) l" _4 j8 x. X1 A
70 do { \
$ p( j8 g, O- Z8 G' T( @- ] 71 OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
& ?/ U' `6 o$ a 72 exit(1); \
$ }: l& S& ?' `& L 73 } while (0)1 t9 C; A) L0 z7 W. z- o
74 . `8 u) ]0 z( L, O( U: B7 I6 T
75 /* Assert */4 }, |4 U3 Y+ V9 \2 y1 I7 S
76 #define ASSERT(EXP) \5 D8 [" g* u. ^1 p5 A
77 do{ \
6 u q+ ?/ l1 R9 a7 g 78 if (!(EXP)) { \1 C! x; b6 g# y3 L
79 OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ ); \
$ f7 B3 s( N- J/ _ 80 exit(1); \
6 Z" A2 O3 D# T$ K9 _: W 81 } \1 q7 N- M6 d! I F% k1 G6 n
82 } while(0)
& N" Y7 ^4 V* w1 D, \ 83 , _* x7 y$ v+ n, v, Q3 k
84 #endif
) y& N4 O' x3 n( q$ A% p |
|