|
1 #ifndef _LOG_H_& g# f. G; i7 D9 \/ u: K6 L+ f% T
2 #define _LOG_H_
% x* S2 c) p2 x- b; ^ 3 . L8 ]3 }$ {4 X, O2 b
4 /* 0: printf; 1: UART1 */7 e4 @6 ` f& @. R* x4 {
5 #define OUTPUT_TO_UART1 1
* B; S2 O) O- a0 b 6 5 o- O* `: A0 H2 c9 ]
7 /* Switch Log Output */
0 z, p; h) {) p/ O5 f' U7 I 8 #if OUTPUT_TO_UART1
+ H: ?+ K6 ^- Y- ^8 K 9 /* For UART1 Initial */
0 @6 D' B& ]. h% | 10 #include <stdlib.h>
, D6 V$ A' _4 R7 I! F% M/ s; w 11 #include "hw_types.h" 8 w! x2 z1 J1 t5 i2 Y
12 #include "hw_syscfg0_C6748.h"
$ Z9 w4 A2 h) D& X, K) B5 i 13 #include "soc_C6748.h"
& R* |1 o; S+ Y: s6 q! E: p, w/ x 14 #include "psc.h"
_% }0 C4 E7 t0 s 15 #include "gpio.h" 6 [- w" h* n# j) T" V( i
16 #include "uart.h"
; g- [- b& x4 ?" N8 _, i 17 #include "uartStdio.h"0 l8 j* Q! @! V* Y
18 : w6 Q4 ]4 {+ o$ U; w
19 #define OUTPUT UARTprintf. J$ w# ?8 v) N R1 i
20 #else
8 {3 P) U& ` D. W: F6 X 21 #include <stdio.h>
# a8 j! H( g6 ^% Y9 O# r1 B3 [ 22 #include <stdbool.h>
2 A' c u) x) _; w 23 7 W# ^ f: `, Z. {2 N6 A
24 #define OUTPUT printf
$ N( ~; _- J% O# E5 [* _ 25 #endif
3 B2 V7 Y5 v. H+ X5 u1 [ 26
1 y& I' m6 R5 v0 g* Z 27 /* Log init */: \: O3 R; A& P3 y- S
28 #if OUTPUT_TO_UART1
7 J/ W5 f. d7 G5 [- d 29 #define LOG_INIT() do { \/ [# \/ O! a$ q
30 PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, \9 l+ P) O9 M; c3 D$ S
31 PSC_POWERDOMAIN_ALWAYS_ON, \$ h: A! _6 V3 |0 ~1 y% B! ]
32 PSC_MDCTL_NEXT_ENABLE); \: {: ?: v# ^+ j- ~& @0 J$ P; S
33 GPIOBank6Pin12PinMuxSetup(); \
R8 Z: h! e5 G) k6 N: A' E" U$ ~% k 34 GPIOBank6Pin13PinMuxSetup(); \
3 z& ]0 q7 p+ ]0 x 35 GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT); \& C" q6 A7 y& b5 Y* j1 M
36 GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT); \
- g6 O& \, q- p8 Y+ V4 ~0 q 37 UARTStdioInit(); \
8 _2 k6 u. \# S& G6 L( [ 38 } while (0)* ~' k. q) g) X( w/ r6 i3 x! e
39 #else
! }# Y+ ]2 Z. w" O: k 40 #define LOG_INIT() do { } while (0)0 |, M$ z1 N) u5 L5 b
41 #endif
@* W2 F% y3 r/ M# L' I' G 42
5 u6 w) w7 Q: A, O: F6 k 43 /* Log Output */& m7 l! Q% H' I9 X. R/ P
44 #define LOG_INFO(format, ...) \+ \- S2 J: W, p( s w" {! I" N
45 do { \" w6 F& S0 q, u
46 OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
, V- _+ f, O' l4 Z 47 } while (0)
9 P2 a) W6 L2 y) b3 O+ T, H 48
' S% U+ J( |1 {- N& p 49 #define LOG_ERROR(format, ...) \6 j4 W8 R2 \% F8 M S+ X
50 do { \
3 d& ~# c8 a4 {5 A 51 OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
* a D0 S' y& s u- S 52 } while (0)
/ @# S/ B D3 a 53 : h2 |# _) w1 B' Y' H8 y8 h
54 #define LOG_DEBUG(format, ...) \
: _% ?2 ?9 @) D& t7 D' q 55 do { \9 r+ ?6 f9 i6 J j) _0 Y0 f
56 OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
; i( R; G7 L2 S# |7 l. z 57 } while (0)
! v u/ B; S1 v9 }" \; u 58 + l+ y1 |' D$ _ i
59 #define LOG_WARN(format, ...) \* S, I7 s6 t* X/ A1 Y
60 do { \ c& R) n' e. }! k
61 OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \& v( v) @! F. U
62 } while (0); C3 E( b3 z: C# S! {
63
! {( X8 {* Y3 \/ Q* ^9 Z 64 #define LOG_TRACE(format, ...) \
1 P1 w7 X0 c6 F/ |) G 65 do { \2 Y7 m; M0 l! }* H# T* @+ ?0 [
66 OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
1 I% Z8 w. L8 |* v" F1 ^ 67 } while (0)
" ?9 m7 J5 o( `/ ]/ _" P9 I 68 0 n! O0 a+ n! u% K
69 #define LOG_FATAL(format, ...) \
! w; a+ Y. `: i* Z0 r; Z2 { 70 do { \
; p. u* e. K) @ 71 OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \2 r; _# J/ }. h7 e2 m! g* I- I) j7 |
72 exit(1); \
; H0 B" l- K3 z, @ 73 } while (0)
8 M9 m/ G% F! p8 [" K 74 2 R3 \ `/ P4 c6 K
75 /* Assert */+ X @% e4 C% l. X E% q, B
76 #define ASSERT(EXP) \, a- j: t. n. o8 X9 }
77 do{ \: U$ G9 H9 S' x+ Q7 L
78 if (!(EXP)) { \3 J! U# D4 z& t7 h1 J w# J3 O) P
79 OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ ); \5 }8 w- |! o" b: Z9 a, V
80 exit(1); \% Y+ U: O9 g; U" u4 @
81 } \3 z/ T+ X2 @5 ~6 `, i
82 } while(0)
D& T0 o" s! ]+ p4 g 83 ' n" m4 I3 E) b8 | }! a" d- T
84 #endif
: w! l. E5 R/ ^) @1 Q |
|