|
1 #ifndef _LOG_H_1 {( E# @9 |* _: L7 ~* T( @
2 #define _LOG_H_- k: s4 l. q6 z1 l t- _! N
3 7 j/ N2 l9 M" Y8 d N- S" H
4 /* 0: printf; 1: UART1 */7 c. M- j% B/ p2 @& s
5 #define OUTPUT_TO_UART1 1
1 r9 I+ I* k/ W5 } 6
' e: ~! \1 K. P( d8 Z 7 /* Switch Log Output */% W6 Z6 r/ K( n3 k R
8 #if OUTPUT_TO_UART1
5 D/ a4 V" `7 r: W1 c 9 /* For UART1 Initial */
- o2 r1 N/ A h+ E" `% Q 10 #include <stdlib.h>& @$ `" ]9 J9 o, `* C
11 #include "hw_types.h" + m3 I( h0 s5 A/ |0 R
12 #include "hw_syscfg0_C6748.h"- ?+ C6 Q7 R5 _; r- w: M i
13 #include "soc_C6748.h"/ J7 N2 F ?, B( Q+ v2 m2 n0 t
14 #include "psc.h"
7 s- E. ?. o- l; |2 p9 h8 d 15 #include "gpio.h" ' {) r% y+ T5 H3 {
16 #include "uart.h"
; h) E6 e$ x$ \0 E' O 17 #include "uartStdio.h"- ~ [6 |0 n% v) X* h
18 # O0 S/ Y. m; V1 L7 q& H9 U
19 #define OUTPUT UARTprintf
y' j* E% e; q: M: @: H8 k; H 20 #else$ M( F) b4 B1 {$ \$ p/ L, D9 T
21 #include <stdio.h>8 b: Z- e% C% ]$ R* v9 g
22 #include <stdbool.h>8 g9 w' V$ V" K- ^, d
23
: {% \+ u8 X' r' I/ Q5 j3 G 24 #define OUTPUT printf5 \7 x, _. Z& m6 x4 m$ ]' o& R7 s
25 #endif2 U2 s$ d1 j; X' Q! A; E4 v% G
26
( m, o& v$ X8 r- C$ u+ e 27 /* Log init */
2 J, j* K/ y A 28 #if OUTPUT_TO_UART1
: W; B3 |8 [. K6 w9 l* [ 29 #define LOG_INIT() do { \; v2 R! ?) ?1 n- ]
30 PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, \
: H2 e Z$ Q [8 g; D/ ^' _& g 31 PSC_POWERDOMAIN_ALWAYS_ON, \$ U9 P/ y2 M- U
32 PSC_MDCTL_NEXT_ENABLE); \
4 i3 H0 |" w0 o+ s 33 GPIOBank6Pin12PinMuxSetup(); \
4 Z; V2 K( R/ j2 H 34 GPIOBank6Pin13PinMuxSetup(); \& J" X- T. S9 W5 ~/ _; t- u% @/ z
35 GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT); \
, \- [3 Z: D: J" h- I: c 36 GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT); \" K/ j( z' M7 N0 \: ^
37 UARTStdioInit(); \
4 F$ F3 G" [/ H8 [3 n 38 } while (0)$ }7 ^. w) r8 B4 U
39 #else
( Q! n. ]7 F: f5 s4 j2 G 40 #define LOG_INIT() do { } while (0)
7 n; ~4 O' n C' L$ Y+ n) O6 U 41 #endif
7 O- @9 S: i! q; ]1 P' t$ N 42 8 I" n% z: j9 x& T
43 /* Log Output */
' k+ [. B2 I0 n) c6 G" R 44 #define LOG_INFO(format, ...) \
- ~' f5 R' L5 N% D 45 do { \
7 N" t( U- m5 p 46 OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
9 Q% C) z0 P& |/ Z 47 } while (0)
. c' Y9 [5 @* J' J( {& T& F x 48
; H! _$ ]- o3 p% | 49 #define LOG_ERROR(format, ...) \
( U: j5 L* Y4 R( B% M7 ? 50 do { \
5 P7 V0 G& E- A 51 OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \, ~% L% X# k @$ _# H$ v
52 } while (0)
# g: ]/ Q9 c- d; j6 A2 l! {1 D 53
; ?( J% o' g4 J/ ?, H 54 #define LOG_DEBUG(format, ...) \
B# s- S! P# {0 A 55 do { \
" M- f4 |- N# ^' T7 }& E 56 OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \; b) f' E8 t# p6 u6 i3 A
57 } while (0)( M& J, ]7 S, w( r6 p8 R
58
& Y r0 m7 ~0 U 59 #define LOG_WARN(format, ...) \
, }+ g4 x4 M! u6 t 60 do { \) Q2 r$ J! `( N9 t, U
61 OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
4 C" ^" C- B0 V7 j 62 } while (0)
8 X p/ V" J9 U6 Y 63 ' \9 b; Y3 B& D
64 #define LOG_TRACE(format, ...) \- r% X/ U) c0 `9 y- H( j. R% w
65 do { \
4 F5 r/ ~ y1 Y S* j! [! I 66 OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \! q0 D& }0 }9 _8 R9 q6 j/ H
67 } while (0): [# b( r! a" ]- R1 Z
68
" j" _5 u3 A9 @5 A+ O, `# ~7 D$ R 69 #define LOG_FATAL(format, ...) \
9 A" n! M' w& f* ~, V* I% x u' B+ e 70 do { \
?1 P' J' F: H) O$ |* ^# l 71 OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \) x" u8 K2 X5 X+ ^1 P. l) R# E6 g7 x
72 exit(1); \
8 P. Z: B7 w+ z) ~7 J. s- E+ R 73 } while (0)/ e" f0 E4 ?1 q/ D
74 6 f1 Y5 M- Q/ t8 ^ D' Z
75 /* Assert */
" u" E4 u u$ i$ D" \% Z 76 #define ASSERT(EXP) \9 G7 Z4 s3 m0 q9 L
77 do{ \1 Z. H# C& A' W5 S
78 if (!(EXP)) { \. r4 Y) C& ?3 a* R0 z+ M$ E
79 OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ ); \/ w% [' h' t& l& O, M6 r4 f
80 exit(1); \
; M' r# I9 U, p# g! n 81 } \
/ C; i* U- x- I' V 82 } while(0)) i- r! Z4 r- Y! b# R4 ?( s
83
% A& v3 O+ o7 _$ t- E; V- [& a 84 #endif
# q' P6 C B% |2 B3 b! i |
|