|
|
1 #ifndef _LOG_H_8 u6 e$ @6 O* F. r8 a( L" M
2 #define _LOG_H_* d7 l; j+ x3 j) B* a
3 / l( C4 |- [& V8 _+ `% @
4 /* 0: printf; 1: UART1 */
/ V& E. @2 U8 J9 l) j- n" U2 W# C8 h 5 #define OUTPUT_TO_UART1 1
" F2 z1 r# N. \, t I5 O5 { 6 - N) y. V- i. A' z4 Y
7 /* Switch Log Output */
$ s+ ?" i- k9 F/ m9 ]3 h; c" V 8 #if OUTPUT_TO_UART1
% p/ t( u2 g; V9 Y# l" d: z8 E0 R) z 9 /* For UART1 Initial */
. k1 y* B2 ^% h0 i) ]- d 10 #include <stdlib.h>
/ ~; r0 J& T1 W1 n3 W; Y" V( W 11 #include "hw_types.h" 9 B: Q. T" S- j0 D8 n; D
12 #include "hw_syscfg0_C6748.h"
0 _& h% c/ ~+ h5 Y% `4 R 13 #include "soc_C6748.h"
: _* Z0 ^5 F) O 14 #include "psc.h"
# M E. f2 H4 g! ] 15 #include "gpio.h" ' G Q3 u7 l; h9 n1 l
16 #include "uart.h"
9 D* b ~; j0 I 17 #include "uartStdio.h"
# H( ^: x7 W: D- T+ M; k: |, @ 18 / W* R" z/ S- E: U6 S: b" @8 k! Y
19 #define OUTPUT UARTprintf: r0 i( H: I) ]1 S& Z9 n
20 #else
9 V( P/ o1 I9 @ 21 #include <stdio.h>
$ V0 v7 W: x8 A* F0 W 22 #include <stdbool.h>! d0 T* O; }% q5 Z; y5 [* w
23 . f* I; w, e9 F$ ?2 [0 N
24 #define OUTPUT printf, V9 v$ n3 I: f
25 #endif
% S' C: w$ t% B1 C/ o9 ` 26
, V; ?1 Y( Z( ], H) \ 27 /* Log init */
9 V! I1 B R0 ?) a 28 #if OUTPUT_TO_UART1: u) o6 `6 r: J5 ~
29 #define LOG_INIT() do { \8 P8 W) o( J6 [5 k3 ` T. ~
30 PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, \. L6 L6 W5 O) M, O7 ^
31 PSC_POWERDOMAIN_ALWAYS_ON, \
- d$ v/ I( c& S2 u. J1 z& ~7 }5 M% N 32 PSC_MDCTL_NEXT_ENABLE); \
: q# n Z9 m4 P 33 GPIOBank6Pin12PinMuxSetup(); \
8 K6 D x; u/ F; N3 S 34 GPIOBank6Pin13PinMuxSetup(); \
8 f% g3 e, k9 a) l' p 35 GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT); \
- X5 P1 U' [' e 36 GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT); \
- u% {& ?3 X* b 37 UARTStdioInit(); \
, u) G: U9 t# g# l. `& C$ L- ~+ i 38 } while (0). Z$ f- Z2 u3 m0 ^5 D* U
39 #else
7 H [2 ~) q% d, {7 q. w 40 #define LOG_INIT() do { } while (0)' n, M7 s, k. G( \7 r
41 #endif9 |2 t# d4 i9 Q+ r3 E
42 / ^% H# F, a& ]0 a: m
43 /* Log Output */# b B- [3 i2 `; ]" `
44 #define LOG_INFO(format, ...) \) {+ f$ M' x5 R) i* J- @
45 do { \& F: v" ]' L1 {3 H) K
46 OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
- `7 U( N9 j) T& \( h: N/ R2 g& e 47 } while (0)
3 J5 L/ B$ @4 F3 s. d4 F" E2 t# C 48
/ ^7 Y8 b5 s$ G' V$ {2 N# m 49 #define LOG_ERROR(format, ...) \
* K- b' U: S) h- {$ d. t9 D8 A 50 do { \) q E& j* d$ d" M3 p* w
51 OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
1 u! Y2 ~$ }$ o+ d2 I( G0 A* d 52 } while (0)! g( P6 V- v7 X; |- k! w# p9 S- X* L
53 7 p" K/ h; U5 }+ d1 p6 G
54 #define LOG_DEBUG(format, ...) \; a. O3 x; E X9 n. e+ r* x0 J
55 do { \; L$ O$ I% J+ u7 u2 I' n
56 OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \" U8 U9 v* @" s- s, i
57 } while (0)
" b: j: m$ a: L+ a/ [; m6 i# c$ q; G 58 : |9 P( M+ v4 }6 V7 u# G
59 #define LOG_WARN(format, ...) \
/ Z# M8 W; {( v: f" I 60 do { \
- }$ ?1 Y# B' N" M 61 OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
! }( ]# ?7 b+ W k2 I2 ~ 62 } while (0)% _( G: ^4 g! s, [
63 , L; ^( z0 o. O$ } x! j# ?
64 #define LOG_TRACE(format, ...) \5 J' j4 |, Y. q
65 do { \
6 S3 W! I/ l( Y5 ~: t" T% J 66 OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \* H2 ^) X$ |4 x% i/ D
67 } while (0)! S+ \6 ~' V' z# Q
68
! i. k. @4 z6 `9 R! S: B1 O) n 69 #define LOG_FATAL(format, ...) \
8 {+ j2 a( r( Z, X8 w 70 do { \' h1 }+ ~& w) S! _$ q+ @* d
71 OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \. h0 M( ]; }& L {$ O# g; m
72 exit(1); \/ H/ A: W& Q4 M) n0 ]& `5 O
73 } while (0)
- R. x# q0 j- V1 v; |) ] 74 5 Q3 w' ~* L+ x( ~: T
75 /* Assert */; m4 H" E% F1 \
76 #define ASSERT(EXP) \
. j$ y' U: h( ~( o" q& C0 P: ^ 77 do{ \
; b3 g$ q0 S/ V 78 if (!(EXP)) { \9 ]+ _3 @! F" P/ |( l
79 OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ ); \
$ l% G( K* i" E1 P" l% E" M, U 80 exit(1); \) u( w3 m1 W n* V/ }# s$ R
81 } \) U3 B. m$ a. B5 k7 \" R* G
82 } while(0)
- o) Z- ^6 w2 U2 i 83 ' @; {) S# f. _7 S6 L
84 #endif# w! n' w9 b5 W' F5 R
|
|