|
|
1 #ifndef _LOG_H_. D2 Q; v# c0 @3 p- n. z' @
2 #define _LOG_H_# f! U6 ^9 ?/ U& D% h2 G* L, p6 d
3
& v4 s5 {& n. Y* U& c6 B% ~( m 4 /* 0: printf; 1: UART1 */
) [+ m) n. T7 k0 V0 V$ f 5 #define OUTPUT_TO_UART1 1! e) F$ O. P1 P( n) d. f& v+ Z) q
6 + y. s' K7 ]6 n# Q' q6 j) a! |
7 /* Switch Log Output */0 @& V/ f( d8 m# n+ _5 }, ?1 l
8 #if OUTPUT_TO_UART1& W. ` ^4 H1 |- t8 @" |) n1 A
9 /* For UART1 Initial */% e: [' V8 b, _! Q! g8 b8 L
10 #include <stdlib.h>
, x% v |: }! t1 F4 F 11 #include "hw_types.h"
7 z( D/ }# U; D6 R, X% b0 ` 12 #include "hw_syscfg0_C6748.h": I0 E1 j- J: r. n" E
13 #include "soc_C6748.h"
6 Z* d- v4 w2 v# b L( a' U 14 #include "psc.h" 7 T1 ~, d2 r; e& C' S
15 #include "gpio.h" & ~; C+ u; u; Q- _
16 #include "uart.h"
- k8 D) P2 H, q) P 17 #include "uartStdio.h"2 P. F5 M8 ?( j- V3 G$ j
18 # H; e b e# ]* f/ ]; ^* l
19 #define OUTPUT UARTprintf6 k0 c! Y' Z4 k
20 #else+ j% G* u, l3 _5 ~' q, K) d8 O& P
21 #include <stdio.h>
0 C/ j; v# ] b: o 22 #include <stdbool.h>( o$ j F* f; A) S3 p9 x" S
23 2 O4 R: F, B9 T$ Z: K8 k5 \3 {5 a3 }
24 #define OUTPUT printf
6 w# S# A# l% t5 b 25 #endif
" H8 x8 \2 m) n1 @+ U2 Y/ r 26
9 ]: Q+ z6 a) @& m6 [2 P 27 /* Log init */, \; y, k* u& x* v+ S
28 #if OUTPUT_TO_UART1
& B0 ?8 C$ g) l4 J 29 #define LOG_INIT() do { \
o! M! K9 @2 U$ s. G! W0 p! x8 \ 30 PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, \- L0 u! n* E4 t/ p3 v$ h
31 PSC_POWERDOMAIN_ALWAYS_ON, \
1 k) H( }" u; `0 Y 32 PSC_MDCTL_NEXT_ENABLE); \
4 A( E" t$ l- `2 T5 V. D! m* a9 j 33 GPIOBank6Pin12PinMuxSetup(); \
4 n7 G; T2 S7 X) Q, Q 34 GPIOBank6Pin13PinMuxSetup(); \
4 p' j3 X/ _7 w" q# b 35 GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT); \
$ ?: r% u: [ b& U' c 36 GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT); \4 S) s* o+ p% h
37 UARTStdioInit(); \
% f) W1 [2 C; }0 k& a+ H 38 } while (0)
; \* a1 K2 ~* l* ~* S# A7 O2 a* S 39 #else
& Y: l4 s- y1 b$ p 40 #define LOG_INIT() do { } while (0)9 n& F( z) x( B# m
41 #endif" B6 k: I, g; E4 j/ _8 n
42
* N" E( A4 O8 A8 s' F 43 /* Log Output */1 i% m4 F! c5 O9 R" p
44 #define LOG_INFO(format, ...) \
[; R7 ~, }, A 45 do { \
! u! h% v9 T0 s4 i; Q j 46 OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \" d* L5 ^4 S4 A2 T2 c5 {( Y7 p
47 } while (0)
$ W L* d8 M5 y 48
2 p+ O; L3 f- Q ~ 49 #define LOG_ERROR(format, ...) \0 I' n6 z, }( F8 g& P8 R7 {3 Q3 P
50 do { \8 w7 U6 I% q7 C
51 OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
5 _+ p, s0 B5 i9 U6 C, [8 }9 K 52 } while (0)
' Z8 J+ d( ?+ m$ d1 z 53 o) s' d9 n4 w
54 #define LOG_DEBUG(format, ...) \
% ]. b0 c1 X; ~1 _ 55 do { \ Z1 h5 J7 O( ?5 E/ C% y5 F
56 OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \, M; a2 _) l) q9 ^7 c4 L7 |0 \
57 } while (0)
8 {# w, {" j' y+ K3 _$ f 58
& p* ]$ k4 o1 l9 | 59 #define LOG_WARN(format, ...) \2 m# W. t. I3 w; V" g
60 do { \) V% Z$ R. t; y2 e1 a6 O7 @
61 OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \" O3 g, J, N4 A# o
62 } while (0)- n( v8 p9 Y \& ~2 ?3 K
63 . W9 H0 {" p/ y! `
64 #define LOG_TRACE(format, ...) \
9 T, Q- l7 G) @! f" K 65 do { \
) n! q+ v7 o. H x 66 OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
( S- S" \$ `# C6 u6 H5 Z5 Q 67 } while (0)8 K7 ]1 m- v3 a( O" F# o# n& k5 k
68
9 H; ]/ C- e. y& [1 z! n 69 #define LOG_FATAL(format, ...) \7 r, I3 Y8 q" g$ L# V0 K6 @. w; F( }
70 do { \1 d! z1 f6 {8 m6 r
71 OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \5 `$ l/ m# ~$ @! ]7 u
72 exit(1); \: ^# l1 x* d. } o3 M% q
73 } while (0); u! z0 Y$ X5 T8 D% L3 X) W
74
. A# E% c: S) b1 q1 B( U 75 /* Assert */' Q" N. j! j2 A# q5 i
76 #define ASSERT(EXP) \
+ B) Z0 D3 Y& R/ G% c 77 do{ \
9 _- {4 Q3 M% m: T% j% z8 _) V6 n 78 if (!(EXP)) { \
: f7 r- D% U6 A2 h- `5 R5 Z 79 OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ ); \! J2 s4 z2 e" v$ r; Y0 a+ n0 |8 s
80 exit(1); \
# X: P4 H7 e' ? 81 } \
6 R; d A: n5 a9 Y& P 82 } while(0)
7 k( ?8 L n3 t8 z3 S% t 83
; r- o6 K7 O7 r& p$ |/ f3 L% l3 R 84 #endif; |$ |& N' R5 G5 N; y( Q
|
|