|
|
1 #ifndef _LOG_H_
! L# X$ z& T e0 j, Z4 F 2 #define _LOG_H_
, z# }5 W( g5 X: V @7 c 3
. |1 ?) J, Y/ Z; ~5 s1 b 4 /* 0: printf; 1: UART1 */+ Z% [2 `$ G7 z8 @9 \+ T+ @
5 #define OUTPUT_TO_UART1 1# k8 R: j( H$ G! R- K2 y
6
) l% I: s7 ^. ] 7 /* Switch Log Output */
. E4 g4 G5 t4 y9 ? 8 #if OUTPUT_TO_UART1
& g: i' j5 s* A3 x5 e& q" ` 9 /* For UART1 Initial */
1 F3 |1 z0 X4 J% K; ] 10 #include <stdlib.h>
( I- Q; Q0 i9 m* r 11 #include "hw_types.h" ) [7 f5 G! u- f i' p
12 #include "hw_syscfg0_C6748.h"
; q4 \7 N% c$ H) E8 w: j 13 #include "soc_C6748.h"- t* O" J+ U. y
14 #include "psc.h"
5 k6 D* L, G; v' K 15 #include "gpio.h"
6 \+ V! ^0 q& Q 16 #include "uart.h"+ w+ ]& [7 ]2 ^; y+ m9 c* o
17 #include "uartStdio.h"
* M( P& C9 ?' M! i: s; G- _ 18 # Z0 o& m4 L" |4 C" M8 L
19 #define OUTPUT UARTprintf
$ m6 x" Z. C, B4 _2 ^- {+ r' b" x& m 20 #else
$ R6 g, [) O/ {6 [) i8 q {7 w$ j 21 #include <stdio.h>8 C, t. P+ d7 w. R$ h$ m* L7 t
22 #include <stdbool.h>8 m& S% B3 a: b) g7 U" u% U9 F
23 5 O5 `6 P) S+ G0 ~; m
24 #define OUTPUT printf0 N, w: H& k, z8 B* [2 {
25 #endif \8 i0 n, f8 u; w
26 , F% S/ ^8 \- u R5 Q( t: Z
27 /* Log init */. I% w& {6 a$ N3 Z! K/ i
28 #if OUTPUT_TO_UART1. [. _; _6 l& Z$ ~9 n+ V( r
29 #define LOG_INIT() do { \7 T7 _4 B- Y! H: ?6 G4 B
30 PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, \
z/ { g, S4 `7 J* a v! n 31 PSC_POWERDOMAIN_ALWAYS_ON, \
- Q/ N# k1 l+ ~+ ^5 C/ S- i8 ?; ? 32 PSC_MDCTL_NEXT_ENABLE); \
+ t8 b9 B& c6 O0 a# Z4 u6 o$ F) { 33 GPIOBank6Pin12PinMuxSetup(); \
$ Y) _; E I2 B! i) B& C7 m 34 GPIOBank6Pin13PinMuxSetup(); \5 Q! G0 T; \, Z: s5 g
35 GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT); \2 |3 U' G1 K) ~( \% X/ |7 X
36 GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT); \
6 {& X k3 I7 R D# a; W, v+ w k 37 UARTStdioInit(); \/ q7 D6 c9 f+ R2 e- G
38 } while (0)
/ V7 U% F; W& T+ F0 S5 w# o. C/ g 39 #else
# i& b9 U3 `* x6 x' X 40 #define LOG_INIT() do { } while (0)
$ K6 R6 _0 C/ w( }7 `; R( Y 41 #endif M% `: w, R: ~' ~$ r
42 % L m9 W* m( j% `4 ^' b* z
43 /* Log Output */% N s2 U ~4 l
44 #define LOG_INFO(format, ...) \! z6 `% ~8 }6 h0 I9 {9 l2 t& E! Q
45 do { \
Q1 ?6 K: H i1 k' P& } 46 OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
( I" D2 b8 W5 Y. g( a* _3 B 47 } while (0)6 V6 C% V, T/ ~: Z9 W! B
48 8 p( N& ?9 E }: G6 N# U
49 #define LOG_ERROR(format, ...) \. v( s& {/ ?/ T9 x6 h5 y% ?6 a9 K9 t
50 do { \& M2 b5 n' O4 ^) E* k- @( p6 ~' K
51 OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
( K; P1 W+ c: K' L9 b( Z6 z 52 } while (0)
0 X- T% _9 Q* c5 N 53 . D0 U' F; u( l
54 #define LOG_DEBUG(format, ...) \
) f% B" _3 r, a1 h0 W7 u 55 do { \" U: D N9 S* D4 o- Y( f* w5 C
56 OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
3 q8 p/ j3 G( x G6 Y 57 } while (0)
/ z& e9 \5 e1 i" o) N$ ^ 58
* n3 T" A# q$ G- Y) s' L 59 #define LOG_WARN(format, ...) \4 J8 Q! ?3 ~8 h" k, X3 J
60 do { \. M0 k; b0 r' ^0 F
61 OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \& I: M ?% l4 F; J; ^
62 } while (0)
/ p$ Q$ m: T" n% b2 ]+ _ 63 7 { a+ J5 g% M, ?: T7 J$ C
64 #define LOG_TRACE(format, ...) \$ A2 Q# v4 H# U
65 do { \
, a/ ]( v: d, _5 `, o# {" D 66 OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
3 F5 R0 E/ }* H+ X 67 } while (0)
1 H' r( u2 `; b 68
7 }- G6 M% A k 69 #define LOG_FATAL(format, ...) \3 A. x0 {1 s3 F
70 do { \# J4 i" d' ?( `& t/ p6 k
71 OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
& Q* o6 l. V2 X7 p/ M, Q' ^ 72 exit(1); \
9 N$ L; ` J; q a4 v$ X) j 73 } while (0)
. E5 A' W) F* n: a! z' J. n 74
9 Y4 y5 @% A* J4 \4 U$ z' ^, k6 N 75 /* Assert */
3 i% ~. b& ?" v) C" ? o: R 76 #define ASSERT(EXP) \" ~. J; b# Z9 ?1 c
77 do{ \
$ _# I( Q ~" J5 D( N2 T }8 X 78 if (!(EXP)) { \1 z7 h2 v$ L: ]# Q
79 OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ ); \
7 ]& S* z& e D, n; e; e) X- S C 80 exit(1); \# m3 C* s" s# n# V3 Q" r
81 } \
- Z' n7 Q! f! C" |& D 82 } while(0)$ e3 @6 g: v# X) d
83
( }; y: @% D7 y9 S5 H- ] 84 #endif
4 O0 M* O0 G# L. d |
|