|
|
1 #ifndef _LOG_H_
% c) C8 A$ m; H9 Z' ]7 l' c 2 #define _LOG_H_8 j, T `! h7 E" W# M0 r c: I# p
3 % h9 X* k5 Q9 Z: e7 p
4 /* 0: printf; 1: UART1 */
7 M) K3 ]: o: C. t 5 #define OUTPUT_TO_UART1 1
R2 o9 S f. d/ m; U3 n/ L 6 : k" q" h; v) \& M% B
7 /* Switch Log Output */& i/ _ {+ X4 _1 [5 L
8 #if OUTPUT_TO_UART1" d- P4 X' r& a' l0 X6 I
9 /* For UART1 Initial */, p/ o# i; V+ ~0 p: K/ l. L, v' S
10 #include <stdlib.h>
0 w) G2 I, u; x$ r. A 11 #include "hw_types.h" " `% @; M! g9 h, ]" v* a2 M* g
12 #include "hw_syscfg0_C6748.h". P' i* G. m8 I# R, K
13 #include "soc_C6748.h"
+ }2 d1 l2 _2 M" g8 R5 ? 14 #include "psc.h" , h& o6 @: f4 ]9 k( v: G
15 #include "gpio.h" & w: |. ]) n/ _; Z
16 #include "uart.h"1 o! m/ j' ?9 Y: @; x6 L; p; n
17 #include "uartStdio.h"8 |* N- t$ n6 a
18
6 f+ h8 c) o5 j. H2 C2 o) M 19 #define OUTPUT UARTprintf
7 X/ U% \6 h: M 20 #else& A$ v0 t- r. b1 B6 L
21 #include <stdio.h>
% c. t* }! j/ z: x# `+ d! N% [7 _ 22 #include <stdbool.h>
2 } K- ^! j7 h 23 2 `4 r$ \6 }% L/ [7 G+ S
24 #define OUTPUT printf6 f* S8 |5 ~0 \% G1 w2 K5 u5 x
25 #endif! L; E! h4 `' ~; S6 L, Z& E. y; j' F9 ~
26
4 J8 g0 h. }/ r* X 27 /* Log init */& v3 k3 [- T: _% _
28 #if OUTPUT_TO_UART1! O" r! X2 Z7 P: w q
29 #define LOG_INIT() do { \$ [9 o F0 v& k0 w, q" b
30 PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, \3 I, t! M i. I) i2 a
31 PSC_POWERDOMAIN_ALWAYS_ON, \6 F+ u& u1 h7 h% v7 P# G O) |; x
32 PSC_MDCTL_NEXT_ENABLE); \
$ F0 a3 o) b9 U% j" L 33 GPIOBank6Pin12PinMuxSetup(); \
% u8 V$ b! d. ]- h7 U- c 34 GPIOBank6Pin13PinMuxSetup(); \
$ b6 S6 ?' m* Q" l K' \ 35 GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT); \& H' B- d/ t% `3 N+ g( S) A7 A; ~
36 GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT); \
! g. F! y D: b2 V' e. z/ ] 37 UARTStdioInit(); \9 e- Q7 }' k. q d
38 } while (0)
2 Q* [- j" }, m9 t) Y6 r 39 #else0 {( d% z5 w: d; `) ~
40 #define LOG_INIT() do { } while (0)5 \& ~" f5 |( T% r/ R
41 #endif9 ?: U/ T5 _; ~3 e, h
42
6 p. N0 l5 U( M) e w! @9 Y5 }7 A 43 /* Log Output */: U) V8 L6 x% ]+ \7 F( ] _
44 #define LOG_INFO(format, ...) \
+ R% `7 U; _( q3 X1 p0 t8 M- E7 j7 Y 45 do { \/ H1 e3 T9 Q5 G) n5 H8 D. u" {
46 OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \( o5 a3 Z: X% K: @' h/ j
47 } while (0)% X' o% s5 G$ Z: B
48 ! S" P8 Y: E9 S
49 #define LOG_ERROR(format, ...) \
8 N% g y- t# T# M 50 do { \* j& X9 Y) b9 F- H& |3 L
51 OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
9 e0 r( @; `. c4 X: K 52 } while (0)) L4 e+ M, ]4 l% a& X% a
53
* I5 i. q2 v8 ?: p 54 #define LOG_DEBUG(format, ...) \* B+ L8 p, q& S& F
55 do { \
g8 K2 a1 G4 c1 O! W- e 56 OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \) S; c4 \* g9 ]7 C) G8 g& t* b/ U
57 } while (0)
) x6 D- |& ]9 D7 h% ?# ~! Q+ u 58
. t# f+ L. Z5 {/ _& ^+ |9 K5 v 59 #define LOG_WARN(format, ...) \
; A" b0 W6 d; y( L4 b( o( M6 V 60 do { \+ f) W; L/ I: o3 X
61 OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
/ O& F3 a/ `7 }7 J b. u& h 62 } while (0)1 p$ @1 G" x; d, p9 A, o
63
9 N) Y7 ~* n W: w* e8 C 64 #define LOG_TRACE(format, ...) \9 Q7 a; F: Q8 _* e% N
65 do { \
Z+ r) B- u* U; B: s3 C) V" z4 \ 66 OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
/ e4 Q& z) [& ~ 67 } while (0)
- Z% M% p$ N p 68
# }" a, c! Z7 s: r$ H 69 #define LOG_FATAL(format, ...) \* S' K& t3 j4 ]9 r3 M' s3 S3 c$ I0 N
70 do { \
8 B' [7 Q: Z2 [ 71 OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \6 m+ `5 v% w9 x# j
72 exit(1); \9 k$ M! H: q) \: ]2 _1 H! ^
73 } while (0)
2 R+ _% t4 ~7 C- ]# }4 |. k 74
/ c z* m1 Q/ _ 75 /* Assert */
% T2 i$ S6 v9 ] O 76 #define ASSERT(EXP) \0 l/ L# S7 x* O# l7 k& t# r4 S
77 do{ \: M5 b: X1 A7 @ A, R) @/ F
78 if (!(EXP)) { \1 t) ]$ C2 W( h7 }% c# c( `
79 OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ ); \2 p4 s+ x% y- r. `4 x& M" C8 P7 j
80 exit(1); \
: M! A: t7 t9 B+ f 81 } \" O+ R. R$ \: r7 {" q% A7 ^4 l- L
82 } while(0)
- M: j: Y+ K6 q7 A, F$ R: W 83 0 b9 h9 N6 p9 ]0 }# x- Q- i' ^
84 #endif
/ ?5 M% M' Z5 O, E |
|