|
1 #ifndef _LOG_H_
: j7 M% j' ~6 a% x) l; W& F& ] 2 #define _LOG_H_
* m3 l$ Q9 \- v- h' |& L2 s+ e* E 3
" `% O$ b+ m7 Y) Q) U 4 /* 0: printf; 1: UART1 */
' h( a* i- }1 m; \ 5 #define OUTPUT_TO_UART1 1
4 a& _: e; u& `( X 6 5 Q- [$ A- j( [7 N9 H! [ N7 T
7 /* Switch Log Output */
& _! q+ L b& `# G 8 #if OUTPUT_TO_UART19 {, C& s5 v3 d
9 /* For UART1 Initial */& n7 w6 V' x" P5 e* h
10 #include <stdlib.h>& m, j! f R/ C2 c% o# d
11 #include "hw_types.h" % o! G A' F/ H6 Y, y
12 #include "hw_syscfg0_C6748.h"7 t. Z' r4 k# Z
13 #include "soc_C6748.h"
& U6 x7 [2 W2 d4 @% f- x+ H5 u 14 #include "psc.h" " k/ o) ^5 {2 F7 {
15 #include "gpio.h" 3 Q! Y# k& T' X
16 #include "uart.h"
2 A" d& m9 s$ m- s 17 #include "uartStdio.h"
( n8 A* J5 q6 r% v9 ] 18 & f) q! z' I7 s3 C1 U+ J
19 #define OUTPUT UARTprintf
. `2 x: L, u+ F3 [. O! P; C0 X 20 #else+ {5 p: d' w" C6 [/ D4 K1 F
21 #include <stdio.h>
2 [2 N( n$ E) _( n: S/ D6 R 22 #include <stdbool.h>
) H% }4 r( D9 b( R 23 & b: l- |& K% ^
24 #define OUTPUT printf/ L; d% X4 y/ Q( N+ S6 B
25 #endif
3 V# d0 c9 l, \5 I6 ? 26
" i+ r) v$ L7 u% l. C 27 /* Log init */
) h1 K. K( _1 |" P; s5 Y 28 #if OUTPUT_TO_UART1
; f& W& P/ ?! \: V 29 #define LOG_INIT() do { \
2 B% w! e( ]( ]1 z+ l0 n" w8 L* n 30 PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, \
( I1 o! n9 \8 V: Q' _+ N0 e 31 PSC_POWERDOMAIN_ALWAYS_ON, \/ V5 ]4 S7 V- M& h
32 PSC_MDCTL_NEXT_ENABLE); \
6 V6 G. [2 B1 U2 y. M& C2 T) Y2 ?4 t 33 GPIOBank6Pin12PinMuxSetup(); \
+ h- [1 w3 w# D9 s S+ F 34 GPIOBank6Pin13PinMuxSetup(); \) u4 p/ X% U& J+ Q6 k. a: }1 K
35 GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT); \' V5 O) Y4 S" O' g5 o
36 GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT); \! M4 `9 V D" }# q' F
37 UARTStdioInit(); \
3 c) I) Q3 O2 B; e& w+ P- p0 U 38 } while (0)
6 T) R S( s6 G7 j, e9 b% [0 j 39 #else
9 v: e# N1 i4 C$ w& _ 40 #define LOG_INIT() do { } while (0)
8 X% ]$ K3 H! z1 P 41 #endif! p2 s" T" Q: M4 t- J
42
8 _( h* z( u& E 43 /* Log Output */
& u; R+ ^" @& T: a2 N/ V 44 #define LOG_INFO(format, ...) \9 i; `$ t+ H& `6 Y" p. S1 Q4 u
45 do { \6 W# D- g4 R- \/ P. n
46 OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \' d. i7 f K5 U* w4 @
47 } while (0): J+ i! } B2 J) x( s% ^
48
( r2 \$ K' M- _, t+ {2 e* |" f 49 #define LOG_ERROR(format, ...) \
& g4 q/ i3 S, a4 b6 X( m2 O1 |( g, \ 50 do { \$ p2 J3 C+ I+ M! K* o# H
51 OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \0 j+ f( T) y( a( }3 K* d U
52 } while (0)
w* L' }4 }- U+ Z 53
2 _+ E& H$ H, |7 L# i9 y) T 54 #define LOG_DEBUG(format, ...) \& k; ?! y3 `& ?" H
55 do { \
0 |7 m5 {# a4 I! B5 [6 o# V* T 56 OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
+ s/ K$ E4 L: d) s 57 } while (0)
0 w+ F6 u; b+ H/ r& O! J8 a 58 # R, \7 Q7 k' O
59 #define LOG_WARN(format, ...) \8 P$ x; s9 G/ ]0 L3 Z9 c$ j
60 do { \
, c. n+ h3 {3 y0 l: \) G 61 OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \% R( o( l9 `, J. V
62 } while (0)
N4 D0 l, [1 B' O 63 ( j8 q; {- [5 m5 Q/ r4 ], N# y; g
64 #define LOG_TRACE(format, ...) \8 p6 c% o& J. S3 Q1 B4 s
65 do { \
8 T3 x- W0 ]+ n7 R2 D 66 OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \3 V2 p2 a* \. Y( K( z$ {: Y
67 } while (0)
! x2 j8 D/ N' v& s 68
$ q4 v+ o$ {$ V/ c3 ]$ [- @ 69 #define LOG_FATAL(format, ...) \( `" ~7 @8 V. y2 f* ~0 ?& R
70 do { \5 h6 ?& S% }4 g! f' m6 |9 G
71 OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
! r1 e9 F6 A5 L2 ^8 {. k 72 exit(1); \
5 r& }+ E" o! I8 N% h 73 } while (0)
, f1 |3 ]( n7 Z- n 74
# E+ ~5 a6 W R& O9 q ] 75 /* Assert */: Q5 c$ T T( g7 D. I/ l
76 #define ASSERT(EXP) \( D6 _3 C4 X" G, {; t
77 do{ \$ o/ d' T7 l0 O! U! d
78 if (!(EXP)) { \; H4 ^5 V2 c5 \* C, I
79 OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ ); \
# r" o3 F# T8 G9 h% V1 Q" Y) e1 t; B i 80 exit(1); \
1 ~+ o' f% E; B! h8 [* h" Y s 81 } \ U) k8 A: l4 Y6 T' j# t
82 } while(0)
$ ^2 K4 G9 m# V q5 Q 83
/ q1 A0 M/ d) L: i7 H 84 #endif
3 ]$ H) x/ q8 r9 a& l) {& I. j _' N |
|