|
1 #ifndef _LOG_H_
8 S, V, C7 _) |$ L 2 #define _LOG_H_7 e' C' D* ^8 ~5 T4 }
3
3 k- b- S% L" ~6 a 4 /* 0: printf; 1: UART1 */
& c J0 J& M2 A 5 #define OUTPUT_TO_UART1 13 ]; ?5 k: G+ B5 ^' V% ?2 u. C
6
4 F3 R$ O1 w' r& h. t B2 I) M 7 /* Switch Log Output *// a C! X5 J2 K1 U
8 #if OUTPUT_TO_UART13 a. I! |) }) O1 R+ P% ?
9 /* For UART1 Initial */
. {# Q/ K( I: l9 m# h; U 10 #include <stdlib.h>! ~! G B! G# R9 |; l5 @0 Q! h& j
11 #include "hw_types.h" ( i: V& g8 x" I3 s; O
12 #include "hw_syscfg0_C6748.h"9 B: x# ? w/ {% N: `* O/ |
13 #include "soc_C6748.h". z5 o' e* V4 b2 d& R& b
14 #include "psc.h" ) [, D0 @: }$ t4 B* ?
15 #include "gpio.h" / ?( y& Y9 u( U! X1 ]. Z
16 #include "uart.h"
0 f" w+ Q& p, x7 C2 r+ [ z* r" F 17 #include "uartStdio.h"& w* z: G- t+ K: V+ \
18
3 ]) r4 M- ?5 G9 r: h' g 19 #define OUTPUT UARTprintf; V) E8 P/ c* S) r% ]! l9 Q" q' h
20 #else
* h- s% w3 Y3 s2 K- c9 F 21 #include <stdio.h>
/ D1 A( i; i/ ?) o" q 22 #include <stdbool.h>% X( _+ ?0 i4 n+ S
23 9 H2 B4 G" X" K% J
24 #define OUTPUT printf: T2 s- L# |- s8 j+ {6 h9 P, e, K
25 #endif$ ^% A- a4 I8 Q5 I
26
& u3 J7 k2 @/ m 27 /* Log init */
+ _0 h! J- A) r2 o% s 28 #if OUTPUT_TO_UART1
% Q8 \6 O: G `) X# Y1 I 29 #define LOG_INIT() do { \9 }' f7 z: x# k$ b+ b
30 PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, \7 O* c* h+ Q. E
31 PSC_POWERDOMAIN_ALWAYS_ON, \
2 ^9 Y' u; l3 |* n& A$ M 32 PSC_MDCTL_NEXT_ENABLE); \
, R0 e9 C% t- v7 r' N$ C 33 GPIOBank6Pin12PinMuxSetup(); \
! P; Q( c/ x2 q+ \5 A 34 GPIOBank6Pin13PinMuxSetup(); \
- N. q0 T( ?0 }" {( R! P 35 GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT); \, c1 U% H3 ? ~8 k4 q! r- ]
36 GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT); \
* z4 @0 V$ k! ?& K% k( _. F 37 UARTStdioInit(); \3 \0 v: @2 H6 {% B$ \1 n
38 } while (0)
7 }3 I5 [6 p# R6 v; [ 39 #else1 v/ e! i" [. x$ A8 E& j9 L8 ~
40 #define LOG_INIT() do { } while (0)
; x* ~; w4 W7 n 41 #endif3 i' ~! E% p& s6 }) q
42 9 R2 P! I# y- b z! d
43 /* Log Output */8 S! B, ~' `% S* n& a
44 #define LOG_INFO(format, ...) \
- }; F2 J8 q" o' i6 @) @ 45 do { \
6 y$ H6 f4 \/ ?1 j/ r 46 OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \+ p- o/ q* }+ v s
47 } while (0)
- l$ x* ~1 K; M9 d9 ? 48
1 A. t. H; S; g$ ` 49 #define LOG_ERROR(format, ...) \8 o5 ~' {% j/ A }. f$ g1 K& H, u
50 do { \( D$ Q2 I6 k7 S
51 OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \! c5 h- _9 A; [2 B+ I. o. _
52 } while (0)6 i. \2 B$ |$ m7 I
53
/ S3 X; T6 x2 L1 h0 h 54 #define LOG_DEBUG(format, ...) \
0 m2 T; c: Y0 U" B' k7 D 55 do { \
2 R, X1 I3 ^0 o6 q# n( l$ R& B 56 OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
# Y) O9 A2 ?2 d9 k S 57 } while (0)" u/ p, A. v$ a3 G( N
58
# j# o5 Q1 O9 z& E, P 59 #define LOG_WARN(format, ...) \
- M) v; J+ Z; Z8 f+ v 60 do { \/ ` ^6 g! C( h# J/ i4 P
61 OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \/ {5 m- m4 G4 H8 Q/ k
62 } while (0)
7 u0 f! v% M; I/ r" i 63 4 x4 ^8 B' X5 a$ R5 x0 _) P# G
64 #define LOG_TRACE(format, ...) \
% K7 ^4 a2 [ F( b0 |- Q" p 65 do { \
# h$ @ }6 i& u( K3 I. Q9 W6 T! J 66 OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
* C g2 H$ y% l% y) C 67 } while (0)
" Y0 q: ]2 Q4 G4 C7 ~ 68 2 l! e9 C# F2 F6 a! ~! K
69 #define LOG_FATAL(format, ...) \, l1 N9 }: z9 p' b! S6 S3 ^1 o$ n+ O3 g/ a
70 do { \
8 F% o" A9 \. t, q% s5 u$ h 71 OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
; I2 v$ B" b! C9 B* R# U& r 72 exit(1); \
& [2 S# V( M" h. o" G4 Z 73 } while (0)
. u! d; K5 x( N1 j) ~ 74
) _4 v5 f& R9 o. e$ c& Q7 V 75 /* Assert */
9 W3 m" u$ _9 G# h5 i8 y* ` 76 #define ASSERT(EXP) \
) u. k3 p, |7 n* p8 K1 A5 @' L 77 do{ \0 Q' a& V6 \4 E% D6 Y/ B/ t% f1 Q
78 if (!(EXP)) { \
, ~# g" t$ w s$ a8 _/ p4 e1 @7 O1 C; } 79 OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ ); \
; d+ D. Z- I/ E9 Y3 y, ~: ? 80 exit(1); \3 O# l! q: M, G, } \/ @
81 } \
$ I9 H* ~' Q. w# @+ {4 ~ 82 } while(0)8 F$ D% }- Z2 ?4 K+ x% O6 `
83
" p [* s9 e' d9 X) w+ K5 q 84 #endif/ l L# f" G% T, j. b/ v
|
|