|
|
1 #ifndef _LOG_H_0 a# o( y8 [: ]9 `* Z" m1 a3 u
2 #define _LOG_H_" e6 s% O. {2 h. w
3 : [2 g4 r. g1 I, ]: N* p( s5 R
4 /* 0: printf; 1: UART1 */
6 V5 S3 v8 A( H0 n, I! O 5 #define OUTPUT_TO_UART1 1
+ Y! }2 ?! ^( D. {" u 6
0 h6 a H5 _# z* b0 a+ n1 \( [ 7 /* Switch Log Output */0 q7 Q V7 X, W+ J w' a, D
8 #if OUTPUT_TO_UART16 p4 D' }* `4 `3 c- [9 W/ _
9 /* For UART1 Initial */
- C0 u4 C( W( s4 A! W( Z 10 #include <stdlib.h>
/ N; [/ j# r; \0 U6 W- @4 w& E 11 #include "hw_types.h" - Z* x0 ~1 k+ z5 t1 T U
12 #include "hw_syscfg0_C6748.h"- Q P/ ^2 g4 G0 J
13 #include "soc_C6748.h"
( a% x; r Y5 \( ~' C 14 #include "psc.h" . M: R5 V: k; F# f
15 #include "gpio.h" + ]7 S* ]+ Q* y6 Z' S+ ^
16 #include "uart.h"
; Q* g0 w8 [, p6 H/ p2 S 17 #include "uartStdio.h"- Q9 a) T& |% S! ^ @
18 0 ~4 g' W3 A% j0 {1 P3 C) B- W; p
19 #define OUTPUT UARTprintf9 K. Q8 L! [& ~5 @$ O7 Z% O
20 #else8 `0 j+ R: S# |9 A- P6 P/ e# s
21 #include <stdio.h>4 e1 ^" ?/ o# c1 f
22 #include <stdbool.h>
V$ a. n% i' P4 h2 i 23
. @0 x* d* {% i0 l P 24 #define OUTPUT printf5 ^1 L! |" G# j7 `) {( `8 X9 C9 k; N
25 #endif, B! `! w' c+ m# J
26
0 t3 g' _3 r1 f) ^' \ 27 /* Log init */! b3 @( }' x$ ^& Y* O$ U( F( x/ ?+ w
28 #if OUTPUT_TO_UART1( L% f) Q7 Y5 t& c
29 #define LOG_INIT() do { \& V' w5 c# s& I5 o2 u# C0 g
30 PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, \# i4 z! d" s g# ?! N
31 PSC_POWERDOMAIN_ALWAYS_ON, \2 Z: ~ Q& L: H
32 PSC_MDCTL_NEXT_ENABLE); \
' Y* F2 O0 O5 i7 X2 x# |1 |8 {$ l 33 GPIOBank6Pin12PinMuxSetup(); \
; j2 _* L1 [" e6 q8 l( P" s 34 GPIOBank6Pin13PinMuxSetup(); \) r6 H9 E1 R0 v; m+ c7 x
35 GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT); \" Y0 G/ d, {: W4 z) i
36 GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT); \+ y0 Z% _8 Q1 w" b- ^
37 UARTStdioInit(); \
9 j8 l; B2 M0 X) s8 j1 u5 @" u 38 } while (0)
; D8 u8 `4 X6 ]. v" P8 F7 l6 I8 ^7 W 39 #else
) `2 S* ~- F" O3 T 40 #define LOG_INIT() do { } while (0)7 i% ~* X: f. ^3 n
41 #endif: E( v' I" K+ ^" ~8 x% x
42
9 j# d. _8 x8 z7 o, E5 h: H 43 /* Log Output */
0 V3 d" D" r2 `. y( V/ V 44 #define LOG_INFO(format, ...) \
8 [) G% l' C2 ?8 l) y 45 do { \
8 X! C& b& L& h" \. q 46 OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \1 r: E4 L- ^% y* r3 B# N$ |* B
47 } while (0)
% B; ~: w4 `" z! p/ Z' p$ q: Q 48 9 V1 \1 V) p: P, |& m2 c
49 #define LOG_ERROR(format, ...) \0 r1 i# h# Z0 E% I4 s& r0 a' Z' e) E9 g
50 do { \3 i. U ^6 @$ x& p1 F, Q+ X" G
51 OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
6 I, I6 b" G* O; Z) b 52 } while (0) {8 s, |1 |5 }% c9 k8 V/ m$ n+ U( h/ H
53 7 E: [% ~( u' V2 Z
54 #define LOG_DEBUG(format, ...) \, C/ j, O. b& W
55 do { \
5 k: h4 [3 J$ j& v$ }2 j+ W 56 OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
$ Z2 O( x P3 M9 G+ x 57 } while (0)
- K0 i* n8 v: O3 B$ j+ B! t 58
/ V! q( `) I/ M2 [1 V/ }% C$ ?3 ~4 h 59 #define LOG_WARN(format, ...) \
0 m" Q6 ^* x; @7 V. l0 a1 | 60 do { \* L# z$ T/ F! d7 g9 U- Z
61 OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \' W" c8 h* V+ L% x
62 } while (0)9 w7 O# ]' }; C/ s: h
63 ! ]6 v6 C* Z' q" u% @9 n& \
64 #define LOG_TRACE(format, ...) \
& Y7 ~) S- s2 }( S2 @/ v: @ 65 do { \
& ]; s* [) j: t( A% j1 i 66 OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \) Z) F3 a& Z7 Q2 c' v" v
67 } while (0)7 m- K; x) s. v; O, j }3 n! {* Z
68
0 ?* f2 v: H8 `! D) f 69 #define LOG_FATAL(format, ...) \
1 q+ _3 i! m) J$ k 70 do { \
+ M0 V9 D% I9 y# T# l5 s! J9 ~ 71 OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \) ]2 f( R! ?. n7 i
72 exit(1); \( R* ^. o' T1 U; T+ w: v
73 } while (0) Y4 M' O" \8 s6 X
74
9 I. k" G) U5 t" \6 R 75 /* Assert */
+ O Q9 o/ v' T" f: p 76 #define ASSERT(EXP) \+ w0 q2 F7 ?" z3 T$ T4 i1 z
77 do{ \" Z. Y2 i' I% i& z! r7 E$ H, N
78 if (!(EXP)) { \5 X. L2 f( f" @" @+ _& d% k
79 OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ ); \4 ~/ \- t0 x8 v+ }7 C/ ^: C" D0 A
80 exit(1); \
}9 X7 F) N# T* d7 T 81 } \
, D) z/ f& n0 e 82 } while(0) d3 z- \, I5 }) \5 J* O
83 4 p' y, d& o% t) L" g$ J
84 #endif
$ K j3 `5 ^2 | |
|