|
1 #ifndef _LOG_H_7 z4 w+ k( u9 U1 z, X b9 c1 X
2 #define _LOG_H_* s7 E! a8 f- H Y! E, ]
3
; t1 N. W# w; r" A0 h0 y* q g 4 /* 0: printf; 1: UART1 */
7 K9 m' I. y4 j0 d* j/ K 5 #define OUTPUT_TO_UART1 1" w* S6 @% e. V- B& L3 C' u( z
6
8 a/ z. }: N' R* D' R, n1 U 7 /* Switch Log Output */1 I% R. Q5 S! H" _5 Y
8 #if OUTPUT_TO_UART1
1 {/ [$ @( r# h$ K! p1 y 9 /* For UART1 Initial */ j L9 P7 L. H( H% n- o& G
10 #include <stdlib.h>9 D W) A+ [% O( B8 {4 F
11 #include "hw_types.h" 7 ?4 @! A e* p
12 #include "hw_syscfg0_C6748.h"
$ V; \0 M% ?1 f 13 #include "soc_C6748.h"
# Z6 o9 @3 J, ^ 14 #include "psc.h" ; s$ w. B6 \3 D A
15 #include "gpio.h"
( X; Z# E2 y- E5 u# c9 } 16 #include "uart.h"
L2 x! ?# u+ J% ?) ^* `1 P) K4 _/ A A 17 #include "uartStdio.h"
: @# _9 k" p+ A* } 18 + R7 s' x/ e3 F/ Z1 \! m
19 #define OUTPUT UARTprintf8 _+ g; r& s/ `$ O+ |- \
20 #else
' T8 ^( a8 f, O+ k0 X: i 21 #include <stdio.h>2 G3 I7 a1 ?4 Z; t" l& m0 Z3 C0 ?
22 #include <stdbool.h>9 {9 s$ ?$ v2 o. U
23
9 v) D( F1 u, [3 e8 d. S 24 #define OUTPUT printf/ r% [7 q9 h' r% }( ?! `
25 #endif
$ w+ r! Z: P* Z) z 26
9 `; r* {0 @9 l1 j' b 27 /* Log init */5 `1 `8 I' Y# k$ P1 [' w' T/ z Z
28 #if OUTPUT_TO_UART1+ f5 _# f8 g) @+ E; d- i
29 #define LOG_INIT() do { \% s6 O! s4 B6 c( N" y
30 PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, \
5 c( a$ ^! s* }$ _9 M% s) g 31 PSC_POWERDOMAIN_ALWAYS_ON, \
9 ^4 a1 x. B" Q7 A 32 PSC_MDCTL_NEXT_ENABLE); \" x, A- d3 D+ @+ w! A* C
33 GPIOBank6Pin12PinMuxSetup(); \% ~ `0 F/ @# L6 h) P! k
34 GPIOBank6Pin13PinMuxSetup(); \
5 I, Q/ D) H- }; }. n/ G @* k 35 GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT); \
& L4 Z/ u+ T0 ~0 o 36 GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT); \: n! _; E4 S. [( c" p
37 UARTStdioInit(); \
; P$ O0 M& r: W5 a9 K9 c 38 } while (0): Z2 d9 S0 Q0 u! F U; ]3 B/ R
39 #else9 T& O. K! M- t7 r
40 #define LOG_INIT() do { } while (0)9 A) c0 P( j2 b( E- r R- g
41 #endif
. [3 o* P4 i8 \! k1 S" V4 K 42
6 `8 ~ `# p0 x9 a% s4 n( |1 f# \( x 43 /* Log Output */
4 ?, D" S- A1 A6 v( z8 u 44 #define LOG_INFO(format, ...) \
5 L; _, E) ^4 v 45 do { \! w+ C# y: w; z9 b( b" L! P# }
46 OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \% e1 [* Z/ Z1 n4 h5 Y
47 } while (0)
. t3 z5 f5 `. h& `% e 48 ]) K& n u8 _6 P
49 #define LOG_ERROR(format, ...) \
/ O8 S1 G( C, l1 m+ o( x 50 do { \
6 R; o2 |" u/ h f3 { 51 OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
9 d' s# I) ^2 ] 52 } while (0)
6 Z( ]3 G+ |0 y* j- Q0 f% v 53 8 Z# a2 G! u" W. J9 o
54 #define LOG_DEBUG(format, ...) \
1 N, W, q! U! M: r 55 do { \
; O% A4 O( i* y, P t/ B 56 OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \! m( f1 W+ v9 E, ^+ T
57 } while (0)( Q5 L i% R8 N. `# v9 j0 l2 B" X
58 , A9 t; h' _' K1 y* @4 P
59 #define LOG_WARN(format, ...) \
. l# ?' ^! P6 m% z* T6 [ 60 do { \
& U A" ]0 ]+ J/ ?$ Y7 m$ |+ q! B 61 OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
: H3 I2 U) Z/ P- A# R. A6 E4 ] 62 } while (0)
u. @1 d% g; k 63
/ f/ X: y8 I1 S2 a% q2 K 64 #define LOG_TRACE(format, ...) \
0 L" r. r2 _% h+ \! z 65 do { \
! ~( z/ K1 [8 O& s7 \+ p 66 OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
0 A2 @2 A' u1 |* x1 X7 l5 g 67 } while (0)
/ b* a4 X$ C2 y9 w' J: \; }) i 68
6 c& O! a. t# m# | [6 r% E 69 #define LOG_FATAL(format, ...) \- \, S3 i4 i- H7 F# f, L
70 do { \* t9 {% L, Z4 v W/ d7 Y" t& h3 I
71 OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
- j) u, F1 t& A) v e% m) `4 j' t 72 exit(1); \! |4 s& @; h+ [7 M: n
73 } while (0), g! ^2 W0 z5 a2 o' D" s" O
74 , B' z/ ~; i5 C: B: |
75 /* Assert */) X- Z( Z5 ~( |" d9 B/ \5 g
76 #define ASSERT(EXP) \/ m: |4 S1 F# \9 F- x a0 e
77 do{ \
0 G) B! y7 j* G- ]+ b 78 if (!(EXP)) { \# e# F# N1 g3 m) x3 D% X c& n
79 OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ ); \$ j; E' h0 p6 ?4 R% ~5 t: L
80 exit(1); \2 f# E4 M) W) G# z L
81 } \) p: }) l) W& _5 F9 _- _0 {
82 } while(0)
3 |5 B" k4 p9 Z5 k& x+ N" o, G 83 $ h- T4 y% f" u" q9 b/ f& k
84 #endif1 M" ]* T, G2 B/ `) r) v
|
|