|
1 #ifndef _LOG_H_
3 `! p/ S/ q. k 2 #define _LOG_H_
3 o# m/ R% v9 S7 n/ |$ E 3 * O4 q* U' b6 w( b4 X3 M0 S; |
4 /* 0: printf; 1: UART1 */
1 X8 W/ W- ^0 t" o. w 5 #define OUTPUT_TO_UART1 1
/ h* o! [% q8 H' `9 R. q" s& Y6 N 6 & [0 F9 K9 F- \ @9 {/ n: @
7 /* Switch Log Output */
' j* H( \ T7 n 8 #if OUTPUT_TO_UART1$ ^% V1 z* ?/ \. `
9 /* For UART1 Initial */
( |- k# X% k$ `' ` 10 #include <stdlib.h>
! S2 h" B! d. v9 h' [) R6 B 11 #include "hw_types.h" * L' |$ U4 d: d
12 #include "hw_syscfg0_C6748.h"
\2 X) Q0 M4 t2 H8 u C9 F 13 #include "soc_C6748.h"
+ t* W4 W* d& I 14 #include "psc.h" 2 H; R- X& |; l
15 #include "gpio.h" 5 e. L: L2 j& h, S4 e% O o* v/ l
16 #include "uart.h"5 N- N3 B6 n" p/ e
17 #include "uartStdio.h"3 }3 j+ w y4 l4 o7 _4 |& \/ h* z
18
( E. y) h0 H2 ?* m6 V. @6 T' w8 e 19 #define OUTPUT UARTprintf
- Y. H& T! Q* D! A/ O( t" s 20 #else2 H/ l8 b% z @, S4 S7 c
21 #include <stdio.h>2 y$ S- j+ C1 {
22 #include <stdbool.h>
$ y1 c, A0 C& N5 G# h) q8 {$ o 23 7 E N& x6 u) l0 P% Y
24 #define OUTPUT printf& ^* x) y1 H0 m2 i- ?/ j8 ^. L8 f" B
25 #endif
8 Z; ]6 @) J6 Z; ?' L8 M 26 $ _% T1 h! s; c6 G( z- q% Q0 C
27 /* Log init */
! s& ~9 Q: N U9 W( v; v 28 #if OUTPUT_TO_UART1
, T* ?7 {7 Y& l7 i) T% L7 X 29 #define LOG_INIT() do { \
; Y0 [" M2 j E" m8 R1 d9 l% u8 H 30 PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, \
8 }; t4 H2 Z. E 31 PSC_POWERDOMAIN_ALWAYS_ON, \
* `- x0 m' c v% T+ k5 a, T 32 PSC_MDCTL_NEXT_ENABLE); \3 B8 L5 z' g" d, p, j6 v x4 v' t
33 GPIOBank6Pin12PinMuxSetup(); \
O3 I( V' f4 j, o 34 GPIOBank6Pin13PinMuxSetup(); \
' `/ q" y" D, a" P 35 GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT); \$ j0 W2 _& Y4 Y; O, e
36 GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT); \
; |% [; S2 T% K* h: ]$ t5 L( |5 L 37 UARTStdioInit(); \# e3 A+ P O/ [; R1 W
38 } while (0)
: \! K) Y7 Q+ ^5 o" x/ u9 O 39 #else
, R1 |, q- G4 N6 H L2 {& R4 Z 40 #define LOG_INIT() do { } while (0)+ b- v9 X, O9 r3 a+ w( f6 {* y
41 #endif) Z; x/ n2 C1 ?, f Y: o
42
, S8 e5 @! ^( O* T+ S, x 43 /* Log Output */
/ N3 r; v; V3 {! F6 l( L0 M 44 #define LOG_INFO(format, ...) \
; `& v) b: I" g/ A) |; ] 45 do { \- {0 s; X$ H5 @$ \
46 OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \3 X3 ~7 H7 A/ l$ {( A! ]
47 } while (0)( [* w" X! B1 i. E( S0 E( c' z! S
48 ) g+ ^0 m) C0 f2 Y ~+ G; }
49 #define LOG_ERROR(format, ...) \
$ v7 C# P% |8 Q0 z& ~; H 50 do { \. M! C! C4 w; \
51 OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \/ y+ ?/ c# h2 V1 c$ r; _
52 } while (0)
) v" X7 X O; O! {: K; G 53
$ A! {, t1 t5 w5 c. i 54 #define LOG_DEBUG(format, ...) \( }* Y; \- e7 ~2 F( d' `9 C4 r% O( b
55 do { \' t4 p, T% z) Z# ?+ l3 m, ^
56 OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
) P0 ?% N+ _ i! K# Y+ [; s 57 } while (0)
* C7 _; I4 f" m1 q' J. h 58
, c5 c8 O! Z8 V 59 #define LOG_WARN(format, ...) \& v3 f# ^8 k- c! M+ S6 ]
60 do { \
% C6 @ ?2 N+ C2 g 61 OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \8 U) f" T5 F1 q& a0 |5 C! y' s
62 } while (0)% x; m3 `* b, R- [9 n
63
' |2 _# l. V- }7 j4 e5 |) q 64 #define LOG_TRACE(format, ...) \
. k( K+ x$ N% m q5 [ 65 do { \6 V( U0 M" u* v# n
66 OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
6 c6 j7 | H0 C. `7 g; f$ W 67 } while (0)
1 v4 U* k/ }6 q+ x; [ 68
6 \: e# V' n6 I, b* u& c* F' u 69 #define LOG_FATAL(format, ...) \! Q8 d' b/ }& E$ X4 C/ r
70 do { \
" Z* ~+ y1 K2 B' T- u 71 OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \- M4 E/ p, i4 b' {0 k
72 exit(1); \
( Z, f% I0 Z' F* N" N+ G" Y 73 } while (0)& ~- }& i+ ?. J
74 3 a5 p4 b* T6 X( }( y! g
75 /* Assert */% M$ F. U- P2 \
76 #define ASSERT(EXP) \* J$ ^! n2 P$ V* F
77 do{ \# j. O, S7 y& N' d- E/ Q) d7 R
78 if (!(EXP)) { \
2 S% i+ \$ ^, s 79 OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ ); \$ {; W* o4 K! v6 N4 F; v
80 exit(1); \
5 f) ]4 y1 {! S 81 } \1 `' N# Y* k% A
82 } while(0)
& }+ T% ^8 I2 u( \5 ^ 83
% r+ O9 S& t0 i5 Y 84 #endif( c& l% E2 I3 g5 u7 {. ^
|
|