|
|
1 #ifndef _LOG_H_* ]" T1 _2 p& h" O7 d0 K6 J0 H% z
2 #define _LOG_H_
0 V. N0 u7 c" \2 S _# i 3 3 E! O5 |, r( }* C9 R: w
4 /* 0: printf; 1: UART1 */
+ J% P8 y8 D" M Y& K, x 5 #define OUTPUT_TO_UART1 1
3 ]6 k" [. a" O, y% p. x# Y' w 6
, e, |3 I+ L: I# h6 X8 L: R5 A 7 /* Switch Log Output */( N8 u# m* p' U# h) l1 `" f
8 #if OUTPUT_TO_UART1
+ f7 ^" ]# t j4 @+ \2 z4 q* }" w 9 /* For UART1 Initial */$ u# }5 a5 F2 ?; {
10 #include <stdlib.h>
$ w o7 ?$ o# S3 U3 S( L8 C 11 #include "hw_types.h" - ? z( p. S' K- R/ F
12 #include "hw_syscfg0_C6748.h"
+ J. G+ q8 c! E* k) Q }8 i5 O 13 #include "soc_C6748.h"$ {7 h6 [/ P6 O& X; Q& h* l! D$ d* D
14 #include "psc.h"
* H4 ? l1 o7 K/ q 15 #include "gpio.h"
1 Y, A6 d' A8 W7 M0 {" f 16 #include "uart.h"
6 T8 M( l' b* `; T' |( e 17 #include "uartStdio.h"
, L2 r: Y; v1 f 18 * d* C* v( g8 g
19 #define OUTPUT UARTprintf0 ^/ [5 {" b2 x7 b7 H2 h/ r' e
20 #else, |3 P1 U5 I- U1 A+ p
21 #include <stdio.h>
1 R: ]' E2 v. |- [8 `/ i: b ^ 22 #include <stdbool.h>
) k- u1 ?8 }7 G1 c$ h* j8 N4 f 23 + Z1 K5 P- x8 \' [. V& G ^9 ]
24 #define OUTPUT printf
. L, ] P, P2 [ 25 #endif
) Z0 @( O, E+ F( C# M 26
% p# T6 J1 r, u: m6 b 27 /* Log init */
! ?7 \* C" U/ o3 [2 x- x4 n 28 #if OUTPUT_TO_UART1
8 e; x- k L: j6 V \# y, U 29 #define LOG_INIT() do { \
, V2 E6 ~# O0 P; g6 ?6 \ 30 PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, \
& a# Y- q, i% _; _' u- B8 k 31 PSC_POWERDOMAIN_ALWAYS_ON, \
% M$ M3 F) C. O/ F 32 PSC_MDCTL_NEXT_ENABLE); \
, j/ {) N0 ?; E, u- m 33 GPIOBank6Pin12PinMuxSetup(); \- W8 e' c- D2 I* s' A9 L& D9 q
34 GPIOBank6Pin13PinMuxSetup(); \
3 g. ]6 r/ |, r; S7 N' ^8 t 35 GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT); \) F9 X. g; p7 |( k0 c; O' @
36 GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT); \
9 \0 e7 {) v! v# _ 37 UARTStdioInit(); \: F2 X7 o b U; ^
38 } while (0)6 R4 d. z( t* x/ l/ E0 m2 U
39 #else
& y5 \! E$ A9 d 40 #define LOG_INIT() do { } while (0)
# M+ o+ c7 @ {- L 41 #endif
5 F }' _" q' o. |4 l, H+ J 42 / U) f& E9 O* u H# F+ O# Z( t
43 /* Log Output */- F! w: ?; \) ?) r1 N0 @( `/ ?
44 #define LOG_INFO(format, ...) \0 D5 q: m8 G& k: C' d; r
45 do { \
8 `* Z3 @% Q* t/ y 46 OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
" n9 \5 N# w, S 47 } while (0)/ B8 S- \1 I# C0 |- i. M
48 2 r: P9 w* v. z0 k
49 #define LOG_ERROR(format, ...) \
5 j, l9 u& ^) B' J4 F0 ^- p) p 50 do { \* e% p1 x. b& H; a4 H7 _+ q
51 OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \% M; s# ^3 f$ P! o% V
52 } while (0)
) `4 a% W% B% ]. Y" I6 y 53
& Q0 m. Z. K' Z4 ?0 n 54 #define LOG_DEBUG(format, ...) \
7 v: h8 K$ G" v8 s8 G! f 55 do { \# A% a9 F( p" a1 O# z$ P8 T3 Z7 V
56 OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
8 ^9 p. J& n, M. S( u# W 57 } while (0)
. H& b, x. G ^, g# a& w7 u 58
( Y3 ~: F5 g+ S5 \: N# P 59 #define LOG_WARN(format, ...) \
. t7 h8 z+ U# j h+ A" J1 J3 M 60 do { \
, F+ s* U" s1 m8 f, L4 k3 _# a 61 OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \6 R, m' O% L, w d7 X
62 } while (0)
; g$ Z; A( q9 H 63 5 D0 P8 C% h! b. `& j
64 #define LOG_TRACE(format, ...) \
9 Z: T. p1 S( \ 65 do { \7 w' f' v! Y! s7 W+ B+ Q2 ^/ S
66 OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
7 s) ~* t* `. ]3 q; r1 z, i 67 } while (0)! g V! T: ?+ m4 r
68
8 ~) Y( a3 [: ^$ k 69 #define LOG_FATAL(format, ...) \
3 Z: K0 O& N3 `' e- z' Z% t7 m 70 do { \
: ^' C. z9 d& p$ ] E6 I 71 OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
) H6 G$ f, M! H f 72 exit(1); \3 X6 J8 `/ |; I+ a) c: [
73 } while (0)
% b! a$ n' ?+ j2 ?" c 74
& M- W; L! t, R9 V4 e( { 75 /* Assert */
* Z; Q- `. Z7 G' O6 Z$ Y' V 76 #define ASSERT(EXP) \
3 R7 r3 U/ @* ~% B) U 77 do{ \
4 |6 U4 g. a* s0 ] 78 if (!(EXP)) { \- Z5 C& A2 G2 k' y$ g m2 z
79 OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ ); \$ Z# W/ j. C6 Z( I, o8 D9 l
80 exit(1); \
/ `. j) k5 N( [ `0 D 81 } \2 H& e" D* b7 M* m
82 } while(0)
* [0 \) z) g3 J ~+ o9 s2 d 83 2 r3 F& x6 W Y7 S+ K3 G
84 #endif
: z. S1 ]6 n; l! ` |
|