|
|
1 #ifndef _LOG_H_
: ~0 L; {6 g; N8 B* D* \: T- ] 2 #define _LOG_H_
% j6 h: a/ {" N* ?8 `6 p$ B! d- a 3 * t# q( x0 q% H. p( ^
4 /* 0: printf; 1: UART1 */$ T. F1 H$ r9 p$ ~: X1 ~6 ?
5 #define OUTPUT_TO_UART1 1
5 f% R/ @& C; {- w# g5 j6 E) L 6
% D; Z! b! u1 l 7 /* Switch Log Output */* O: d; G8 @% u
8 #if OUTPUT_TO_UART1
9 S& b# k3 k" T! H' M1 Y* T* g$ ] 9 /* For UART1 Initial */. q7 F+ z: c4 K- |; B: c P/ t
10 #include <stdlib.h>
' H- n* F0 T5 ]2 l' a, `% T6 G# W 11 #include "hw_types.h" 2 a- C8 y. `) N- S" ?, m) P* k
12 #include "hw_syscfg0_C6748.h"7 i. p' T( s1 S! q
13 #include "soc_C6748.h"
% g& Y7 V8 k$ W5 j1 T5 t4 o6 W( J 14 #include "psc.h" 2 {! G& A& J2 Y. j6 K3 Q
15 #include "gpio.h" 8 c& o! Y @( d
16 #include "uart.h": `; z4 M( N0 c6 e
17 #include "uartStdio.h"/ b" V/ ^1 B0 w1 S
18
2 O; W7 P3 @6 A5 o2 ` 19 #define OUTPUT UARTprintf
3 T0 Q4 r" C# Q! y2 A 20 #else9 R- _; n1 \7 m( s3 ?, M
21 #include <stdio.h>3 n! f2 q1 V3 ~ `6 r
22 #include <stdbool.h>$ i& ?3 ] N$ R' f7 W
23
l5 c8 s9 x/ v9 ] c7 J3 x7 r6 x% p 24 #define OUTPUT printf/ u- Y" Q: X7 P6 S
25 #endif
- i- a( X* J6 Z- Q. e 26 * V/ b3 H6 D8 q U: {! _
27 /* Log init */
* J7 c6 S z% I; N( ^! M$ d8 s) l 28 #if OUTPUT_TO_UART1
; u' d/ G6 \. u: J 29 #define LOG_INIT() do { \3 T( B* Z: @& X1 L9 r( g* e
30 PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, \
! |% H; ^! [6 x 31 PSC_POWERDOMAIN_ALWAYS_ON, \
: n. J8 }2 A( J4 U8 l0 f$ ? 32 PSC_MDCTL_NEXT_ENABLE); \6 v- r9 }) i6 k% u8 ~4 v- S( H
33 GPIOBank6Pin12PinMuxSetup(); \
$ h4 t' v8 D( g) H+ T2 z 34 GPIOBank6Pin13PinMuxSetup(); \
9 b& P* I: q$ g- n( S6 g 35 GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT); \: F% F D! _( @! ~ E* x
36 GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT); \
3 ]% {( X" {! G# r! ^# B8 F 37 UARTStdioInit(); \
2 M4 |) @# G$ ], Y' I$ U 38 } while (0)8 Y7 b' G# _" d7 b8 x$ S; L
39 #else. _6 g0 j5 V# l
40 #define LOG_INIT() do { } while (0)- M5 n2 g. Y' Z- f# Z; l
41 #endif
: r3 L( x' ~! W# q. i: p 42
2 q; l7 K% a2 w 43 /* Log Output */
, ~5 u. u) \# d; y, e6 Y 44 #define LOG_INFO(format, ...) \: t) ~! d. v, j/ f* U+ K7 k: r
45 do { \
$ t1 g0 P8 }5 u- I- \ 46 OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
6 s2 K; D6 S5 C+ A" j" D9 j 47 } while (0)* b4 Z. q/ n0 p3 c
48 1 q1 _: z' N* Q* u J
49 #define LOG_ERROR(format, ...) \3 V! R' D3 P( m6 R
50 do { \
, X5 a+ ?# ?0 i3 U" m( ^ 51 OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
+ S6 b5 E n8 ^- J$ j1 C 52 } while (0)7 P& ?' M6 z0 m) k
53 ' v' t4 L$ V) F. i+ K$ Q( _9 r; m
54 #define LOG_DEBUG(format, ...) \
+ z# n( r+ c) m6 u 55 do { \
& B4 ~% P* S% X8 k3 Y$ h% I 56 OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \2 m7 w6 A( r$ i* v7 D; x& v. j
57 } while (0)7 Y* {/ z( N" M, N! W
58
o( P7 y5 K$ P 59 #define LOG_WARN(format, ...) \* _- E9 ~* C+ l
60 do { \
6 r v! h& d9 S0 ` 61 OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
( @$ G$ O# A1 G: f' t" @+ I 62 } while (0)6 R: z- w( d" T3 j9 [
63
. m7 q( f) f" }3 j* F 64 #define LOG_TRACE(format, ...) \
) c1 z& _8 J& q- x6 z! B0 q 65 do { \, U- T1 Z" G9 i- j, ^
66 OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
+ u/ h! @) B, G5 K2 R& l 67 } while (0)0 W% G$ p# T0 S8 C6 T
68 $ j& E7 g& r Y; l! v) S* F" c5 S
69 #define LOG_FATAL(format, ...) \
9 T+ Q2 W, v0 M9 b1 b% ? 70 do { \
_' u L- k9 O) k" [+ F1 F" R# t7 g 71 OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \7 d. L& ]8 E. b7 x
72 exit(1); \
4 q: f! `# m, J# ?& e 73 } while (0)
- n5 `8 D; v3 E, a$ F+ l 74 4 x2 F* e4 u3 P! C* r T( M8 ^9 t
75 /* Assert */& s) ?. D. }/ A& D* g. J X! ~$ E
76 #define ASSERT(EXP) \( Z5 f: {/ d) L/ M1 X" D4 \8 u# H' ^
77 do{ \
+ S4 J c5 L3 E1 G 78 if (!(EXP)) { \3 M, x# p6 \& \
79 OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ ); \
+ W8 M2 ?$ {; n# R 80 exit(1); \/ f6 s' I- Z! q
81 } \( L* s& H/ e% q0 I: q
82 } while(0)8 G) S3 b3 R0 m
83
$ a" u9 _/ z' D) J, ~! v4 O 84 #endif# L5 i5 h2 \- T! A
|
|