|
1 #ifndef _LOG_H_
+ ^" @! D. B7 f5 v8 C% ^ 2 #define _LOG_H_) m/ D$ r# c0 _1 }% l, {
3 $ p$ n( E+ g3 ^3 Z; v8 g% R: }) Z8 M) z7 T
4 /* 0: printf; 1: UART1 */9 q! E3 X) }. @2 B1 X ]
5 #define OUTPUT_TO_UART1 13 r* D) ^5 p* w& Q
6
: l2 E& f4 ~* V9 L 7 /* Switch Log Output */0 ]1 m) L+ e; Q( g7 L2 f; l- X- S2 o
8 #if OUTPUT_TO_UART1
- p4 g' ]' d( v5 I: c8 x 9 /* For UART1 Initial */. z& |3 r. Z( p5 @& I
10 #include <stdlib.h>
, i1 _1 M0 g* U3 x7 z- j 11 #include "hw_types.h" 3 h( b5 x9 N" i& K) O# e k
12 #include "hw_syscfg0_C6748.h"
9 B: s( j! X; v- P6 j- m+ L 13 #include "soc_C6748.h"
( ]0 @& q7 I0 L8 k. t 14 #include "psc.h"
+ }9 q& D0 M2 w" E8 O$ d 15 #include "gpio.h" 6 W1 C1 p1 e) d7 w
16 #include "uart.h"! c: c2 l# p6 h* N. T# c4 b- D
17 #include "uartStdio.h"1 n/ P5 ?$ [1 K. @
18 ( v( V; v9 p- I/ f1 b8 a0 F
19 #define OUTPUT UARTprintf9 F3 j, B) K; a" T" J
20 #else5 d* Q' I: Z2 r) V2 J
21 #include <stdio.h>
5 _& T+ t5 m! _$ a. l3 U 22 #include <stdbool.h>' S: g, ?' J% N9 x: }
23
) Z/ p! D2 Z2 x: v 24 #define OUTPUT printf! e7 K$ [$ I5 w: `. I
25 #endif: _: r4 M0 \3 h5 [( W G* q, |
26
7 R+ L2 l, Q( D% ?/ ~ 27 /* Log init */
% d7 K0 }) L! O0 O6 O6 X 28 #if OUTPUT_TO_UART1
' I4 l9 B% v2 N3 B6 [ 29 #define LOG_INIT() do { \
+ J! ?% h( x5 r7 g# V, Z/ R8 I) \$ ~( B0 Y 30 PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, \
" M* I0 s0 P+ y. D k) O 31 PSC_POWERDOMAIN_ALWAYS_ON, \
9 A! D! W2 V5 M1 W. T 32 PSC_MDCTL_NEXT_ENABLE); \
& ?( i; ?/ g& s' ^( ~( l 33 GPIOBank6Pin12PinMuxSetup(); \0 U6 ]8 ]- l* x0 S0 B) D5 y
34 GPIOBank6Pin13PinMuxSetup(); \5 l9 a, g/ |4 K# c5 z! y
35 GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT); \: ?; z8 y; E) J: i
36 GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT); \
7 G/ _; V$ I' j$ x; C 37 UARTStdioInit(); \
. p) [7 N' g s4 [' l 38 } while (0)! d8 A D/ b r/ N( j- V% Q- c
39 #else9 l, T( q) u9 j" Y7 l( d9 ]; T
40 #define LOG_INIT() do { } while (0)
. l0 G0 j+ c$ w/ l% U* ` 41 #endif9 J- n% ?5 k$ O
42
, r2 R0 K1 T* P 43 /* Log Output */
% {5 Y& n0 E5 `, y; @5 U 44 #define LOG_INFO(format, ...) \! u. O5 I% O9 k6 ~+ [$ @
45 do { \/ L) J; F) Z) j& o
46 OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \ x" e) ?1 d+ Y, C4 U3 D5 h+ i
47 } while (0)
" v3 v4 K! w# Y) _ 48 9 }$ J" n. f# F- [: J
49 #define LOG_ERROR(format, ...) \
! O! I& L- C0 V+ ~ d# H 50 do { \
( G6 E% T! `3 @! {+ H7 h0 r 51 OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
1 |# W" M8 ~& h! v 52 } while (0)
2 J9 _! G1 J2 Y 53
- Q$ y+ `* b) _ 54 #define LOG_DEBUG(format, ...) \
: Z4 K9 {3 _- V% q" q2 g! L 55 do { \5 L' E$ g b. k% D& G
56 OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \) z+ e5 D6 v& H0 B# M% ?" w
57 } while (0)
z' Q# l. f7 h. _- T 58 ! o2 ?% w1 }" i6 ?5 X. v; A ^
59 #define LOG_WARN(format, ...) \- h* s' j4 `: B9 Q, \6 L5 _
60 do { \- v: x8 D- p; h
61 OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \4 K3 T1 `9 e, F4 L7 j" H0 o
62 } while (0)
; }2 n7 Z) R L% P 63 # x6 e8 {0 O( n* ~9 y. R4 y
64 #define LOG_TRACE(format, ...) \2 [! \- s) ?/ j2 F
65 do { \
# \9 b: }% W9 ~$ p 66 OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \- T1 e3 H1 c+ k! U+ r7 G& S
67 } while (0)
6 ^- W. q$ ^- |9 M 68 & [7 p4 t) ?( o& u3 u- ^: u- S
69 #define LOG_FATAL(format, ...) \- I' C) D Z. D( W9 f! p8 b+ u1 S
70 do { \+ S4 p2 Z8 ?7 W
71 OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
2 o. j4 R- `, M, W9 m1 z 72 exit(1); \
* t3 T* Z( E7 Q* {& t 73 } while (0)
+ M& _4 i' Y" g& O& c, y 74
( I! F9 C) S1 G6 L! ]5 w2 L 75 /* Assert */; Z& {* }- f6 \4 m: j
76 #define ASSERT(EXP) \3 ~6 _0 C6 ~, a$ ~1 I
77 do{ \6 }- r$ C3 q$ P' b
78 if (!(EXP)) { \1 W3 ]8 z- q" F3 i
79 OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ ); \9 Z3 ~+ M2 N8 q0 a9 f- X1 E- i
80 exit(1); \( F3 d) S7 p2 a
81 } \" a: \; Z+ h3 W' I+ K) i3 |# O0 Q
82 } while(0)
3 t/ }' c+ ]. V/ S 83 ( } e6 T8 M- _' S+ z
84 #endif& @$ T' B1 \1 ^) O- C; y/ D
|
|