|
|
1 #ifndef _LOG_H_
y$ _* `" j8 t, l8 o* q 2 #define _LOG_H_
4 n `1 p8 s9 i9 P% t 3
0 A. v1 p: {& q1 a7 {7 s 4 /* 0: printf; 1: UART1 */3 F- w4 \+ H5 C! F$ t
5 #define OUTPUT_TO_UART1 1& Z8 ~3 J& I, e7 Z* @
6
6 W' `4 ^% H- Y9 Y# q% F8 K 7 /* Switch Log Output */
$ |, P3 @+ z. Z4 V+ P4 ` 8 #if OUTPUT_TO_UART1 L) u/ y& D. X* B5 W
9 /* For UART1 Initial */9 P& U* u3 P& t: ~
10 #include <stdlib.h>8 f5 c* @0 N/ l) X9 w% X$ }* x3 j
11 #include "hw_types.h" 6 t( Z- V I" p1 `
12 #include "hw_syscfg0_C6748.h"
/ w# J* h- Y$ O 13 #include "soc_C6748.h" q! X5 W5 \* }
14 #include "psc.h" " `3 |; J2 _* M! c/ u
15 #include "gpio.h" 3 p/ E- e1 b8 m& Y
16 #include "uart.h"
, k4 I) C M: Q 17 #include "uartStdio.h"
$ E- ~1 G6 l/ r! |+ C. b 18 # B- q7 s& l- l
19 #define OUTPUT UARTprintf
; w. ?$ I. K1 o9 z7 Z8 j8 O 20 #else1 y0 a4 w0 Y; P, M) [4 k w
21 #include <stdio.h>
: U k$ N0 n N% {4 o; ^ 22 #include <stdbool.h># e% {6 \+ F* `% j, z- O
23
$ e% |* K+ Y% P8 p1 M1 i) _% q 24 #define OUTPUT printf
3 M, [& o; X O u- i& B; Q; i, w9 t 25 #endif
$ H! P( A @( N, Z& ?7 L/ ~# L 26 : y# h, Y) P$ E
27 /* Log init */
( n2 u" U- Y0 H O8 q4 D" m1 R 28 #if OUTPUT_TO_UART1$ K; H/ G( a, D: ?
29 #define LOG_INIT() do { \4 w. o- ^& W+ e& g* r! I
30 PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, \& I( ?+ W# t9 e9 l
31 PSC_POWERDOMAIN_ALWAYS_ON, \" S( o3 z$ L9 {1 g
32 PSC_MDCTL_NEXT_ENABLE); \) p3 m' \4 z, Q4 d$ ?! ]1 Q& |8 o
33 GPIOBank6Pin12PinMuxSetup(); \' d4 f) L% C. s- f+ F
34 GPIOBank6Pin13PinMuxSetup(); \
) O: {- Z9 ~0 U% F: D 35 GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT); \1 m6 G" q `' g% L
36 GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT); \7 }+ o& Y; F5 C2 _
37 UARTStdioInit(); \
6 G# r2 a6 q. y 38 } while (0)
2 m1 b0 a' i' P& e* S 39 #else
3 @. [& {8 O a7 h 40 #define LOG_INIT() do { } while (0)
T$ I' [6 r5 T4 q 41 #endif- I7 d3 h" |' r9 G4 P8 @
42
2 g0 ?& Q5 |' y4 j. V" @- _ [ 43 /* Log Output */2 f9 W( c+ w Q) X: [3 q
44 #define LOG_INFO(format, ...) \
% L& ?/ m! S. h* } 45 do { \
) k' ?' x6 ?, X. ]. f' X) `6 B 46 OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
3 I) @5 G* ]. p H9 c 47 } while (0)
( o1 ^4 Y8 X1 H) C6 Z0 L 48
: B) A1 E Q" ~" t7 Q: \2 J5 _ 49 #define LOG_ERROR(format, ...) \
5 T7 S2 Y. E( T 50 do { \
; z# {) \/ D7 B& l 51 OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \6 A: i. x7 m+ ?5 z' F( [
52 } while (0)# @8 m* e; [+ E- m
53
% @9 R5 u% P3 }, k4 V2 L$ ~ 54 #define LOG_DEBUG(format, ...) \$ s. O' Z9 c4 s3 _# m( U# m7 }
55 do { \9 H4 m% \9 }/ Q6 j+ W. v+ f( t
56 OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \; t) K3 U, l1 s: ^% y5 _! Z& t
57 } while (0) W$ J) {& ~* M* i: |8 C
58 9 V* Q& B/ |: M0 a/ b
59 #define LOG_WARN(format, ...) \$ u5 W4 D0 d9 S5 o: C
60 do { \
4 }7 E) ~1 s" x( \: ]& ?8 w 61 OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
6 p8 h# R3 d; a5 s" j 62 } while (0)% a, ?- Q& W' v4 B0 u
63
9 _( v4 u* R: J8 B 64 #define LOG_TRACE(format, ...) \6 T Z% F+ M. u) ^+ a; X0 C" _8 {* q
65 do { \2 c' w" s6 w. ?4 f5 }0 | [
66 OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \6 V6 [) u& W- o; v2 J
67 } while (0)
3 Q+ d3 B' H B 68 : L& a9 D% r7 `4 x- Q
69 #define LOG_FATAL(format, ...) \
! Z# Q# q y. {* S% g% b4 f 70 do { \+ k3 n" c J( a" u- Z3 V' H- Q
71 OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
. \: ^3 s% ]$ i. C8 A 72 exit(1); \
: Z2 M6 ]5 {* ^6 p/ p) E9 V 73 } while (0)8 x$ e' a5 N. r, J# U
74 & B! g! ?8 _) N5 x+ ?
75 /* Assert */
" A. R1 T; f' H' I8 }) y 76 #define ASSERT(EXP) \( y+ V8 I# G6 Y! S# w8 m( }
77 do{ \( R# X k A( m9 }1 I' C6 H( C
78 if (!(EXP)) { \
6 k5 t. S& r2 W( `- L" f 79 OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ ); \
$ x8 W/ ^+ E9 ~3 N5 Z7 b+ ?9 Z) A+ D$ l 80 exit(1); \
. W% `1 K/ L" g4 i 81 } \
0 ?& m! F9 O( [4 @5 ^. v; a1 p0 M 82 } while(0)
2 D( n% ~. e8 F* c& d 83
* M5 J$ F. m) B& ]4 p% Y* ~ 84 #endif* l5 c4 h/ N1 q* b# s$ h7 b
|
|