|
|
1 #ifndef _LOG_H_4 W# M6 _5 `% i1 n" e0 l: _" p
2 #define _LOG_H_( r. C* ]' p; w2 R3 _
3 * g0 S8 z: a2 O0 F
4 /* 0: printf; 1: UART1 */( E9 p' b% x, ^1 _, N9 R# b0 h
5 #define OUTPUT_TO_UART1 1, J( n# v7 C9 J; C0 k8 _, {
6 ( f# S& w& j& e: Z5 Z
7 /* Switch Log Output */
( F6 ]8 {" P3 W# B 8 #if OUTPUT_TO_UART1
; V# u$ f2 D7 ]$ y2 s. J4 s 9 /* For UART1 Initial */
! `# }) h$ F0 L1 }! f( i" y1 @; c 10 #include <stdlib.h>& v% v' P2 g* A0 c4 H* ^" g1 K
11 #include "hw_types.h" & j B8 Q. `! l+ {2 ~
12 #include "hw_syscfg0_C6748.h"$ d! B7 l/ v2 }8 g0 D* ?; }
13 #include "soc_C6748.h"% Y/ K @3 a7 x5 W& P3 M
14 #include "psc.h" X7 f1 Q3 |- N6 ?6 K
15 #include "gpio.h" H2 c! Y4 T/ f3 t3 M+ p6 F- t
16 #include "uart.h"( {+ |8 z6 l+ R9 l/ _7 S
17 #include "uartStdio.h"! E- ~- u( A3 b8 a& L( r
18
1 R6 E) J* f( q; A/ g 19 #define OUTPUT UARTprintf
7 U- V7 Y3 V5 [, X' g6 Q8 | 20 #else* N0 W) E b$ o, N
21 #include <stdio.h>
% e, [1 n" {1 ?, F 22 #include <stdbool.h>* U j. W$ {- B' F
23 ' T& L7 C7 k) z2 f& Z! O: g
24 #define OUTPUT printf
$ O- \/ N1 \+ T" j' e8 K 25 #endif5 k* s9 h0 \/ j- L' p' O& n
26 " F8 ?/ O5 ^7 l- I5 z$ I" t
27 /* Log init */
" w( V8 \/ K7 d 28 #if OUTPUT_TO_UART1* P0 I) K5 |4 r5 w
29 #define LOG_INIT() do { \: R Z8 \$ V* K1 X5 \
30 PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, \
7 M6 t& y! {1 k& |8 c 31 PSC_POWERDOMAIN_ALWAYS_ON, \" l) k$ C M- z- N- |. ]1 U, y4 Y
32 PSC_MDCTL_NEXT_ENABLE); \
2 x% q4 o) I* x7 j! V. C7 G; } 33 GPIOBank6Pin12PinMuxSetup(); \2 I1 s# {: Q% y6 Z
34 GPIOBank6Pin13PinMuxSetup(); \
. V$ ?& v& f7 y; c& |1 D8 K# f 35 GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT); \
; y: Q" N3 G! H& O& T, b: f 36 GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT); \* n# y. F* O, i; B
37 UARTStdioInit(); \3 r5 S5 t: T# B! M" f& h- e
38 } while (0)9 x: P9 k7 F# I9 ]) E3 Q
39 #else
. k' F. ^' E2 k J; _4 h1 y 40 #define LOG_INIT() do { } while (0)
* y" Q. q: m& M6 _% G% _ 41 #endif
% J/ D1 k6 A0 N8 { 42 4 i3 C* _$ U$ i X
43 /* Log Output */
$ j& w4 C; _/ h; w7 Q 44 #define LOG_INFO(format, ...) \
$ D9 l( v" J4 A7 y$ d( _/ w 45 do { \
] f0 y* L1 T& u8 H7 f4 c 46 OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \6 O7 y; N1 o7 d0 E6 u0 {: f
47 } while (0)2 \ n* B3 b u; t8 p% G5 S
48 ' q% E# @/ d) b' H/ J" ?' L& _
49 #define LOG_ERROR(format, ...) \& l$ j$ g' Z" |7 G0 S) i
50 do { \
& j8 g4 G, X0 Z, h 51 OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
& r. `$ l- q. j 52 } while (0)
& ~% g: Y3 g8 Q' Q% L# P 53 ' H5 \! G7 p* t8 T! N$ t
54 #define LOG_DEBUG(format, ...) \
" Q8 `% L$ ?1 U+ B, F) F/ r# y6 v! T 55 do { \
1 b. C- v: k) `' ~* j! v 56 OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
5 W- z# `2 d. \8 i N$ ~$ | 57 } while (0)- {$ P3 U. y3 k# l; ?
58 - {) p# }9 a2 L- L. B0 d
59 #define LOG_WARN(format, ...) \# D6 m& [# m/ S6 X8 P
60 do { \$ m5 k' x9 V. G& z, J6 j' [) x
61 OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \6 w. _5 J5 [1 D- V
62 } while (0)
+ B# D0 E6 I" z5 [9 p( A H" W 63
7 r2 K3 ?: z% x3 E. u 64 #define LOG_TRACE(format, ...) \# b5 C# |, J6 ]5 p; z
65 do { \) {) [0 P6 y$ W7 R
66 OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
' K- N, _3 X; r4 g6 u7 } 67 } while (0)' P( Y5 k2 x5 ]% B2 b
68
1 g7 s! P: f& a: v 69 #define LOG_FATAL(format, ...) \
. M5 w. ]6 c6 T6 P7 ] 70 do { \
+ ^) E6 e- n$ e" J4 P 71 OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
* V A+ R8 J1 a/ Q3 [ 72 exit(1); \1 j% \! C- O; s( V, q( r% ^, @! h
73 } while (0)
$ ]; w! T& D8 _1 |# _ 74 2 ]2 C0 u% z' x- P; S) O1 @
75 /* Assert */' u$ r) g# T# r- K+ m
76 #define ASSERT(EXP) \$ l! z! L) G9 c- k' M D! X5 N; \
77 do{ \5 d) f$ q; w8 G: [
78 if (!(EXP)) { \
$ g0 |' S4 c/ `: E% o% [9 a$ W 79 OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ ); \2 {6 j- _# A! w& d O8 K; b$ k( x
80 exit(1); \
: d) U4 j- V* z& V$ J# i 81 } \- v% Q: s0 w1 S
82 } while(0)
" r0 n, L. }# e* P; ? 83
) b! l5 l* f- o# @6 t2 t. I* P 84 #endif9 n, O" J( J! F1 F+ T& O2 ^
|
|