|
|
1 #ifndef _LOG_H_
, m. Y& S+ [( L! @ 2 #define _LOG_H_! @" O3 d4 k& f6 r# Z' \7 n
3 9 g) }& ~5 R7 {/ C
4 /* 0: printf; 1: UART1 */1 }( ]; M: h1 ~1 a; ~. S
5 #define OUTPUT_TO_UART1 1
/ B" T) v, u5 b7 R/ ~) S/ ] 6
" @" x+ _/ A- h 7 /* Switch Log Output */
W( Q1 d6 l4 [: y/ Y! t% ` 8 #if OUTPUT_TO_UART1
' i( }/ f2 T0 g r% z; O 9 /* For UART1 Initial */. |7 R+ _* U+ l6 _; H+ G( `5 K
10 #include <stdlib.h>' s# Q( S5 [0 ^7 W1 V
11 #include "hw_types.h"
! P' T/ O- f! p# e( q6 C 12 #include "hw_syscfg0_C6748.h"
3 o$ X: n. v1 k 13 #include "soc_C6748.h", Y) ^, r& j, s2 x/ P; m
14 #include "psc.h" / ]8 L" ]; B( w8 N c# E% n
15 #include "gpio.h"
" z' ] h E1 W2 I5 R( v/ C( r' N `5 w 16 #include "uart.h"# X* u) n. c4 h# Z
17 #include "uartStdio.h"' F: q1 f/ l: V+ r; t" Z" R
18 # t5 E$ @ @$ ~8 U9 E
19 #define OUTPUT UARTprintf0 X `, J8 T# S3 u" }' Z
20 #else4 K2 }# \5 `+ ^+ s. P4 B* t9 L( Y
21 #include <stdio.h>
- }6 O3 G2 n) }+ R 22 #include <stdbool.h>
i5 A- E5 q j# m/ s 23 C+ g% ^' M, |
24 #define OUTPUT printf* c$ D/ G- N) r7 A
25 #endif* D% Z- ]) Q8 H( O* [; }: B2 ?* N
26
% `" j# ?4 g8 R G" \ 27 /* Log init */
* S9 v# f" m6 _8 [. H 28 #if OUTPUT_TO_UART1
& k; `) L# J5 j( f 29 #define LOG_INIT() do { \
) d: ?0 G2 \2 {( [# [ 30 PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, \1 V' i3 Z8 ]& M6 |
31 PSC_POWERDOMAIN_ALWAYS_ON, \
6 |* ^5 \4 _* b, v9 R: t 32 PSC_MDCTL_NEXT_ENABLE); \
& |8 e* Q. P! d. X% l% E5 X 33 GPIOBank6Pin12PinMuxSetup(); \
4 C9 U. H: P2 _% l9 @3 i7 g 34 GPIOBank6Pin13PinMuxSetup(); \+ C4 A u2 C! p& c9 G$ V( W
35 GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT); \$ o6 v& ]5 D+ \& j% f0 R$ ^
36 GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT); \
8 }% k# \( `( U" D 37 UARTStdioInit(); \. k' V9 g b5 l& C. w* {8 y, Z
38 } while (0)% o; V: X4 ?2 Z9 ^1 A8 O3 O
39 #else, `) e/ R: k5 p1 }0 h
40 #define LOG_INIT() do { } while (0)6 h' v" g" e5 ^2 `7 |9 a o
41 #endif# c/ {) K+ {0 K6 S1 O
42 : J' @3 C* C# \8 S
43 /* Log Output */* | d( V! O( Q
44 #define LOG_INFO(format, ...) \( {. L- a$ p/ I; ]9 y8 G3 R
45 do { \4 R9 R: f, M- M* q. q7 |6 @: l
46 OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \ I1 C- E0 _8 U" o, D5 T8 E. d# _
47 } while (0)
% ~9 c1 N. n6 d, W$ h% j# Z 48
) w% ^+ V' i* f. g! M; j, O: c) W& M 49 #define LOG_ERROR(format, ...) \1 n9 O! U4 _9 M) ]1 d' T/ z6 q
50 do { \
4 N; }( D4 t2 @! I" O9 s) e; k" S; } 51 OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \" B% B s( g- N, B+ [0 k
52 } while (0)# J# b3 E5 u8 ^
53 . q2 s% b$ n+ v) d$ H! s
54 #define LOG_DEBUG(format, ...) \
" I% a7 j! p. E+ ]" m5 D; W 55 do { \6 b% `- M1 D2 Z
56 OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
+ Z! V" k% E: _# J3 ]5 \" ` 57 } while (0). z/ p: T7 z, f- m/ h+ c* h) ^! H
58
" \3 w2 p$ N5 g9 Q 59 #define LOG_WARN(format, ...) \
, {/ Y# ]1 E3 [" r 60 do { \0 `; M; _. z* n! t$ a* \
61 OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \; \. R1 A) u/ u, I, G3 N" _( t2 o
62 } while (0)0 c6 ^6 x0 l( T" z! ^3 m
63
8 ~5 i* e: b2 m/ E" [* ` 64 #define LOG_TRACE(format, ...) \5 S2 W" M6 Q: n5 ^! N2 ^
65 do { \
J% F: A2 W4 [! z# K2 ~' a 66 OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \ o9 b: }9 G: [1 _2 S- g# j% n
67 } while (0)
+ ^9 P+ m8 K4 ^+ ~ R/ d% \ 68 / W- m* B) ~, k4 g
69 #define LOG_FATAL(format, ...) \$ S+ Q5 ~: k7 e* W9 q* H
70 do { \. X- N& h( H) U6 I& u
71 OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \8 A% z! f1 c( R6 y, Y
72 exit(1); \5 A, Y9 h8 n) G" |5 I
73 } while (0), T( S9 v# H% N% E( [2 l
74
. r6 v) y/ G3 h% r5 C* V+ T 75 /* Assert */+ N7 b% }2 X; p- \8 I! R
76 #define ASSERT(EXP) \
8 v9 c9 j5 M( b; n 77 do{ \
# r/ c. c# y# r6 H1 ?& F 78 if (!(EXP)) { \" j: s' Q6 |. b- h M/ q' h
79 OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ ); \
( t( L. B! x& }. X8 @3 c 80 exit(1); \
, o( A4 E( U* h* ` 81 } \$ ]4 u) E J5 Z$ ^7 h
82 } while(0)
) G. }/ Q" z* J4 J 83 * V; Z* L' ]2 Z8 k" U; f/ A2 n
84 #endif
7 R$ T7 g5 ~: D7 g! } |
|