|
|
1 #ifndef _LOG_H_, E d V: y# Y9 x
2 #define _LOG_H_
; B; h5 g8 x" x7 \# {; Y 3 0 A {, l1 p9 m/ [2 e
4 /* 0: printf; 1: UART1 */6 R$ G) _3 g2 `, A: Q" m0 q# e
5 #define OUTPUT_TO_UART1 1) x, F6 R& o9 W+ s. l$ [/ I+ t1 [
6
! b& j6 x3 ?1 H3 ~2 N' L 7 /* Switch Log Output */. M# r4 D7 m, D0 ^5 b. O6 c4 m
8 #if OUTPUT_TO_UART1
7 y/ ~& \4 f% n% s {( R: _7 s. | 9 /* For UART1 Initial */
i9 E! C, V d, ~ 10 #include <stdlib.h>) X! U1 C/ j: C( t
11 #include "hw_types.h" / k- g$ a4 _' F/ f0 D
12 #include "hw_syscfg0_C6748.h"+ `$ f! W) t7 |) J
13 #include "soc_C6748.h"9 g) _3 V) ^. i
14 #include "psc.h" " U) f' H" c; G8 F' |
15 #include "gpio.h"
, g0 G! D- `8 q- |- ?- r' L 16 #include "uart.h"& N+ q% X, A% |( X# \
17 #include "uartStdio.h"/ C3 H2 I3 x$ p
18 1 S5 S& q) v' `/ R" d4 M
19 #define OUTPUT UARTprintf/ S8 w9 ~# O- L! P! i
20 #else! x. ^( _0 d2 F- H m5 v+ G
21 #include <stdio.h>
# p8 ~: Z* I& s, q; t7 S 22 #include <stdbool.h>' I6 E1 {: o4 Q O5 S) _, N) y7 v) s
23 [& l. a2 o& [7 M& V+ v& T
24 #define OUTPUT printf& R* t; K9 C5 U& A( w$ j/ }8 N
25 #endif
% D2 G' C0 W, V, x; a/ w2 [ 26
* k5 P2 Y! ~/ V( A! l' X9 y; @ 27 /* Log init */ P! c9 q" q2 ~- L# {: L
28 #if OUTPUT_TO_UART1
& n0 J, S) C- }5 J. H# p8 L2 G* i* R 29 #define LOG_INIT() do { \
- |7 z% c: P$ Z" e 30 PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, \3 V8 e4 K: X p( S; _+ {
31 PSC_POWERDOMAIN_ALWAYS_ON, \
+ L# N/ W+ D) B) E0 Y n2 H5 u 32 PSC_MDCTL_NEXT_ENABLE); \
0 A5 v, C4 `) L 33 GPIOBank6Pin12PinMuxSetup(); \
1 k1 G. G3 ^9 w# ~5 |. Q, H 34 GPIOBank6Pin13PinMuxSetup(); \
7 Y& q1 C' O9 |, m! b: u; N: Y 35 GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT); \3 i% w( {' [4 Z0 Y6 R
36 GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT); \$ i( I4 o+ R3 K5 C$ z3 L+ B
37 UARTStdioInit(); \% E5 K7 E; h8 `% S6 w4 R+ h" ~
38 } while (0)
, k1 [8 I& X' ?+ f% ^ 39 #else7 w* ^2 l6 h: y, S6 _6 s6 S
40 #define LOG_INIT() do { } while (0)$ T0 r3 W1 P$ Y" H
41 #endif5 L* t. U# t$ p6 ]! O7 z) M3 R
42 0 ~7 ?' D- c4 T) m( {
43 /* Log Output *// f0 ]3 z) t! J8 W F9 o
44 #define LOG_INFO(format, ...) \1 k' Z" y5 T* X' Y( \. m
45 do { \- a$ j6 T& Y1 V) K
46 OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
) g$ @- Q3 F% x9 ^ 47 } while (0), d I1 c" {! h: q
48 : s5 q% x/ A5 F- g; F! N$ | d
49 #define LOG_ERROR(format, ...) \+ Y4 v3 m+ u6 C3 P- e# R; y
50 do { \
6 \" k9 ~) D7 [( U5 i6 N7 r 51 OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \, B! f! t9 @; {# C7 l9 F- [7 Y$ ^
52 } while (0)
7 T- a$ L* V. ]) H ~, @! H 53
' g& D3 m/ {0 T+ j! x 54 #define LOG_DEBUG(format, ...) \0 w+ j4 L4 }1 t( Y
55 do { \
9 G3 E Q' `: O# T, Y 56 OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \' o6 v8 B/ E) Z: I* k Z" Z: L
57 } while (0)
; w* b' z* s) H% \# c1 M% u 58 ) W+ ~4 @' k! u8 y6 q
59 #define LOG_WARN(format, ...) \, N" x9 `3 ^8 t, u4 p8 Q* L5 ~$ a
60 do { \1 @0 d0 I1 W( Z! @
61 OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
$ a3 O1 {$ h8 k 62 } while (0)
4 v4 B1 s( @" C5 q) I4 Q; j/ A 63
4 W) c; R+ D6 h% y 64 #define LOG_TRACE(format, ...) \+ I6 g/ ? ?. k. C+ I# u0 r( r$ ?% t8 V1 N7 ]
65 do { \6 {# }1 _7 `/ P9 I2 c
66 OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
% ^* e _8 B7 F5 S 67 } while (0). G, ^0 Z! ?, m1 t
68
; c8 Q. C7 u* W4 n 69 #define LOG_FATAL(format, ...) \" m" X ~2 w: w$ t Z3 \, v" `
70 do { \5 ^% L& U2 y# y4 v
71 OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
; u. C3 Y; J: m }4 _! \7 `4 _0 r 72 exit(1); \* y5 L, v4 V/ V; |. N
73 } while (0)/ q: X; U. F9 N: }
74
: h# I0 W: o0 [8 m; C* F4 s" ~ 75 /* Assert */' K* M/ y9 p5 H Y5 C& F4 p/ @* C
76 #define ASSERT(EXP) \: i% M( \, \0 u: Q, j/ p
77 do{ \
! f! {: S- m" {% s' A& v6 d9 D. ^ 78 if (!(EXP)) { \ R( \8 E7 H6 W& L7 `
79 OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ ); \! y# e! u2 O- \, F
80 exit(1); \4 k4 ]5 u1 L% Z. a+ b+ W
81 } \
- C% m* o i+ P. }6 Q; Q P 82 } while(0)' I) F1 x& J; L3 g1 E% v
83 ; @( O' I$ \( d4 y1 y
84 #endif4 J; }1 g4 X$ O/ \
|
|