|
|
1 #ifndef _LOG_H_5 R: U/ }9 s4 a( l! |8 Q( z6 b
2 #define _LOG_H_
2 m; G- y% \2 r e 3
" Y& K" Z' ?, b( X5 @( | 4 /* 0: printf; 1: UART1 */
1 A& _2 R0 N7 M4 M! W: {8 D 5 #define OUTPUT_TO_UART1 15 C8 R3 V& L8 V& J2 `& j/ d
6
. u3 E" T6 O# r+ K& ]& L3 r 7 /* Switch Log Output */! q. H" T, J# H% P7 r5 g* }4 W
8 #if OUTPUT_TO_UART1
2 O* ~. ]! |2 P. h9 U) k 9 /* For UART1 Initial */0 o- W; a2 I; r- R2 N
10 #include <stdlib.h>
; h$ x! ^+ I% i6 N 11 #include "hw_types.h" ( y1 w8 ^. d. i9 N% A' ]+ S8 L
12 #include "hw_syscfg0_C6748.h"( \5 A/ ^5 U' i& ?9 t: m
13 #include "soc_C6748.h"
& A$ _, }0 ?0 z8 T3 P5 ] 14 #include "psc.h" " A4 t" c$ X" V& j/ _
15 #include "gpio.h" 1 l2 w/ \9 E8 |1 I' U4 C) F0 J
16 #include "uart.h"/ o% V+ S* U+ j' |0 p5 x
17 #include "uartStdio.h"
0 ]1 W: v, N+ @, S 18
( T9 o% T& Y+ Y* d% W9 O 19 #define OUTPUT UARTprintf
5 J( W& q, [4 w. G4 c- q% ?$ O 20 #else/ \7 o% P$ q1 a @: t
21 #include <stdio.h>
) n$ F+ i$ Z* P9 y! T 22 #include <stdbool.h>
7 i$ F! v; f/ `8 ~! L* W7 F9 x 23
( P. w) n" X! Y& i: d- R# S 24 #define OUTPUT printf
) ?# M3 K5 K1 l( v, s# r0 D# Q 25 #endif
5 ~3 ~2 c5 q) W \ 26 6 e' J1 [ P' i, G4 G
27 /* Log init */, y& |4 n( @2 e' h" ~4 m
28 #if OUTPUT_TO_UART14 V h/ S& o) ?5 G# u
29 #define LOG_INIT() do { \( a7 l3 o2 Y+ d" A) s. k- T
30 PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, \
7 ^" _# {7 a7 P 31 PSC_POWERDOMAIN_ALWAYS_ON, \
2 h/ z0 l) j' u$ V* p0 Y* \ 32 PSC_MDCTL_NEXT_ENABLE); \
4 @) s! G2 g$ i 33 GPIOBank6Pin12PinMuxSetup(); \
) q0 ]/ W! O# G1 }& Z; l/ Y2 [# ?$ Y& P 34 GPIOBank6Pin13PinMuxSetup(); \
+ w( I2 _- x1 v 35 GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT); \
( G& i' F+ h" _$ f! M0 } 36 GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT); \
, s& W4 x7 A+ X2 M1 L7 n& |& c 37 UARTStdioInit(); \' W' C; |$ X* z A+ ?( b/ Y2 r4 b
38 } while (0)6 l% i L6 `' m
39 #else
+ }, |3 b; q( h+ h+ n/ M+ |3 q 40 #define LOG_INIT() do { } while (0)% i: I3 |# ]5 K1 X7 {& w# T! V
41 #endif7 _( ^' J) I( d3 q' w0 r) W
42
* K5 `; J% T9 U( g3 E 43 /* Log Output */) U! t) _. \4 p1 h. h( g: _
44 #define LOG_INFO(format, ...) \5 Y- i5 j9 m0 g- j J2 a
45 do { \, p' m6 x5 p& R# M3 y& N
46 OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \% Q; ]& q2 n3 ]4 T& B' K
47 } while (0)
7 n! F9 h& j: Q+ W: O2 H8 ^ 48 : v+ E% Y J" B! A. u9 S/ s
49 #define LOG_ERROR(format, ...) \2 ]5 U$ F- \+ [2 ?/ ^
50 do { \
?% l& m4 b! b 51 OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
6 A% n4 \! N& y+ F7 u( L 52 } while (0) }/ Z; a" V, U$ A* ?; R2 F* D
53
* x0 u! E H$ {% b' z* o2 F; U 54 #define LOG_DEBUG(format, ...) \% B7 C$ ?& _0 n' T' ]
55 do { \
) G3 H$ g1 K' I' o; Z 56 OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
. c% a% M4 Y/ x- U @4 a 57 } while (0)
/ r0 s/ C! ?4 o5 R2 {, C 58
% X# C! _3 p' | 59 #define LOG_WARN(format, ...) \# ^) Z' n5 Z* Z5 }2 k0 L) L% U7 @; e( J
60 do { \
3 k2 G% e( f2 O; g 61 OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \7 L; Y1 z- X" G0 H5 _3 t9 w
62 } while (0)2 H3 e! s: P$ v) ~7 Z
63
- q( {3 w6 J( c6 f 64 #define LOG_TRACE(format, ...) \
( c- U6 F1 u9 F( t& T 65 do { \
6 m d5 Y7 I$ r. ~0 G 66 OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
4 N( i9 [1 H( O 67 } while (0)2 Q8 B7 r$ `2 S2 v
68
9 a- Z, }3 f& U* w3 Q9 L/ i 69 #define LOG_FATAL(format, ...) \% k- u9 t5 M8 E
70 do { \$ n" R' f; M+ @& E
71 OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \! j2 X! S$ V% x
72 exit(1); \
$ Z) }! B1 W2 e& ] 73 } while (0)3 D- S0 l' n; e6 g9 R( _: O* E3 {
74 , ^4 N" o* n6 _
75 /* Assert */
* i- O* x+ P; T+ e) B 76 #define ASSERT(EXP) \& F1 W7 q/ M0 X
77 do{ \1 |- z( n$ N# M
78 if (!(EXP)) { \7 x) w2 S# N; L
79 OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ ); \5 ^ r& @# X9 p9 V( N
80 exit(1); \( ]4 A1 p( k9 |3 F" x
81 } \
, d) D' N6 z3 r% \7 \' y4 _ 82 } while(0)* h; P7 w O% }4 e* u% D
83 7 k+ p5 n% x$ a& F, J+ ], I
84 #endif2 V# z* g% h( B. N( f
|
|