|
|
1 #ifndef _LOG_H_
4 ]" J5 J' q$ O8 | 2 #define _LOG_H_
' U4 H+ o- N; H. G 3 * ] v4 V6 R3 q; j* F
4 /* 0: printf; 1: UART1 */
* G, a! a3 s; k 5 #define OUTPUT_TO_UART1 1
0 a5 t+ x" g( X' U2 i" X4 [ 6
- e. Z0 R5 L' m; ?+ S 7 /* Switch Log Output */
* o$ |: a6 K; q* W% g/ A) N1 ?( U5 V$ _ 8 #if OUTPUT_TO_UART1& i$ D* ?5 k2 N1 A7 ]6 D
9 /* For UART1 Initial */, `" F) i! Q1 {& n) x
10 #include <stdlib.h>
$ k2 d+ u. S# ?& I8 [ 11 #include "hw_types.h" 4 \* S* d0 Q$ G# ^
12 #include "hw_syscfg0_C6748.h"( ?- l# j3 g7 Q. ^0 \* U8 B; m3 b
13 #include "soc_C6748.h"
2 [& F2 G: }+ j( }( T* _ 14 #include "psc.h"
+ U9 y3 V6 Y* Q5 N: Q7 a# M 15 #include "gpio.h"
* \* }7 J7 I1 D0 a1 y! G0 i 16 #include "uart.h"
$ O7 H; d3 g* C4 t 17 #include "uartStdio.h"
7 f" [0 O- ?) X* i% f$ V; h 18 8 j$ S. y9 H! E* C5 T
19 #define OUTPUT UARTprintf7 G- [) ~+ B, [/ I, p/ d
20 #else
( K0 Z$ ]# b, q. n8 |& A' d 21 #include <stdio.h>
o& q" {/ K5 z' l+ `/ h. D! B 22 #include <stdbool.h>( ]5 E* f# r8 t% S2 K
23 & o* O) A( f2 G/ y$ w5 H" K# k
24 #define OUTPUT printf
6 `! i2 W9 o6 S+ {9 l$ g 25 #endif
W9 w) Q$ ~7 U- _. n3 T) m# Q6 d' P 26 ' I# G6 N% O: ?! m+ [
27 /* Log init */% s9 F6 S1 f. Z7 {1 X0 ~
28 #if OUTPUT_TO_UART1
+ }! m1 d; B5 I- b+ W" k. S- ~ 29 #define LOG_INIT() do { \
( z7 `; z3 J- U# Y( q8 {; {' c: a 30 PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, \! x9 J4 c) r& o6 A2 B) S+ h
31 PSC_POWERDOMAIN_ALWAYS_ON, \0 A" s5 y% Z4 t, `5 a% s4 r% a
32 PSC_MDCTL_NEXT_ENABLE); \
+ ~! |1 s/ v7 n/ T7 @$ f6 { 33 GPIOBank6Pin12PinMuxSetup(); \( m7 X5 \2 w) f) l5 {- a1 u
34 GPIOBank6Pin13PinMuxSetup(); \( N) ^. Q/ _% W- u
35 GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT); \
& R2 t0 `2 P4 x. a3 [ 36 GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT); \
# @5 @1 n6 u6 L4 j/ F& A 37 UARTStdioInit(); \
/ E! m3 G4 f+ e( u! z! `, f 38 } while (0)
: K' P- w4 t s6 o8 E9 o" g 39 #else
; a6 G* Y3 K: Y" V 40 #define LOG_INIT() do { } while (0)+ S7 b! `3 C0 r, Q6 [: O/ n
41 #endif
4 g7 V6 s" ^6 P5 a" ^ 42
S9 z- |4 {& ~3 B1 \: \2 a- ` 43 /* Log Output */. A7 c p* `$ s
44 #define LOG_INFO(format, ...) \
" Q6 g2 X$ ~; L 45 do { \# j$ c7 @' Q8 ?
46 OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \/ `; r3 {% \3 t8 z* O0 F3 v2 g! n
47 } while (0)8 c5 n" p5 j; P; x8 i" y
48
u4 H c* H9 ^ ^+ Z 49 #define LOG_ERROR(format, ...) \
) ?+ Z( x0 w$ [" X" n0 {6 h+ Y1 D, ^ 50 do { \
6 Q3 c& Y. y2 F3 Y3 _ 51 OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
, _! x, @: A8 Q4 } T7 v 52 } while (0)
3 f9 D) r1 D& C9 w& i 53 - B/ h( r: @, h- Y& E/ s4 J
54 #define LOG_DEBUG(format, ...) \6 n. L* A, Q7 Q/ s2 T
55 do { \
7 t! V" R( O) s! k C 56 OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
3 H) L' p, Y0 E; e3 v& U- @) t 57 } while (0)6 \5 q; h5 l8 N- u& m5 h" Z- s. R
58
5 \% D+ w0 g2 r m! t 59 #define LOG_WARN(format, ...) \! t' ?& C* _, J- ~" m: ?
60 do { \5 ]0 G6 q( w7 F0 s
61 OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \. I) ~1 d M6 k4 }- u3 l
62 } while (0)% P- i; `5 w" O) f; O, u
63
0 L1 Y8 m7 I0 J8 N1 }* X2 Z 64 #define LOG_TRACE(format, ...) \# }% `! D( }' G: V2 w3 G& E6 m
65 do { \8 W& S# S) P- j( w; i2 c0 f0 v
66 OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
9 a: R; @) E5 V) Q 67 } while (0)* j* Q( I% N9 {( H7 s9 v
68 0 o5 D/ w; q6 D/ U
69 #define LOG_FATAL(format, ...) \0 P0 ^, _; s V6 e4 T
70 do { \0 S* p' D& ~. |: S* f+ y8 U: y
71 OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
( M/ B+ ~9 G9 Z5 J* l 72 exit(1); \) W/ P ]; R/ E
73 } while (0)
0 S& g6 a4 N1 a! F- [& w 74 $ n$ D& j5 K: {
75 /* Assert */ w4 @* I% z7 L- V: s% W
76 #define ASSERT(EXP) \ T6 W0 I& y# {2 }, z9 J( H0 ~& Z
77 do{ \) r9 O9 J# W, |2 i
78 if (!(EXP)) { \
; N& B$ E, R' c* R' V 79 OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ ); \
* h5 M& |" H$ {: X. i/ q+ C 80 exit(1); \
) g1 X4 j# C1 I" [- q 81 } \
9 @& i4 J5 r: S x* f 82 } while(0)
$ s/ H. [3 y; ^4 c 83 7 S$ ?, P7 S3 A+ T4 U9 o
84 #endif
+ P! h& E6 e% Q) s$ y8 U) S |
|