|
|
1 #ifndef _LOG_H_
* y3 W# n3 c ]# C9 i 2 #define _LOG_H_
7 h& Q& L w" \, d8 A 3
) u4 I/ g% T' Y- |. ?0 C% A/ y 4 /* 0: printf; 1: UART1 */
9 l. ~/ S! g2 ~/ d 5 #define OUTPUT_TO_UART1 1
% r+ |7 B& J& X3 A4 |; ^! R 6 7 a6 a; j [! T' b8 X
7 /* Switch Log Output */
/ k/ j1 |9 @% X4 |- O 8 #if OUTPUT_TO_UART1
& I0 } O4 O: M& B+ H% m 9 /* For UART1 Initial */ W/ o+ y1 F8 b
10 #include <stdlib.h>
o3 b& f, X# C, {( n 11 #include "hw_types.h" - [ J8 P4 F# P: G Z7 B% Q P
12 #include "hw_syscfg0_C6748.h"
) P6 m) r: n* g 13 #include "soc_C6748.h"
! e" y. {( y" U, M* q% P 14 #include "psc.h"
0 T1 ?( ?( t& v, ]8 |! k- N 15 #include "gpio.h"
8 a: v0 A$ e. m' v# z 16 #include "uart.h"% i- [ I# J8 Y+ a
17 #include "uartStdio.h"
( w) e c2 z0 P( @8 L# F 18 3 h% v( H W/ L) x. p; n
19 #define OUTPUT UARTprintf. g* G# {& I+ Q0 K+ w; h
20 #else7 z; a9 c( j, L8 }
21 #include <stdio.h>
2 n( x$ R' }( z/ F% f, j 22 #include <stdbool.h>
: U3 W7 ?. a. h% N' l/ _ 23
* X( u; Y7 t! K& n* Y 24 #define OUTPUT printf
. ^ Q$ E- k* H, A 25 #endif; L8 V6 H1 u4 g3 z( D; A7 @
26
2 ?0 V3 H* V, I) f" w 27 /* Log init */
4 d; ]7 T) L( G- u% C2 v 28 #if OUTPUT_TO_UART1* w. [, L6 D0 A/ ~
29 #define LOG_INIT() do { \
+ n; l1 p) K; }6 v4 ]6 S0 | 30 PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, \! ~. ^" H' X7 T& A7 q9 D% n( O' l
31 PSC_POWERDOMAIN_ALWAYS_ON, \
5 D6 _9 J# Q$ r0 n* D 32 PSC_MDCTL_NEXT_ENABLE); \% Y$ P7 o$ Z% X1 O2 w* m: g0 t
33 GPIOBank6Pin12PinMuxSetup(); \1 l+ p# P( J! b, u: W
34 GPIOBank6Pin13PinMuxSetup(); \
" g& n& _7 l$ ?) j, n8 n6 T 35 GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT); \0 p+ q" \0 \4 K( x$ W$ R: }& x8 ]
36 GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT); \
% f8 A: B, R) q4 X7 R# x 37 UARTStdioInit(); \7 W$ K8 r0 [9 a
38 } while (0)
0 H( |6 c* N, S7 Z/ k5 Y% H! N2 L 39 #else
# ^5 G- E% ^- M/ E 40 #define LOG_INIT() do { } while (0)
, |0 x, p6 W0 b# v* H 41 #endif
: e) M( e, F" G. X4 ` 42 ! u5 L6 B3 V5 E1 k: A
43 /* Log Output */
- Y6 f w0 g; a6 G* ~& W 44 #define LOG_INFO(format, ...) \
& X; b0 g- x" s; I+ H8 O4 z0 _ 45 do { \( V. [4 j/ D6 N" o4 J% U6 c
46 OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
$ R0 [8 a. y8 W 47 } while (0). V: D/ Q8 \8 ]) J& d
48 # m+ t6 s8 R9 \, A
49 #define LOG_ERROR(format, ...) \4 a7 {7 h. ^: w- C
50 do { \
1 @# _# Z4 ?0 _, B 51 OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \0 {0 B( X2 I, j9 h
52 } while (0)
3 s9 K) \1 J9 a, T; P 53 ( X# f/ u& N* ?' H/ K2 }
54 #define LOG_DEBUG(format, ...) \
8 h- r" w; T# w7 x 55 do { \
9 @+ t* U; i3 z* U: } 56 OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \+ W7 C" k. s* X0 Q
57 } while (0)
9 @3 O. {' \) d+ O' G6 q! _/ q 58 1 q- U& k; Z4 j" h
59 #define LOG_WARN(format, ...) \' d- l; |5 ?6 W
60 do { \
$ @$ F8 d$ q) s0 J8 p, \3 K 61 OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
3 @: M9 ]' P" E( @% p( G$ P 62 } while (0)
4 d) W* X" ]1 M6 N/ p4 l. V% f 63
% V% O1 Y. Y& K5 j8 \6 [$ ? 64 #define LOG_TRACE(format, ...) \, c+ W7 ^: G& U# s
65 do { \3 W6 b0 X( p) t/ T4 i* ^% ]
66 OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \0 `" b$ a- Q6 i! ~6 X6 m2 z
67 } while (0)0 Q$ O/ I; J; |3 G3 c
68 ; ]- v, ?9 \' h4 o5 y# j; T% J
69 #define LOG_FATAL(format, ...) \" c! a6 w0 A% }7 m( E" R
70 do { \6 R/ Z# V# x' o% K5 k3 K
71 OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \6 s$ ?% F" x! a
72 exit(1); \
! n, _2 U+ O- w+ Q 73 } while (0)
' `- ]/ Y6 l5 u9 U9 v. w: `, ]1 | 74
0 x% l; K- y8 ~: z/ U/ F% p 75 /* Assert */
) Q$ j4 m; }6 c3 X& [. e; e; C1 t 76 #define ASSERT(EXP) \( K3 m5 y/ F7 {7 H2 y' q
77 do{ \1 l, `1 b- y0 O
78 if (!(EXP)) { \/ `" k0 w8 t1 \6 K
79 OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ ); \4 Z' k0 S/ }' K: w; Y& u5 s
80 exit(1); \/ }1 K& l$ d) b+ N% P4 n
81 } \
9 [3 u3 e; J3 N# _) q$ D4 x5 q: S 82 } while(0)! j9 H& U! d( ^; a3 [. a& a0 w8 i
83
$ Q/ U2 s" d ~9 p! l" l 84 #endif
" {% k2 ^0 S; S: h. s |
|