|
1 #ifndef _LOG_H_
) `/ E) l3 f" Q8 V2 h 2 #define _LOG_H_7 v0 v: R" h- m# k
3 # q) ?- N- f: @( q' _
4 /* 0: printf; 1: UART1 */
2 F& j1 H9 T0 F* y 5 #define OUTPUT_TO_UART1 1 w$ Z- e* a) V
6
% q9 W k( f3 C5 | 7 /* Switch Log Output */5 l1 l N" `# d+ g
8 #if OUTPUT_TO_UART1; O# c1 S( o/ g; y
9 /* For UART1 Initial */
8 K/ V1 o$ k! f 10 #include <stdlib.h>6 n' ^0 u* I6 ^' p( U
11 #include "hw_types.h"
/ \7 f4 x! v. d2 | 12 #include "hw_syscfg0_C6748.h" p! p) S1 D, _. S' @" q
13 #include "soc_C6748.h"
; T! T$ r, D6 a% O 14 #include "psc.h"
6 f- m4 l9 _/ f& q 15 #include "gpio.h" : G9 o0 H4 m: I G
16 #include "uart.h"
8 K* _* G& `2 G$ C4 {# W0 ? 17 #include "uartStdio.h"
; D$ ^ o4 t" n3 o- b# C5 v 18
3 h6 }# b4 E7 b. H" z: j, C/ T 19 #define OUTPUT UARTprintf
. Y# @$ G5 v2 t/ _. _: ?' } 20 #else$ [2 H. W& \: Q8 i* n# ? K- C; ~
21 #include <stdio.h>' h$ d) G8 P: p" j. v, @
22 #include <stdbool.h>5 h' l- ?% H- L6 a( a' H+ w
23
8 F# O P, `6 Z1 X- H. W 24 #define OUTPUT printf
7 D! Z' q9 G/ D# W( X 25 #endif
/ E( L$ R( |& N# O; \; U# X/ p 26
' y q. b( z0 G& w* p 27 /* Log init */$ a4 a5 m c3 h. A0 L6 E
28 #if OUTPUT_TO_UART1: S3 b5 r- A1 l; ]! L
29 #define LOG_INIT() do { \
6 |+ p2 |% v. X 30 PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, \
( u# m7 ~2 ~6 r$ I1 s 31 PSC_POWERDOMAIN_ALWAYS_ON, \ |6 P) _! Z, `# D
32 PSC_MDCTL_NEXT_ENABLE); \: y" B; f9 i* B
33 GPIOBank6Pin12PinMuxSetup(); \; r: k# @0 g0 w; }. M9 x
34 GPIOBank6Pin13PinMuxSetup(); \- j. o- J4 G, s# l( [% n g
35 GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT); \
8 e W1 j8 L# p1 n" y 36 GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT); \
6 g; N& ?3 m$ ` b) e* X& m 37 UARTStdioInit(); \+ {+ n& G. V; b+ T+ b- U
38 } while (0)8 w+ _7 a3 Q/ Y( ]4 e
39 #else/ j7 D: W' [* ]4 N+ n
40 #define LOG_INIT() do { } while (0)! @: k; U+ L2 i4 Q; X
41 #endif9 H) l8 }' H4 z2 s
42 ! j9 P& v! `8 ~- X: }
43 /* Log Output */4 @/ h# e6 y4 Y: S
44 #define LOG_INFO(format, ...) \
7 K; h! y$ A0 Y: n: X2 \ 45 do { \
# u- P& d2 J4 x+ _$ | 46 OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \; R! x# t/ ~/ f7 z3 r3 q& z* h/ n/ P
47 } while (0)
- Z! Q% X% @9 o/ R0 O8 z/ J 48
+ Y1 X4 X0 X$ \" x3 R 49 #define LOG_ERROR(format, ...) \
0 \. Y1 k! Z9 z 50 do { \: R; @8 F) k3 ?! h/ A9 r
51 OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
4 f0 q: J& h# R3 D 52 } while (0)
( J( O- y# k$ x' U; c( p; e 53
: @' @" n6 Q" U( p, q# u7 T 54 #define LOG_DEBUG(format, ...) \
' L" |9 `( @, m. Z8 I8 C' K* B5 E. M 55 do { \# K# b: O- ?4 y8 b. @5 ]$ P
56 OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
% ?4 o2 N, _6 z8 a4 y8 D' K 57 } while (0)
; t% N+ _4 [+ l" D, X; d 58 ' V x& P/ G8 [/ E$ T, V" J# Q+ }
59 #define LOG_WARN(format, ...) \
% E3 ~; V) e) y, q0 s 60 do { \+ j; f: q3 o! b7 w$ P7 X
61 OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
1 v! g* \' \; g6 a 62 } while (0)
" p8 F6 r. j9 P' D 63
9 R$ u6 ?0 G. q; Q" x7 A) t 64 #define LOG_TRACE(format, ...) \' [3 t/ ^9 s V
65 do { \1 ]8 k0 N6 T- x! r! L# a) K2 f% O
66 OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
$ `( Y9 p1 ?! e2 v0 W 67 } while (0)" i: @5 @& c1 B, H( m$ X
68 " A) g& U3 A( G, h+ Z
69 #define LOG_FATAL(format, ...) \
/ s$ }- a+ R& @% G6 S6 j* p+ g K 70 do { \% r4 b$ |' @% O" f5 z0 `( F6 T; K
71 OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \) b! Y* K7 Y: O$ m5 {( {, p
72 exit(1); \" S: q& E) q3 X# F y# j( n
73 } while (0)7 m* [2 r! w- x+ O1 O. L
74 & j7 S- N/ G5 b, ~
75 /* Assert */) C1 K0 f9 [$ @4 u% P
76 #define ASSERT(EXP) \
/ c# n% g; q. f' Z# o3 g2 ] 77 do{ \ l# R8 v6 C3 R5 I7 y$ [# s
78 if (!(EXP)) { \
- \& i% ~: Y! s+ v 79 OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ ); \3 S2 |; x; i, b1 G3 b- n
80 exit(1); \
+ ?2 k6 ~5 g+ b 81 } \
* v9 z+ p0 _/ c. e7 N" q 82 } while(0)
" B4 [: a( B) [5 z4 x$ u, Q+ ~6 U2 Y2 f 83 " K0 @- N/ M3 B% o
84 #endif9 ^7 {" }' d9 b' U5 q( V" F! ]
|
|