|
|
1 #ifndef _LOG_H_ B6 Q- O4 L, M3 E$ @
2 #define _LOG_H_
6 H8 |; w( {* k* l' [' I 3 6 r0 O9 R9 k7 g
4 /* 0: printf; 1: UART1 */0 C1 R* G: G! F4 }+ s7 c
5 #define OUTPUT_TO_UART1 1, C, \2 l; p( w) M# o, K
6 " N/ K" Q: ?! _! }3 W3 U
7 /* Switch Log Output */
; [( ?. c. H1 h% x- t7 M 8 #if OUTPUT_TO_UART1$ R! f7 C8 A3 x! ~& V: c' e3 F
9 /* For UART1 Initial */
$ e+ A- t$ v3 O( k3 G, H! Y: G+ ^) f: A 10 #include <stdlib.h>
* c: s& g s/ ^: J$ Q o 11 #include "hw_types.h" 4 A7 S, T- n% H t) ^
12 #include "hw_syscfg0_C6748.h"
8 w+ \. M2 ]2 t: l6 Y/ k 13 #include "soc_C6748.h"# m/ E; Q+ e$ {, W* F7 J k
14 #include "psc.h" $ A5 z7 D4 L9 h2 f
15 #include "gpio.h" 8 D2 p3 c5 o8 G2 Z1 B( \8 Z& y
16 #include "uart.h"0 s$ e9 H6 g6 ?. Y0 L" v3 B
17 #include "uartStdio.h"" }/ Q7 R k2 K+ s9 v( n
18 $ {8 M% I& t% b0 Y6 M& u
19 #define OUTPUT UARTprintf
$ x" @; V' D+ y/ n: T 20 #else
+ O2 \8 Z* F7 P 21 #include <stdio.h>. J K/ j5 b+ f! C: M( L% M: k
22 #include <stdbool.h>4 k4 ]& a& k" u6 H- Y2 e
23 % @* T5 p3 ~6 P( `- t( L
24 #define OUTPUT printf
5 R" S# Z* O' H" D$ ~$ |1 x 25 #endif
, `. \8 M, c3 \ 26
) A7 ?1 n6 `1 M% Z3 c+ b- t 27 /* Log init */; T) ?" z0 e: l' p9 s
28 #if OUTPUT_TO_UART18 @5 a2 M- S9 b1 ?
29 #define LOG_INIT() do { \- `. x7 V; I" a N
30 PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, \% A0 D9 x7 {6 C; F, v( J$ c
31 PSC_POWERDOMAIN_ALWAYS_ON, \
# x5 Z8 T& N/ n1 i6 ~ E 32 PSC_MDCTL_NEXT_ENABLE); \% V0 S1 ^7 |7 [) E# K
33 GPIOBank6Pin12PinMuxSetup(); \
( _) ~- W' z- r+ b( x: @ 34 GPIOBank6Pin13PinMuxSetup(); \
7 Z8 H& H3 k0 I% t7 H 35 GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT); \
3 I8 M4 \" [8 {$ a 36 GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT); \
* F* j9 f! w! m9 A. u E- t 37 UARTStdioInit(); \' M" O6 o) r: e# {) ?, b) G9 e
38 } while (0), d" ~" V% O0 d0 z+ E1 A) x1 g
39 #else. h( Z& B1 Q" { C" e! p1 u/ [' ~
40 #define LOG_INIT() do { } while (0)0 }7 ~4 C- `- V9 J
41 #endif
2 Z- x% q/ b" z+ H 42 9 B8 @5 I8 }( n0 G
43 /* Log Output */+ Z5 z& d0 `5 [. S
44 #define LOG_INFO(format, ...) \
$ I% Y. D7 m) ^3 w 45 do { \
# ]8 }$ W5 I, b T' _ 46 OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
9 d! z: s. Y1 P/ O1 q, w 47 } while (0)
& {! A' [8 `( z5 E7 X( e" P 48 , F. ]# @1 n- p6 {/ I. [/ p: P
49 #define LOG_ERROR(format, ...) \
& m* z/ f2 r$ b8 [% A 50 do { \
! Z" _* k- R% ^: }4 q$ z# X 51 OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
/ p) X" K9 W! w' R# u 52 } while (0): j l: T! k/ H3 P( Z
53 + n2 R: K0 i. a2 a6 M+ M! |8 V% s
54 #define LOG_DEBUG(format, ...) \
r8 h! s) c- }" V 55 do { \$ ~4 c+ V ~& j; p+ \, X
56 OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \/ w+ f5 b! N: e/ _" }$ T
57 } while (0)( z5 }* s, a- \. j: m* I
58
" L" q' ^0 }, Y$ o$ h2 J" |5 b 59 #define LOG_WARN(format, ...) \
% E1 D& k8 F) c! u 60 do { \; b+ E$ S; N4 z
61 OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
" }: o, C2 y8 Q0 S0 v2 I4 F 62 } while (0)
. x, i# m* ]; _+ h, O 63 " @1 |8 g, e! Z. o( U
64 #define LOG_TRACE(format, ...) \
- T* J6 ~% x* Y9 L, Y6 I2 A 65 do { \4 T+ ^) H5 |0 r/ h
66 OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \) \4 g+ S4 u, s7 C! @
67 } while (0)
8 e( q( e: K/ z 68 % H! g' U* e* y' c
69 #define LOG_FATAL(format, ...) \3 [! o, E) U7 ?: i: s
70 do { \
7 r9 j% E: Q. x2 }1 L 71 OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \/ y ~) b! m, h: N
72 exit(1); \" H6 D$ H; P6 t3 K r/ o7 A( K) E
73 } while (0)* n" A. X2 M8 r0 @) [& G8 I' u& e
74 6 s& ^; A) F2 j
75 /* Assert */
0 e/ _8 e7 e$ G+ V 76 #define ASSERT(EXP) \
0 g0 d) f) k. ?: u) B 77 do{ \
" r* ?+ h& @ I9 P0 b+ p9 w# G. o 78 if (!(EXP)) { \
+ e4 T, F. w9 P4 g# _+ f! p 79 OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ ); \
$ N& T4 {5 {/ s. J; R% ~3 E1 q/ P 80 exit(1); \* O; F# D7 ]+ I) H' B( ]) Q
81 } \/ Q& y# O" C" D7 u7 ]: [
82 } while(0)
7 a6 A5 q/ [+ u; z7 u5 L 83 ( Z3 K9 s5 r! V% |( J0 A' F
84 #endif+ g, Z1 f0 R5 F- J& a
|
|