|
|
1 #ifndef _LOG_H_# P# j9 r o0 ?
2 #define _LOG_H_3 A( Z, _/ o0 _
3 ( r/ D, N0 s" |: ?7 q6 T9 }
4 /* 0: printf; 1: UART1 */
) d% ?4 b6 y$ @4 o 5 #define OUTPUT_TO_UART1 1
$ v* }$ d [5 X' _) a8 ` 6
) E% ` h+ ^) r7 L3 O/ G' O6 M4 x 7 /* Switch Log Output */. R) U4 z0 a5 Q. }
8 #if OUTPUT_TO_UART1
/ X9 ~# [6 n9 T! O 9 /* For UART1 Initial */0 f- Z. O9 J2 X. w& X/ z; s; H
10 #include <stdlib.h>: v: j1 k6 ^# ?' W
11 #include "hw_types.h"
0 u- H' y* [& Y! M9 M5 [% j 12 #include "hw_syscfg0_C6748.h"
5 M0 `/ q4 y9 ~5 j+ a; L 13 #include "soc_C6748.h"
1 ?4 q. j9 ?, m( R1 c3 g) L 14 #include "psc.h" / l5 l4 T4 K) p: l
15 #include "gpio.h" + a! @3 k' M; ]9 g/ ~% N
16 #include "uart.h"6 f8 Y3 U! A2 S# G* h( \
17 #include "uartStdio.h"
5 |% C3 T, G' z- W8 }. S& C 18
! K% `0 T' q' t p1 C. i1 A9 ? 19 #define OUTPUT UARTprintf$ ]# @) |& p5 Q
20 #else
$ H6 T* ]$ [- x1 `& L8 I. ]. n9 ?* i 21 #include <stdio.h>
4 n* n n- v* d6 i2 H' R! h 22 #include <stdbool.h>
" y" B# l3 u1 B3 [ 23
8 v( T4 l5 H5 l. I# a3 ]# J0 e1 D 24 #define OUTPUT printf8 z3 F$ n/ j/ Z
25 #endif$ g3 B* [* c4 q* l
26
+ \! N4 T) ], x Z- W6 o9 K 27 /* Log init */
5 L1 L& \" v8 e, G1 ?; v6 e 28 #if OUTPUT_TO_UART1
8 u0 ]+ [% e& z0 m+ F 29 #define LOG_INIT() do { \
- H8 f# _3 N# m# n( e3 C 30 PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, \
$ s q, {9 T2 I' m 31 PSC_POWERDOMAIN_ALWAYS_ON, \
2 [4 i6 x3 @; q 32 PSC_MDCTL_NEXT_ENABLE); \
' L$ Z7 v7 e+ i! j 33 GPIOBank6Pin12PinMuxSetup(); \
* Z, C/ H8 C2 h 34 GPIOBank6Pin13PinMuxSetup(); \
: A% m1 f/ X0 Z0 j 35 GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT); \
7 ^" ]0 R' G3 v! A+ z- v3 \8 D 36 GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT); \$ R. U# |; b& E4 c9 Y, V* K0 y
37 UARTStdioInit(); \% _# N% B, g; ]3 ~6 T3 l
38 } while (0), x+ n/ a; s& t& S) X
39 #else; y2 P; p6 R3 r. C( Z0 [ b, c
40 #define LOG_INIT() do { } while (0)
3 ^0 X X2 ~# w" t 41 #endif
4 ?, t. F" Y8 X2 t* m$ ?; P) O 42 ) E% J2 B6 e* O! C" F
43 /* Log Output */& B7 t: V! f* D: c( M" G$ g
44 #define LOG_INFO(format, ...) \
( q% H- i3 \, w/ } 45 do { \& t" x0 v, s3 X3 M C/ R. P$ B
46 OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \$ l' T1 Q" \, S) k( @* q6 Z
47 } while (0)
$ v' l6 A0 C/ n2 ?; e 48
) ]0 {2 Q5 D% w% n+ W/ u. I 49 #define LOG_ERROR(format, ...) \5 n" Z1 w7 v6 S' S
50 do { \
; w5 @3 H/ q0 a& i4 Q4 K 51 OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
5 d( G2 F" d+ h" c- O 52 } while (0)% ]3 n& B( r0 H* `& [+ q2 W$ U
53
6 l6 H( E) \! `" @% q2 K7 H 54 #define LOG_DEBUG(format, ...) \4 U) z& Y4 s- f) F; p
55 do { \
% x' i( u' _" d* j: o 56 OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
/ k5 R$ E- T2 E& B5 S6 O: m. b% N 57 } while (0)
C; g0 J9 N2 F g 58
8 a$ d5 r, O0 D2 l7 u. J6 L 59 #define LOG_WARN(format, ...) \
: w% g- b, E9 S% }3 T. ? 60 do { \
; V7 @: o$ g f+ t" U( d 61 OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \- L: c. j0 E" a+ Q7 v U+ D* U& v
62 } while (0)
7 k% n& G% ?2 Q5 @7 D: E 63
' A" G. K; [3 S9 m 64 #define LOG_TRACE(format, ...) \
; L7 |+ P. k- i) g" a* | 65 do { \
1 W; N, T1 h7 A) o/ a J+ m 66 OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
" C% {2 v$ S" |) Z2 ~2 q 67 } while (0). \0 A) c0 v/ a1 Y1 F3 _
68 % @5 Z. h+ s8 q9 g
69 #define LOG_FATAL(format, ...) \
3 L( n* g9 A8 R# C9 V9 X5 h. v 70 do { \
) s- o* X. T( w" K# F$ V, O; R 71 OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
) Z' |& Y( \$ Y& z7 m2 l d* B 72 exit(1); \
: i3 ~/ r+ h7 ?+ P/ [. a8 j, B, t4 E 73 } while (0). }$ E8 J- N3 ^" Y# D7 c1 `) T
74 4 @& k5 J5 I0 D+ Z4 ?2 T
75 /* Assert */
. O( [! a* H2 |* G7 r, x 76 #define ASSERT(EXP) \
4 c' ~9 c n/ S {4 J! s( h' u# C 77 do{ \# G3 f0 ~) X: |8 o1 X) I. `
78 if (!(EXP)) { \
- J: p. `9 h- g2 G8 `! f: ? ] 79 OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ ); \
0 b' H- Q% c: d7 O 80 exit(1); \
. d% d* Y' ]) D9 I 81 } \+ j; E- `1 o8 E6 p+ e4 G
82 } while(0)
( F# g! H5 Z. Q5 ^* I* { 83
. ?+ u" f6 I1 y! h0 r 84 #endif
9 j: \8 X; J% S7 l5 u- E! j( X1 h |
|