|
1 #ifndef _LOG_H_
6 Z1 N* y' h3 D; K! h! e 2 #define _LOG_H_( ~, u& i/ k% `6 n5 Y
3 9 j6 d) Z. y5 G* v7 t" f+ |% J
4 /* 0: printf; 1: UART1 */0 B( \, C! g0 H! W8 c
5 #define OUTPUT_TO_UART1 14 y1 A; E, w0 K4 \, R* `
6 / V' k. F. v) u' H
7 /* Switch Log Output */! ~* o2 T. _0 t( P) @4 ?
8 #if OUTPUT_TO_UART1
" E9 S6 s' R9 a9 ` 9 /* For UART1 Initial */
( @, {7 i4 `1 L+ q$ J7 V 10 #include <stdlib.h>
. [) D+ b' |& j- @- U8 _! U8 s 11 #include "hw_types.h" h$ p: v+ D& y0 I# ^5 ?/ q& J
12 #include "hw_syscfg0_C6748.h"7 G7 z( j& Z, B8 l9 T9 @& Z( Q
13 #include "soc_C6748.h"
8 U; C; F7 q$ H' n& A 14 #include "psc.h" 6 S7 J( b8 T/ n, F- S
15 #include "gpio.h"
- H( X3 h+ X) O& { 16 #include "uart.h"
. z$ J1 }0 u4 M2 c" V3 ^! m 17 #include "uartStdio.h": m( S# T2 A9 [( x
18
, [1 } E* f$ Z; c m, V3 Z 19 #define OUTPUT UARTprintf# G# {; I, i: I9 K" h. y" M
20 #else0 c/ b& Z/ c; X4 w" G# z
21 #include <stdio.h>; {# v t9 _( [9 a s( i/ \
22 #include <stdbool.h>
" \( o' s4 _3 ?* k3 ] 23
* `8 G$ k# V, A$ V6 _: H 24 #define OUTPUT printf
" C: h3 Z% Q6 @& \' @ 25 #endif0 E0 X! [8 H/ u7 w
26 . ~; A8 q/ e; \/ |9 [( t, h7 w* j
27 /* Log init */( x4 }$ G/ b9 T3 ?3 F
28 #if OUTPUT_TO_UART1
1 o5 @2 {0 `, c 29 #define LOG_INIT() do { \9 I0 V3 n4 q; T/ ~- o7 I
30 PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, \9 }+ ~% E0 n& |( h5 P" {! _
31 PSC_POWERDOMAIN_ALWAYS_ON, \
& \2 D6 W- Q6 E! p0 v 32 PSC_MDCTL_NEXT_ENABLE); \
+ D8 s+ u) [# G5 ?* E 33 GPIOBank6Pin12PinMuxSetup(); \' }9 _: c0 v( h; V' b+ y. E& l9 y
34 GPIOBank6Pin13PinMuxSetup(); \
+ N5 ~1 o7 ]* r' U 35 GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT); \# _! I) x$ i* r! M6 z. v
36 GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT); \+ I% @6 T R4 E3 q
37 UARTStdioInit(); \( S4 Z9 F. J6 U, z
38 } while (0)
9 S2 A" d& a" `$ f1 A" h 39 #else5 G- l: u: F0 ^+ d! T4 M; ]0 G! X
40 #define LOG_INIT() do { } while (0)% u* v) i6 ^; v6 W5 ~
41 #endif1 u( u5 k0 x( x6 J( x; C) k
42 ( M- M6 m3 ~/ f5 T
43 /* Log Output */% v( a9 V$ h. z5 C5 l c* h; ~
44 #define LOG_INFO(format, ...) \
- @9 u% w2 G5 e) u0 ^& f' `* M 45 do { \. r0 C& {3 j+ n) { k9 b' }
46 OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \6 p, ^7 \8 `+ M2 g3 M3 Y! [ P
47 } while (0)
) o# E% j5 k1 c8 u" Z0 H 48 $ u! H7 [% s0 D$ J' `; J! j
49 #define LOG_ERROR(format, ...) \
! t' k: j# X3 `8 m 50 do { \* l4 r2 p6 p: |) T+ H+ x
51 OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \& Q( p0 Q* p1 w5 S* A+ y6 D I
52 } while (0)
p8 F* _4 |( X1 w8 J 53 4 R' m. C" E2 l9 x0 w' |( G- z
54 #define LOG_DEBUG(format, ...) \
: U& {4 S ]& W! m. e' F: i 55 do { \) l! X+ q8 U- n
56 OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \' y# ?; t" Z/ A* l
57 } while (0); r% I. U1 P" a- I, ~% R- U
58 , g) r8 L m# f# a' L
59 #define LOG_WARN(format, ...) \- t6 k" t! p/ l- P
60 do { \
& s$ h$ p+ e, H( V 61 OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \+ G3 q, }5 k; Q. n# u( x3 n7 F. E8 ?
62 } while (0)
) c+ o3 l1 v9 T4 U 63 ; p3 o6 n' g+ o6 I0 ]
64 #define LOG_TRACE(format, ...) \) d7 h/ T, B% u
65 do { \( R9 Z7 K* e- A
66 OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
9 Z+ a% I$ |6 j' ?* L! W 67 } while (0)& T! w$ I, Y/ l( }* \, @
68
8 k/ R% J7 h J. ]& x 69 #define LOG_FATAL(format, ...) \
( i5 G* O+ c5 l; J) s 70 do { \
! j) ]7 G% ]3 f, {1 s; h 71 OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \+ Z! ]9 ~ P7 h0 _& z5 L1 ?. P ^
72 exit(1); \
" e1 N `* D+ B1 u 73 } while (0)% w& R2 Q* g! |5 \
74
' X% q+ T0 V# s, e$ G6 O 75 /* Assert *// x3 D+ E' U' O
76 #define ASSERT(EXP) \
" R( ?- w$ K" `7 V 77 do{ \* L- f x- H; \* p+ v
78 if (!(EXP)) { \/ Y5 h8 o% t" h2 a' A4 K% U* i0 G
79 OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ ); \
5 N4 j$ R( n8 | w# Q! c, T) b4 M; g 80 exit(1); \% `, a. P& k3 R
81 } \
# J* P0 m% e+ U k 82 } while(0)6 l" m/ m; J+ n8 I1 Z( o
83 " O( x s0 R* y1 M2 c+ i9 h
84 #endif
4 s3 [( Q" D8 F, v% h& q. `/ G U |
|