|
|
1 #ifndef _LOG_H_
; M# n" y0 L6 R! }! N 2 #define _LOG_H_
( z/ k6 @! O: t! Q) e- { 3 7 G9 B' m7 D2 o8 _$ O# _
4 /* 0: printf; 1: UART1 */
9 c" T4 j0 ^+ w1 w, g/ r( x 5 #define OUTPUT_TO_UART1 17 L( e# `% T$ A+ d/ T, d/ C+ E1 @5 ^
6
/ Q2 |6 _* b: C, |/ m0 B 7 /* Switch Log Output */
/ E. B: d' C0 y/ |3 z8 W 8 #if OUTPUT_TO_UART1# |4 U, b5 a2 M2 |3 W- V7 B
9 /* For UART1 Initial */
8 `# r4 Y3 V2 C: O( e 10 #include <stdlib.h>
$ c# {/ M, A7 R' W- a2 X/ A7 F6 V6 a 11 #include "hw_types.h" 4 I. J+ z2 `2 V, p6 O" }
12 #include "hw_syscfg0_C6748.h"& z' e# t6 i8 {0 f) f
13 #include "soc_C6748.h"
6 r- |$ c* ?' x& e( d 14 #include "psc.h"
1 i0 v- Y! R- ?3 ?2 C& U- Z/ ` 15 #include "gpio.h" : @% a4 t* \* o( H! v
16 #include "uart.h"# W6 ^' {/ `" M5 L5 }
17 #include "uartStdio.h"3 C7 F. f& A- k h) p: O% F4 I9 r( E
18 0 w( f: t+ t* T3 T' a$ C
19 #define OUTPUT UARTprintf- R6 o5 ^- I3 `4 z5 N- ~
20 #else2 u k# ]! m6 O G* N8 o
21 #include <stdio.h>" L* c7 M( N* @7 j* V4 d
22 #include <stdbool.h>
$ X. f- D6 b4 L' { 23
. Z3 Z5 L9 q: N 24 #define OUTPUT printf6 S( j" s6 U; U x: K6 `1 u! f; Z
25 #endif' Q& Y1 m; B" g) V+ H# `7 N X# [
26
" I2 G3 A s+ B ] 27 /* Log init */
: ~9 @+ n2 f5 q 28 #if OUTPUT_TO_UART1
0 F& n: u$ P- y9 q8 V" z 29 #define LOG_INIT() do { \0 \& o1 ]6 o4 E2 |
30 PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, \8 R3 x& F4 |* [6 p$ x+ \( C% g( B
31 PSC_POWERDOMAIN_ALWAYS_ON, \4 Z* Z! F h( s. ~( p
32 PSC_MDCTL_NEXT_ENABLE); \
0 m: N" ]" g3 {/ ~# A5 g% Z' \ 33 GPIOBank6Pin12PinMuxSetup(); \
2 M' [/ Z1 f6 x% Q5 f ^( U 34 GPIOBank6Pin13PinMuxSetup(); \
$ R1 C- Z) n1 y, b' P( U) N 35 GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT); \
; q% f' I8 }- s( E. S! c 36 GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT); \) |! X/ L( }' O$ T/ j4 v
37 UARTStdioInit(); \& y8 {; i' @' T0 ~) K
38 } while (0)! o# i6 {: {2 g/ l9 O$ L; {
39 #else
8 h& [ z9 e( P, a9 F 40 #define LOG_INIT() do { } while (0)0 ?$ k2 i! ` _7 `* N
41 #endif
" { U% T* w* b" H 42 ( h1 r) Q9 y9 D1 y& w: D
43 /* Log Output */9 S* w5 g" Z L
44 #define LOG_INFO(format, ...) \( k( I. n* D8 b8 t) q; d
45 do { \9 c; o/ S6 ?, {6 ^! B% M" y9 o
46 OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
C- x+ j: K& b7 M. {1 P; B 47 } while (0)$ Q, Z8 b% u4 W1 t u& I0 [8 J |
48 3 u$ j6 e7 J4 u
49 #define LOG_ERROR(format, ...) \) f% K9 H& N' ~6 h; g+ m5 g2 J8 n
50 do { \ a% Z. Y, I% N7 d
51 OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
3 S1 m% j3 V& W/ j, ^( W 52 } while (0). L9 X; p& j O# e9 V5 K
53
# C5 ]6 h8 T- q 54 #define LOG_DEBUG(format, ...) \
1 X, S( M8 @0 Y2 i 55 do { \6 ^6 v4 H+ E; J1 g* l0 U/ ^1 }+ L
56 OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \- l( f) M. F4 P% J' \7 ]
57 } while (0)
( d4 }" e5 Y6 \) Y6 ~3 N* H. t 58
4 _& ]% N! `# D; @: \$ U 59 #define LOG_WARN(format, ...) \
) a' O9 x5 l% m/ [ 60 do { \0 @- }' W# F/ E$ y
61 OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
/ u( l z% R8 d& [- L 62 } while (0)- T K1 N% w0 H$ r4 C0 l9 ?5 M, j( r( W
63
! ]% _, F9 j7 S8 t 64 #define LOG_TRACE(format, ...) \& a- D# ^( N% o1 T; k5 g- ~6 U
65 do { \) e5 i' @0 F8 A5 ~9 m( F. K& w6 `% {5 d
66 OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \ |% j4 U" @! R* t4 Q& X
67 } while (0)
5 `4 `% s1 i( \: f 68 # y1 o. X0 R1 V" G' ?! \
69 #define LOG_FATAL(format, ...) \
0 x9 o1 l" e6 S. H" z 70 do { \0 L' t% } D S. I- b+ Z6 x8 |
71 OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
' p# L# {" j6 E4 D; F3 V 72 exit(1); \, [3 H/ m$ r4 d# C
73 } while (0)
4 p. B0 V% @* _6 s 74
2 x: u `3 ^8 a9 F( q; J 75 /* Assert */
5 N- z. r6 u4 ~( T- u0 }* u5 ^, N, G6 X 76 #define ASSERT(EXP) \
- S. R3 s% {) m" N 77 do{ \
0 I, c3 e7 I H5 p/ B. { 78 if (!(EXP)) { \
- n: p. x* E% f" ^ 79 OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ ); \
" L: s; i d. h' N 80 exit(1); \9 M7 R: [3 Z& t6 v
81 } \
! w" Y2 K: X" V, D* N' b& B% } 82 } while(0): p1 j% q6 E( f* @. _
83
& Y* J4 m5 r# ?9 t 84 #endif; N4 c* b0 V4 B. o
|
|