|
1 #ifndef _LOG_H_
7 C. s4 T, Q! }: z+ R6 M 2 #define _LOG_H_0 B- e- n9 Z8 A6 a4 Y! L: `
3 ! x! u0 g6 I2 b( w! U; X9 `
4 /* 0: printf; 1: UART1 */
" m1 e5 T6 h1 p# ^2 F 5 #define OUTPUT_TO_UART1 1
/ x( S- _. P" }: m4 ^6 t% u4 G 6
4 [* A6 l% ~- ]7 ^ 7 /* Switch Log Output */
+ T$ u0 O7 @# H- w/ k5 m 8 #if OUTPUT_TO_UART1" {4 [. U: i% \% x7 ~1 Z ~/ v. M
9 /* For UART1 Initial */) Y- H% Q; N; }; p
10 #include <stdlib.h>; z6 n) `. H' m/ H
11 #include "hw_types.h"
3 } B5 D2 ~' ^2 z( M 12 #include "hw_syscfg0_C6748.h"+ d0 Q7 c; X% c& D; z0 k0 z% q8 o2 L
13 #include "soc_C6748.h"
6 S y$ _+ h- m) B H. T4 O 14 #include "psc.h"
- P2 l# a# J' i" \/ C' I 15 #include "gpio.h"
) @6 S4 v& ~2 b 16 #include "uart.h"
0 k1 w; S: }6 ]. ]0 p! J# w 17 #include "uartStdio.h"
7 k1 N9 B, H$ P+ A 18 ! B, `: O- z5 _9 X
19 #define OUTPUT UARTprintf
- x$ j8 I, K. m 20 #else% n% l3 Q5 y. ~) p+ \" K( s3 C
21 #include <stdio.h>
; j8 K7 t/ v7 L" e1 n8 c" k5 e 22 #include <stdbool.h>
1 h5 T; t; z3 o4 \$ w7 ~! X5 ] 23 ; X" L- n1 K( M: E0 F5 Q! i, R
24 #define OUTPUT printf. G/ l; W/ ?. \6 A
25 #endif
5 c2 c7 f8 ~ w# D 26 ( k" M5 H I* H
27 /* Log init */
+ ]% j" {# Z. J& f/ C 28 #if OUTPUT_TO_UART1
# Q% I0 M" ?5 F( Z 29 #define LOG_INIT() do { \
$ |# H2 B! P7 l0 y' V' ^% l7 G" n 30 PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, \, k7 L6 j8 e) f4 Y# e2 g
31 PSC_POWERDOMAIN_ALWAYS_ON, \! e0 ?6 d4 i9 A4 ?. z4 ?/ s% s
32 PSC_MDCTL_NEXT_ENABLE); \
9 `+ h9 m6 o$ E2 o+ W7 o% H 33 GPIOBank6Pin12PinMuxSetup(); \: i% |. Z0 ?7 H! Z7 y1 q
34 GPIOBank6Pin13PinMuxSetup(); \ f+ @" D. w* P4 ^' g
35 GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT); \8 ~! d9 _/ A4 J
36 GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT); \* {2 I& @9 b, V; b a
37 UARTStdioInit(); \
) _% ~) d& |; k# |* x" ]% y 38 } while (0)+ d% l/ [5 ]% [! H+ Q
39 #else; B. w8 y$ _/ ~8 @& G. p# a& @
40 #define LOG_INIT() do { } while (0)
; D+ n& o7 v' \! ~( F 41 #endif- g' W7 N. q" T2 b/ |: A
42
" i/ y, D. N8 O" ]2 x5 m7 o' C# }5 G) Z 43 /* Log Output */
2 r: Y0 a( b# c" L- N 44 #define LOG_INFO(format, ...) \; y+ a) U; v# }- b; g& n4 ]
45 do { \0 W c( I5 O* g/ p' C5 w
46 OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \% d( \0 g4 N8 k4 T
47 } while (0)% ?5 N- }; z) c% y3 U
48
e5 m* `* U6 a5 f 49 #define LOG_ERROR(format, ...) \, q J% \+ c W, |% q2 d% P
50 do { \
' `, D2 c6 r) x, C, g$ K 51 OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
( R0 E% Q. x& k7 F 52 } while (0)) g6 y+ c6 d- Z, ?" W
53 $ `# }$ p) v( R6 v; I5 ~5 D
54 #define LOG_DEBUG(format, ...) \
" }" n& T5 B5 e) |! [: j 55 do { \0 l; T! b! g. z# F% S
56 OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
$ s2 t; e1 v2 W; w) O4 @ 57 } while (0)
$ T0 q# w$ R" G y' f+ w: m" _ 58 : D9 Q2 J8 z6 E* ]% t' [
59 #define LOG_WARN(format, ...) \( C( p# I6 y C" B% Q' X; [. l0 Q4 N
60 do { \6 z- o( O5 P" K8 R
61 OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \/ H, b$ S8 }* ]! f
62 } while (0)
/ X/ c; {; o3 Y: D1 i 63 0 q/ _3 y3 x! `# |4 E9 V/ A6 N% h9 q
64 #define LOG_TRACE(format, ...) \5 x6 @+ [6 p9 `3 z+ v' y; r+ D
65 do { \
3 a: n. J9 p( t+ T3 _7 I ^- a 66 OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \' E( k7 g- ~6 R" h
67 } while (0)
* ]1 D! I/ O' |4 ? 68
2 [1 |: J& T' Z3 }0 _& u6 s3 J 69 #define LOG_FATAL(format, ...) \
# U1 ~2 [: ~8 h" f/ _ 70 do { \
' H' ]: t+ g- r1 f9 N, Y m ~2 } 71 OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \$ L3 f5 j, j3 Y+ ]0 x- i7 Y
72 exit(1); \
# E2 d7 h2 E s0 y" G7 p" C 73 } while (0)# Y& i" ~+ q) c ?( Z: H1 F- \/ _
74
( _3 b0 w Q2 u) S( H 75 /* Assert */3 {3 |$ Y$ z& ^
76 #define ASSERT(EXP) \/ T: l+ ~! v9 {5 v% O! t
77 do{ \9 T' M" F0 u; h8 W) N
78 if (!(EXP)) { \
( p3 ^# T: B9 M/ A% Z8 a 79 OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ ); \1 _+ _" Z3 A! ?- U9 _6 o& W
80 exit(1); \6 p y# e/ V) h
81 } \- c" J: ^0 s/ y+ o% f% Y* q
82 } while(0)9 F0 W1 p8 ~) T* w- m$ v8 o
83
# T! V( a; w( Q" \ I# w) g 84 #endif
% E* V. S. g* `6 _/ Y |
|