|
|
1 #ifndef _LOG_H_. G( [5 e# w1 J
2 #define _LOG_H_
$ z: p+ S; x$ M4 Z 3
% |9 g" p ^* ]+ q/ | 4 /* 0: printf; 1: UART1 */+ d. g& ^1 D1 s) l5 o/ B& Z
5 #define OUTPUT_TO_UART1 1
2 D8 m( M9 d# M) W 6
- ?9 V( B$ T2 f @ 7 /* Switch Log Output */9 S: T E" m2 W" K
8 #if OUTPUT_TO_UART1
- \! p: y2 m8 }7 i- ^ 9 /* For UART1 Initial */
$ v" F7 u" U: S 10 #include <stdlib.h>8 v" M) \" t7 _+ _# I* B2 i5 N
11 #include "hw_types.h" 8 m4 K5 z+ N7 a/ K4 Z, B# T
12 #include "hw_syscfg0_C6748.h"# m3 `+ Z; O7 i! C* q7 A) b
13 #include "soc_C6748.h"
+ G8 h4 B- |- l* @0 i7 ] 14 #include "psc.h"
0 ~+ a- A% g, Q: ^ z7 e+ d 15 #include "gpio.h" . z' G4 H2 D/ o; B7 T
16 #include "uart.h"
' G0 S0 T, b( h. ^0 _- T8 t 17 #include "uartStdio.h"
3 `# z5 j3 t/ o% w6 K- W% K 18 * Q$ A: M) y0 B5 V6 y3 n
19 #define OUTPUT UARTprintf
# l; Q% [% g( X. F 20 #else4 F1 _. E# D& Z B; W
21 #include <stdio.h>
. h5 ]( _; I1 Z" K: v' S1 V$ C 22 #include <stdbool.h>! V: ]5 w! I9 A
23
# Z* P$ [0 a( d# L9 W$ E* i 24 #define OUTPUT printf* G; Y: x. C: e [
25 #endif
" E4 d- W7 g: P) W! J 26
* E- S% l# `3 b0 D$ O3 O& _; k 27 /* Log init */
# P0 E# J9 j; h; U 28 #if OUTPUT_TO_UART18 j( _0 \2 D+ ~! Y
29 #define LOG_INIT() do { \
6 v7 ] ?; X5 E3 H% i) S+ Y3 z! C 30 PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, \
' l; u( ~% ~' _$ d R, N 31 PSC_POWERDOMAIN_ALWAYS_ON, \2 }) P9 s. e# V% ?% H! A6 W9 u* V0 Y3 q
32 PSC_MDCTL_NEXT_ENABLE); \
5 b6 B9 U- y# Y' z# ] 33 GPIOBank6Pin12PinMuxSetup(); \' I0 g" ]% j$ S7 M. z4 g# V* y
34 GPIOBank6Pin13PinMuxSetup(); \
0 r, F8 E0 \6 P+ Q 35 GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT); \
2 f1 G! E5 a5 R5 n( k0 c 36 GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT); \
/ m6 b* D. g& {9 h. J1 \, d: {1 a 37 UARTStdioInit(); \4 y7 L" B* ~9 y: p9 B& R
38 } while (0); D( w4 j0 u- {! B, z* w
39 #else& V: W s" j/ W* c1 i0 o; f8 R
40 #define LOG_INIT() do { } while (0)
9 U+ @6 G+ w: w/ { 41 #endif
+ H9 \) _$ A. S) ~1 U+ y0 `' W 42 : q/ b, U! K" R9 Z1 L
43 /* Log Output */
. l% K! o) ?) X+ N, C3 \9 m 44 #define LOG_INFO(format, ...) \5 ]3 u3 M1 e$ ~ v
45 do { \
$ Y% ~9 Z6 P |. h8 @! | 46 OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
% |7 d1 s: R" k 47 } while (0)6 {; V3 A- o4 i; ~. m8 a [
48
8 F9 L, H; H! A) j 49 #define LOG_ERROR(format, ...) \
; E" j+ {7 f" g; n- S1 q 50 do { \
2 T. A6 A J/ P- N 51 OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \0 H7 |6 G5 E+ a9 |' i# l& ]
52 } while (0)& Z) Z; C- r* t8 f+ d4 v" a% Z
53 % y, G7 G! ~' F/ _
54 #define LOG_DEBUG(format, ...) \( J' O* u" `2 }# j8 p
55 do { \% V0 A5 @# j) Z9 N$ M& O# R
56 OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \3 D- O2 U4 d# b8 b; Z5 _$ S* W
57 } while (0)
6 N2 ?& h7 g6 H9 M! v2 X( o 58
7 t" B3 S( X* }! b. c: E 59 #define LOG_WARN(format, ...) \- U# p" o! f6 ~
60 do { \
% K/ R4 x) k5 F5 A; T 61 OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \1 y% v* b# ]' ?) n* n! s
62 } while (0)
$ b" h% v+ Y z4 @3 D5 r! j# ] 63 & f8 X) W y' j
64 #define LOG_TRACE(format, ...) \
* F a/ Y6 a" H+ s" G 65 do { \' W6 i5 o4 V$ _0 I0 v) Q9 j* \
66 OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
. N) z3 \! a$ p: P/ ~# } 67 } while (0)* ~( }4 k3 r5 R w: B
68 ) [0 [# G, Q! @8 c
69 #define LOG_FATAL(format, ...) \
( a- \+ m, Q8 O& _2 C5 \ 70 do { \
) w( i7 }* x% v 71 OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \3 |3 H4 C4 ]# r W1 F) V, E! N
72 exit(1); \
) D/ W9 ]2 E9 }1 o! z5 J0 q9 U 73 } while (0)0 j) h+ O% @$ o* O+ c
74
* w k' Y; I' b4 w* g1 u b) x 75 /* Assert */
" r+ a! E. S- N& Z. i; b3 M$ \ 76 #define ASSERT(EXP) \1 G+ b' K3 P$ J8 g
77 do{ \2 W2 P3 r" u. p+ n* G
78 if (!(EXP)) { \3 T% E7 J" j7 {. m7 g
79 OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ ); \
: _: @. w" T ~ 80 exit(1); \% ?+ Y1 e- z: T r* f5 l
81 } \
& p6 c/ z n3 ] 82 } while(0)
5 t2 V$ |* F Y9 ] 83 ( O" L5 G* A2 h9 N/ ?* \
84 #endif/ P* f! Z& d2 R
|
|