|
1 #ifndef _LOG_H_* A F" L$ _9 r/ e& Z
2 #define _LOG_H_. q9 K' J* G% c3 k8 n
3
S5 D/ x0 ^1 i3 X0 z' P 4 /* 0: printf; 1: UART1 */
; X8 j' H- } G5 m' y4 X4 Q3 L/ h 5 #define OUTPUT_TO_UART1 1
: O- w0 C2 T* j4 | 6 ' _+ k- ^4 I7 r; _' c' c7 Y
7 /* Switch Log Output */
1 i& L* ^% h- u2 {1 \ 8 #if OUTPUT_TO_UART17 n2 ]" V# H1 ?. s
9 /* For UART1 Initial */
2 A. l i3 B6 w& {! b 10 #include <stdlib.h>; ] x$ u0 R8 U! Y
11 #include "hw_types.h" 0 b9 e) g/ F+ i0 @9 v
12 #include "hw_syscfg0_C6748.h"7 [/ d' L! X, [9 v
13 #include "soc_C6748.h"
' ~! A* L" ~+ v l" W8 i4 r3 T5 ~ 14 #include "psc.h"
1 d7 L# f# _, K8 x& w7 X 15 #include "gpio.h"
4 v# r/ X( i: \$ S 16 #include "uart.h"
+ s! r( }, r3 A# d& m k' z1 M 17 #include "uartStdio.h"
5 Q% O/ W' E! {/ F 18 $ p: C2 h; }* B( y
19 #define OUTPUT UARTprintf; U4 h% ]! f5 @8 @ m
20 #else- d: y& o$ G& [ R& p2 p/ }
21 #include <stdio.h>
! J3 a/ ]& {+ u+ M, x' y 22 #include <stdbool.h>
0 p% W; v/ Z# P8 `3 q/ g 23
0 Z; i q& S, e$ [ 24 #define OUTPUT printf* V Z( m+ T( g. n! W% \
25 #endif
" i& S5 G" U, R5 H" p# K/ L2 z 26 l* C5 Q. `$ J0 X! n$ A
27 /* Log init */
+ v# q6 {' r6 K) `# z 28 #if OUTPUT_TO_UART12 W' e1 x3 j9 d) @5 T# y
29 #define LOG_INIT() do { \7 f* E( K5 V4 s" Y( v
30 PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, \
: i- [! w/ x/ b+ M 31 PSC_POWERDOMAIN_ALWAYS_ON, \
" z& q4 c. V! ~ 32 PSC_MDCTL_NEXT_ENABLE); \4 h1 R ^% ?1 D5 F
33 GPIOBank6Pin12PinMuxSetup(); \
5 K" Q2 j0 I$ k1 s 34 GPIOBank6Pin13PinMuxSetup(); \
0 F, W$ Q7 l! G% N2 [/ W6 L 35 GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT); \
. p4 P( }- G5 q7 f2 H" a5 v, q 36 GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT); \8 h9 I* _7 c i2 k( W
37 UARTStdioInit(); \9 ~% _, ~4 v3 q. g4 H9 ?! D
38 } while (0)
) K6 j7 b+ ^( }3 G* r 39 #else& E( D7 m6 _7 ~9 X
40 #define LOG_INIT() do { } while (0)9 a4 c" e, p; ]' l
41 #endif
' L' g, D. }/ P9 ]1 ~ 42
: o2 u W& @" D* S+ s4 U; ` 43 /* Log Output */
4 e: \3 M4 Y( G( I a2 G+ B* v& w 44 #define LOG_INFO(format, ...) \' C; Q; N6 _7 R7 W. s$ _
45 do { \9 g# K. A, b2 a
46 OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \8 c$ ?/ [: H) {
47 } while (0)
; N0 f8 l; w A4 K3 D q+ Q- h 48 8 r; a# N6 M9 _0 }9 T* _% \ T' \
49 #define LOG_ERROR(format, ...) \
# g& F) }$ @+ y: A5 O4 K 50 do { \
6 ]9 O; k( `7 k: H 51 OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
5 W+ \% M: j3 Z$ ~5 h" |* A5 w 52 } while (0)
( v+ j+ {' B' H3 @ 53
P* L7 l9 |* [7 W3 Y; t' F 54 #define LOG_DEBUG(format, ...) \; P. |, G5 X# [5 u$ y7 m; z
55 do { \
$ ~: }' E/ k5 t8 P; g* w- G 56 OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
# H( d! e: y1 M" t- J4 \) ~1 D 57 } while (0)
) H6 q# X. L' N8 b/ I5 n) V9 V& M3 e1 n 58
9 t& N1 J( d/ j% E) r9 ?3 x 59 #define LOG_WARN(format, ...) \0 D2 @7 y9 R/ e7 u
60 do { \ [3 \; D" y3 k5 p+ P. w; }
61 OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \: Q/ K6 r) H0 _3 X# c c
62 } while (0)$ w! j4 R! E2 r; }3 R
63 5 I4 J& g* s8 a; }9 D% _ Q
64 #define LOG_TRACE(format, ...) \+ _# a) n" _# C1 O
65 do { \
. c4 W7 {4 G( Z1 N1 { 66 OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
6 l4 _6 Z7 G5 t* W0 c 67 } while (0)! N" T, C# D+ J' V
68
9 x0 @$ _( D( l: d( q! u 69 #define LOG_FATAL(format, ...) \
9 h+ h! r/ i& O+ q( P, A5 c/ p2 C 70 do { \
1 s3 Z1 U; \# p7 _; c 71 OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \$ z3 H- r1 I8 s% h
72 exit(1); \, H) Y4 F/ X& N1 L
73 } while (0)* p: d8 b& ^/ z* k8 H! |
74 6 q6 h- U, G2 i7 }" X& l
75 /* Assert */* h$ H: v k! M p% n+ q
76 #define ASSERT(EXP) \
" G4 v$ T1 F2 O1 u; |" N( T 77 do{ \
4 C0 h) m) w- ]9 o# F S8 t: h; j 78 if (!(EXP)) { \
( B) q1 |9 m( G; @% X5 l/ | 79 OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ ); \
3 h& y1 q6 b8 G& h. {* Y 80 exit(1); \
" T4 s. I: C! r2 e 81 } \* M* ~8 N9 x) C, T9 e# z9 k
82 } while(0)7 }5 ~$ W S% I
83
% S _$ G) m v; }! o1 n8 ` 84 #endif' R6 g% o$ \5 \2 |/ r
|
|