|
|
1 #ifndef _LOG_H_
- ]& y7 r) r! W( @ 2 #define _LOG_H_0 o2 b, V2 ~' W
3
% m* O$ J7 @$ U& k; t( C 4 /* 0: printf; 1: UART1 */
# v4 `! A' _. f; F$ d! z 5 #define OUTPUT_TO_UART1 1
- j. d! u3 O; {& f/ u- B+ ~& I 6
; A& E/ S9 `1 v6 y7 S3 a) T% G 7 /* Switch Log Output */$ G+ G9 S t2 `! k5 k; h9 T' Y& n
8 #if OUTPUT_TO_UART16 z2 J5 a$ _7 { |2 K$ M
9 /* For UART1 Initial */
9 Q' {7 H3 J( F9 c% l; G 10 #include <stdlib.h>
( F9 {" Y% g5 l. i- I" F# [ 11 #include "hw_types.h" ' P4 t1 ?/ l) \( V# X" K0 |
12 #include "hw_syscfg0_C6748.h"
. ^/ j$ k$ S& h! j 13 #include "soc_C6748.h"+ |1 @5 K* ]" p$ o
14 #include "psc.h" ! j$ c6 |+ E# ^) u. O4 u& ~8 `7 K
15 #include "gpio.h" ( j" o! `5 J. L: f4 G
16 #include "uart.h"! u' ?9 h# ~/ E8 t# z: }. p0 `
17 #include "uartStdio.h"
9 s; s& c7 ]7 g* u+ p1 f. Y I 18
1 b) P+ W0 Q) w4 V8 ~( [. p 19 #define OUTPUT UARTprintf
, g5 U) n( o; J3 Z! N 20 #else A7 Y0 w1 m& a* u
21 #include <stdio.h>+ F$ P# D/ R& Y5 p. S* r. n' f9 L
22 #include <stdbool.h>* P6 G) Z" O+ _( J% n
23 ! `6 H; z7 v6 T9 T
24 #define OUTPUT printf
2 Y0 T8 q- }' E7 `7 y$ G/ y 25 #endif
( \5 J$ u) G% B7 D7 } 26 2 y) I. o1 x$ M# H% |% }
27 /* Log init */# h. ^7 l4 \* U
28 #if OUTPUT_TO_UART1, N) K1 X8 P' U# o" d6 R, x
29 #define LOG_INIT() do { \
9 P' t7 L7 ?1 d; z# H 30 PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, \& R( S9 [$ l; F. C
31 PSC_POWERDOMAIN_ALWAYS_ON, \
: H W7 M! c0 u3 W 32 PSC_MDCTL_NEXT_ENABLE); \" x* V, ^& E: k- c! t
33 GPIOBank6Pin12PinMuxSetup(); \+ D; V/ y0 L! O1 G" u/ F S
34 GPIOBank6Pin13PinMuxSetup(); \
3 K# _1 I6 A3 c, }1 w 35 GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT); \
4 U6 ~) L) `+ Y 36 GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT); \) F% h$ l+ e" Y1 Z: Q% i( {
37 UARTStdioInit(); \9 Y1 ]9 I- c" j+ |3 l/ }
38 } while (0)
3 U- k3 N* l; o+ N5 g. _# U% ^ 39 #else- q2 S1 \4 U$ c/ w
40 #define LOG_INIT() do { } while (0)/ }2 H: a5 |0 G! @
41 #endif# M/ W; q. |5 h% C
42
7 L+ {6 K/ [$ Y/ t" Z4 v* j8 y 43 /* Log Output */8 d5 I4 [/ w: l& t4 f3 p9 X
44 #define LOG_INFO(format, ...) \
L! K! ~ r' }# \* g 45 do { \4 ]9 }, P+ @; k+ v
46 OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
3 @% j; k: I4 a$ ^* I, T( |9 O9 P 47 } while (0)
3 j$ J/ I/ o5 ^" a* Y" u$ o 48
7 g7 u& m) X4 K 49 #define LOG_ERROR(format, ...) \/ ^# M; ^: w/ q# ^( }
50 do { \! y6 [% k/ E2 ?
51 OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
, o8 J7 X; B* n 52 } while (0)
4 s* {1 a* x9 I' V- ` 53
1 W0 p" r0 c8 Y! _. V2 k6 C 54 #define LOG_DEBUG(format, ...) \
. [: Q& U5 ]& O! T 55 do { \- E6 H1 R- {: D) Q3 }5 W6 C
56 OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
2 l; r- l* ?/ m) ]- w2 s 57 } while (0)
3 Y4 X' y& p2 X2 u) _% |5 _: u 58
$ ]# l4 S/ w/ T5 I- h' k 59 #define LOG_WARN(format, ...) \
! T6 r/ k3 T1 p; e# j 60 do { \
# [8 C+ w3 m+ c; I* y" r3 [/ K 61 OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \6 x/ Y, {& Y* n$ ^) E
62 } while (0) e' z. A h5 s0 Q2 ?: ?! q# k
63 : M9 @6 v! p& i4 ?6 a) ?. w
64 #define LOG_TRACE(format, ...) \ v) Z: ?: o6 Z, _3 ~ A3 a7 Y I
65 do { \; J. h2 A, Y/ H, n) I
66 OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \& @# b& H% ]% S: i
67 } while (0)% S0 P) Y0 v e) T4 m: ~0 a4 N1 P
68
& Z# O* s% T8 l" ~ 69 #define LOG_FATAL(format, ...) \& g6 Z; N. S3 p8 ]5 N- C1 x$ u7 ~
70 do { \' m5 J+ U4 T4 }( ^
71 OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \4 v/ I* O) w6 }% @& t6 Q
72 exit(1); \, F* Y7 F7 J5 c, n: C9 @* r8 k
73 } while (0)
( d! M2 J6 p" b. V; r 74 * w q, h' u' p5 o- U2 X; ^7 O( I
75 /* Assert */3 }# Z) [7 r% Y8 t: A6 L9 C
76 #define ASSERT(EXP) \! i) q/ @4 r/ Z' {: ?3 _
77 do{ \
; h! ? x' l2 j) T6 s 78 if (!(EXP)) { \
. a+ [& ]$ q- l, v* `( Z 79 OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ ); \" P* Q+ n" Q+ c' z, O9 q
80 exit(1); \
! b. O' n5 E$ ]! I* B' @& ?( k% [0 z 81 } \
: w$ {, E2 e' p 82 } while(0)( _0 r- [2 j% H/ ?" z8 @+ B. ?
83 7 q: X7 H: H( E" s# r
84 #endif
2 |$ c/ r {, G* g ]+ e" H$ ? |
|