|
|
1 #ifndef _LOG_H_
) c; h7 ~) a; H% \- y 2 #define _LOG_H_
: C+ i" z: A7 c7 p) m; d 3
, U& f# h/ J' [5 Z; B& X% b' v0 q 4 /* 0: printf; 1: UART1 */
8 y; F* f% F7 C' N4 z b7 h 5 #define OUTPUT_TO_UART1 1
# p X5 j2 K* T* b 6
4 z1 D& |. J! P: u5 [ 7 /* Switch Log Output */: O6 {7 {4 Y% _; e; m4 X: H" g) a
8 #if OUTPUT_TO_UART1- Y3 N' Q7 ^/ ^8 A4 C5 v
9 /* For UART1 Initial */* Y9 S3 t* F6 U: E
10 #include <stdlib.h>
G* g, a, M# k6 N5 w5 z 11 #include "hw_types.h"
& d8 X6 d$ P O/ j: i( E 12 #include "hw_syscfg0_C6748.h"1 U% F; n3 |7 ?) p- M* l2 t+ Y
13 #include "soc_C6748.h"4 c! q7 M r1 K
14 #include "psc.h" / b+ f7 ~( d; _, \- [
15 #include "gpio.h"
9 V. F& N8 a, f8 \ r8 ] 16 #include "uart.h"8 U m! S3 Z1 C7 n3 k
17 #include "uartStdio.h"
D0 r* V, Q, g5 Z' r* S. M$ } 18 - n% f- R+ ^$ Z, F8 S
19 #define OUTPUT UARTprintf
! a9 [: Q) G" L4 @& Y l 20 #else
, o+ B1 \( l9 q% R 21 #include <stdio.h>6 P! ], c7 N* ]$ y
22 #include <stdbool.h>
9 A' F0 F# _2 j; S: X' R( Y0 M0 ~ 23
& |1 l( B Y$ i$ a 24 #define OUTPUT printf1 [( s6 _' I' B( H% L6 W1 f
25 #endif
5 Y* \: y. h$ v% L0 G% f2 \ 26
$ f* A5 e7 Z; M: o. y- `* z3 _ 27 /* Log init */4 }" o; |1 `- G2 K. E5 x% P
28 #if OUTPUT_TO_UART1
. q e2 I* _ z" ]( m. L. }. _ 29 #define LOG_INIT() do { \3 s5 F" O: f9 F
30 PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, \
. O N. @3 e: A 31 PSC_POWERDOMAIN_ALWAYS_ON, \
- P, u* z. P8 X 32 PSC_MDCTL_NEXT_ENABLE); \5 C: C! e7 S2 M' |6 z9 @6 m1 b* E2 v2 c
33 GPIOBank6Pin12PinMuxSetup(); \
- ?' O- L1 h3 u- B% e8 u- D 34 GPIOBank6Pin13PinMuxSetup(); \3 q J- H. T) B+ ]9 A
35 GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT); \8 Y- ?8 U1 x6 j% }+ |3 G7 o: W' G
36 GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT); \( D( q. |# d/ z0 m8 F
37 UARTStdioInit(); \6 m/ x% J6 z" L6 c
38 } while (0)$ Y( |3 ^) ~, l( p: L8 f6 H
39 #else: L3 s) ^& k! k# y; T! [$ m
40 #define LOG_INIT() do { } while (0)
- O3 g& |5 g4 Y9 Y4 t 41 #endif9 T- e. b9 ~ W# A$ {3 t4 a0 ^( x
42
2 F9 P3 y/ y/ {9 ]& C* o* p! Z- o 43 /* Log Output */
5 j$ m2 N7 `4 _5 c1 f 44 #define LOG_INFO(format, ...) \9 n% \' L6 P" p8 j
45 do { \- X; B; ]+ X2 T5 `+ P
46 OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \5 \7 }) z( U0 T( n+ m" h
47 } while (0)
3 f( h. f* \- ? 48
! ]- F7 _. W7 p# \ 49 #define LOG_ERROR(format, ...) \/ J0 f1 r! \- s( j% |- A& t3 J
50 do { \ m5 w( B: `$ c7 @0 Q' N* r
51 OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
; f7 U5 i8 S& ^ 52 } while (0)$ f5 G: ~! G. ^2 e& {$ a
53
) \' Y7 g" ~8 @! C2 h* | 54 #define LOG_DEBUG(format, ...) \# N) ?: L4 j. C% x7 t$ A$ ?8 p+ U
55 do { \# W6 F) Z6 X1 U6 `2 H. C+ r! m
56 OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \3 N5 u" O1 P2 b/ f
57 } while (0)
s9 ~" M1 k; u1 b& E 58 % n& d9 Z' C7 H0 w, u( A
59 #define LOG_WARN(format, ...) \
3 e N. }/ |* R% C 60 do { \
8 @- }: O% U8 S% S W0 V1 n1 x# m 61 OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
V; S* w M/ f 62 } while (0)
+ {3 t) M0 j3 c5 X 63
2 f/ Z2 m4 j' b0 C 64 #define LOG_TRACE(format, ...) \
" K" u9 p: i) ^/ s& y- h( n* ]' v 65 do { \
# e. K1 Z. `. I2 b' M2 q 66 OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \5 c: U& l& B( i
67 } while (0)
" s! Y2 G+ W: Q, m 68 3 x. x+ j' S9 Y
69 #define LOG_FATAL(format, ...) \4 Z0 O: F: t) W6 P* W% q" \8 A7 f
70 do { \
$ L6 a- J$ J& L6 X! J/ s 71 OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
" r* X1 w4 q; a8 s& ] 72 exit(1); \
( m# x/ w2 N6 q+ j1 ^) G 73 } while (0)
8 C* n. j/ M) ~8 R1 v' d+ D 74 ) R) O. ~' N0 Y
75 /* Assert */
) V: ]1 [# D6 R. t6 w# h 76 #define ASSERT(EXP) \
* r- q: @0 i; B4 K 77 do{ \0 j+ P! t6 x- _/ O3 R
78 if (!(EXP)) { \
2 l5 f/ \2 l1 a7 x 79 OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ ); \
8 L# W+ w' Q& t j0 m2 z1 c7 e 80 exit(1); \
- w F g/ @2 ]1 S- a 81 } \# i5 X9 N4 [- x$ x. U% }; z
82 } while(0)+ b6 _& S! N; H3 z5 R, S
83 7 ^7 _* A( i' b: n8 o
84 #endif* l& c7 r5 N8 m! C
|
|