|
|
1 #ifndef _LOG_H_3 @: {* a: a9 G" y: G. ^
2 #define _LOG_H_
2 W6 H& @. z5 m/ Y4 ]- k" }7 D 3
; z7 j# r1 |% ?( C( z4 b( m6 W 4 /* 0: printf; 1: UART1 */
( ~( x2 p3 g' W# u5 o$ W! e3 q: ? 5 #define OUTPUT_TO_UART1 1
9 a+ I: A2 y- [+ F0 W# o- u 6
' ~$ ^6 R8 T8 @/ @7 j2 K$ Q7 w 7 /* Switch Log Output */
! y8 R) i6 I1 Q/ u0 t 8 #if OUTPUT_TO_UART13 b4 q2 ]% ?+ k s7 _: H
9 /* For UART1 Initial */
9 I) k/ g$ K4 M 10 #include <stdlib.h>' H1 }- t, d; K: ?
11 #include "hw_types.h" 4 s. A1 e0 K; d5 c8 b! C( p
12 #include "hw_syscfg0_C6748.h"
- l: z* d3 r6 n+ {# t+ [ 13 #include "soc_C6748.h"3 L* G0 j5 i" g9 X7 j+ m
14 #include "psc.h"
4 j3 \8 u( _+ _% @+ F 15 #include "gpio.h"
7 t/ m5 [# b% ~ 16 #include "uart.h"
8 J L& A; E+ Z+ [ 17 #include "uartStdio.h"
, K2 r& b" ^. X, c5 x7 y0 e( E 18 + R! [. {1 B) Z
19 #define OUTPUT UARTprintf1 ~3 C6 Q% Y0 r. J: ~7 t/ W
20 #else) X% T' ^& D a
21 #include <stdio.h>
; H" ]( w9 t: q, \, L- U 22 #include <stdbool.h>
9 u, |: L |! G- c/ b 23
/ O2 p3 T5 ]; A- x5 y/ l1 q, b 24 #define OUTPUT printf
! p! m; m: D6 n+ a9 s 25 #endif" d9 S3 u1 q+ k9 D/ F! _4 f" D
26 : Q3 H" G1 x/ V
27 /* Log init */& x+ s6 P, _0 b) P+ m# I7 |) L
28 #if OUTPUT_TO_UART16 ^2 L7 _, R& Q5 z" M& ]# g
29 #define LOG_INIT() do { \
$ ?0 p+ z2 \; l: D* X 30 PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, \5 ?) r: a% l+ `. U8 p1 g
31 PSC_POWERDOMAIN_ALWAYS_ON, \( F; ?! f! C* ~4 ^& `5 b
32 PSC_MDCTL_NEXT_ENABLE); \3 C+ O2 v' y9 A
33 GPIOBank6Pin12PinMuxSetup(); \( B8 y/ b3 P: ^) r7 {
34 GPIOBank6Pin13PinMuxSetup(); \: {, U0 k$ y6 A4 a* ^( i
35 GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT); \
. Z+ q0 C4 D/ A; H, O. C( S+ U 36 GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT); \' ^7 c V$ c7 `3 n, k- R W& _
37 UARTStdioInit(); \
7 @( S$ X" Y+ Y" k, g% ~% k% T 38 } while (0)( \5 N& Q% @9 n9 ?
39 #else5 f" S4 A6 h6 D k! B
40 #define LOG_INIT() do { } while (0)) o, p4 V1 `' m, p7 Q
41 #endif# h7 r ^5 l$ F7 c
42 4 S7 z8 s4 V. E6 p* V7 {* B7 C
43 /* Log Output */2 i- s% G+ l& _0 N9 V' ~5 g
44 #define LOG_INFO(format, ...) \) Y* C! L' S2 x2 v' z
45 do { \
+ ^0 g; Q" y% s) ]2 Q$ W0 V# r 46 OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
3 E5 {$ S8 h6 y- v 47 } while (0)( o t; V6 j: N, I! l! U
48
. O4 \$ ]" Z! r5 C 49 #define LOG_ERROR(format, ...) \
& Z9 P' w* v, _( f% Y+ r 50 do { \
5 o: @+ ^2 L% S; @5 ~3 p% n 51 OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \4 U9 m( U$ V3 X6 M1 g
52 } while (0)
: ?7 T) O5 a! A! x3 P6 K3 V 53
+ v8 ~, ?" Y% N* E, n% T 54 #define LOG_DEBUG(format, ...) \
) L1 Y' K$ h4 P- E' I1 O) i/ x 55 do { \8 q/ d3 b- e+ q* Q
56 OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \7 [0 k0 r7 W- D) A1 m/ b* K
57 } while (0)% r' |( y: G2 j6 q5 E! Y9 K# |, r
58 ) d: l9 z, c! j2 |4 i. X! H
59 #define LOG_WARN(format, ...) \: K: @0 e! I$ Y+ _
60 do { \6 U3 I) z6 o1 V7 O
61 OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \3 w. N; ^& g/ L) U4 q6 v
62 } while (0)
, ~, p9 a7 X1 {1 p 63
/ B) f! [' _3 D, T N( L 64 #define LOG_TRACE(format, ...) \
7 a* Z l. z! ^ 65 do { \
3 G( W0 _5 Z6 G- [5 d1 T 66 OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
$ R4 O: R: F: H3 t9 L 67 } while (0)2 V6 a, q( W% t
68
- r, X! w! R5 `1 i& ^) N" [ 69 #define LOG_FATAL(format, ...) \
3 Z( k, Z4 E1 ]* ` 70 do { \
- E6 z' x9 w6 \; C 71 OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
2 v' F( \' _3 ]* t 72 exit(1); \
( X) W4 A9 z/ ^: s. \( { 73 } while (0)' \( h' o3 S9 p) _
74
7 Q6 e' q0 U. r2 k, Y 75 /* Assert */) k I% Z* M& _8 u) S
76 #define ASSERT(EXP) \6 M; c2 f: o# ?! f! M
77 do{ \2 }) C9 d( c9 v* C
78 if (!(EXP)) { \
4 W8 j) L6 f, B2 k7 v 79 OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ ); \
; l! F: g/ I& _6 L5 Z! J1 z* U2 b 80 exit(1); \: l' i: n( S4 |9 C: w
81 } \3 X! M2 l& I3 h! L: H o
82 } while(0)1 r: b9 Z! h0 X, o- c
83 ' W- O H3 `/ o5 K$ D: x
84 #endif8 V& r$ X' L }6 r
|
|