|
|
1 #ifndef _LOG_H_) t8 Q* n2 N+ a
2 #define _LOG_H_
1 n8 i/ S/ B) R8 B- X 3 ! W, H \0 E- C* @" w
4 /* 0: printf; 1: UART1 */
$ v3 m2 S0 E) e! b- A% d( j 5 #define OUTPUT_TO_UART1 1
. E* t( }4 C# U" |" a, N$ N 6
" x6 V4 O9 m. ~% g+ A- Y% x 7 /* Switch Log Output */* W8 X$ u9 ]! v
8 #if OUTPUT_TO_UART1
, A9 e: ?: D3 i 9 /* For UART1 Initial */+ i' I$ x, L+ R' h7 o) _
10 #include <stdlib.h>
6 x( X% l8 q( Q8 H 11 #include "hw_types.h" . d% S' d/ P6 X0 L/ n0 N# S
12 #include "hw_syscfg0_C6748.h"/ n: U( B$ b6 N& O* T5 N- b" \5 Q
13 #include "soc_C6748.h"
f4 l9 i; `+ Y% j* n6 K 14 #include "psc.h" 5 t- k3 c/ C% J& m: `
15 #include "gpio.h" 9 x! h" q1 |" w: x. h# Y
16 #include "uart.h"# P0 Y, w0 V3 b$ w, S& X
17 #include "uartStdio.h"9 F2 [/ G4 g& t% e
18 ; Z* v# k+ L" x+ [: Z5 x- ~
19 #define OUTPUT UARTprintf
3 L# O1 E8 A: z7 s0 { 20 #else
9 i+ M: Z7 W& h; L! ] 21 #include <stdio.h>
% |" c/ R1 y) ^0 m8 R0 h0 z# C 22 #include <stdbool.h>) `+ r( O" M1 T4 _8 \/ E+ e
23
; @# c4 v( ?- Q' P: l5 i 24 #define OUTPUT printf) y- l/ S# J% l% z% `
25 #endif& V5 l- N1 M% Q p$ C+ c
26
- W* O1 I3 Q% u 27 /* Log init */# J4 d" a) G1 s( p% _! Z
28 #if OUTPUT_TO_UART1
, _7 b0 c l% |0 P2 _ 29 #define LOG_INIT() do { \
% O0 x7 A4 @% t5 c, ?! b% M9 d0 P 30 PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, \
8 u9 z2 H7 x. y& G& _) e U' T! G 31 PSC_POWERDOMAIN_ALWAYS_ON, \
0 U/ p h! j0 { 32 PSC_MDCTL_NEXT_ENABLE); \- H8 x) N5 A# t9 L2 R% a
33 GPIOBank6Pin12PinMuxSetup(); \
/ p6 S' Z- Z+ {% y# } 34 GPIOBank6Pin13PinMuxSetup(); \7 { |. S, P7 X' q# r) M; |* s
35 GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT); \
# O6 H% {& l9 h$ U4 r0 k, W 36 GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT); \
! d+ s# @* F. N 37 UARTStdioInit(); \
4 {) Q/ O* c" [/ f, B 38 } while (0)
7 f0 G; T4 o6 C6 X! U3 e& G3 ~8 D 39 #else
7 w4 w) {; D3 C6 q: e8 m& h 40 #define LOG_INIT() do { } while (0)% K3 z. m: x3 o. @8 W! @
41 #endif4 u' A5 d* n. M" N8 `8 |/ i
42 * Q& H, M/ _' _0 H+ G" Z' Q# i! c- f) ?
43 /* Log Output */
% k; Z9 n% B- L. Z: V 44 #define LOG_INFO(format, ...) \8 y% i$ P: K3 p+ c
45 do { \
" C/ r- e& D3 z& t 46 OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \) M6 t( c9 }7 \7 D6 k, c
47 } while (0)! t" D) w, ^* Y
48
# n3 m6 A2 n, ~0 m! T4 i8 k) ` 49 #define LOG_ERROR(format, ...) \
- l: l- V. K: _ z/ ]1 h! d 50 do { \
$ `, P7 F+ @/ k+ ^ 51 OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
/ {# }% A7 K3 |' ~' b0 C 52 } while (0)
2 l- P# }' ~- y. m" b* y 53 1 I' C! ~. ?5 c
54 #define LOG_DEBUG(format, ...) \
A# Q& q d: }0 h9 p4 S+ T5 l 55 do { \
( k, Z; n; h2 v5 M. q" a- ]2 ? 56 OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \- k; `4 |8 F1 C3 K7 p+ X
57 } while (0)
; Z- P5 |, C( q2 ^0 z 58
4 z3 s* z& Z; G 59 #define LOG_WARN(format, ...) \
+ y# i, j& g! ?$ k9 ?8 r 60 do { \* } t0 B$ v5 @' y) S
61 OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
0 d2 O8 R' M, B1 B' p2 ` 62 } while (0)
; R* w4 G2 k, P& Y! ` 63 ( e% \! M3 T1 z D
64 #define LOG_TRACE(format, ...) \3 s+ `! w0 U" Z0 J. ~
65 do { \
! E. [" F: n& A2 w: [6 d t$ o 66 OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \& W( s# C& G! n. `4 t& S2 s! ^
67 } while (0)
0 O3 h# \* {/ [* { d# Y% K' q. s 68 " O0 U0 X9 Y. v3 [' E
69 #define LOG_FATAL(format, ...) \
6 }" ]0 O* x( O 70 do { \
8 K* M* y. k& x: n9 d( W' m 71 OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \7 D; r# v+ r7 v. F: |2 H2 E
72 exit(1); \
0 e& M2 b8 I2 C2 o 73 } while (0)" P2 X( O3 b- l6 P: [/ I
74
, D: ]: `8 l" X5 p; [- H 75 /* Assert */
. `" b3 r2 V! ` 76 #define ASSERT(EXP) \4 P) R' o, c' i
77 do{ \
, D% l0 N# i% `, X3 }! B0 a3 h 78 if (!(EXP)) { \; E. ?% X8 Y T6 ^. {
79 OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ ); \
' I" [ u, E, A* J5 N! D 80 exit(1); \! Q8 p1 ` u# W' `* O
81 } \
) g: x( \$ |5 w6 T! g0 p 82 } while(0)
' [3 N$ i/ A$ }4 D 83 ! f) Q$ n6 U; b, v$ n
84 #endif( b8 l$ d* i+ v9 y. l+ B
|
|