|
1 #ifndef _LOG_H_; S2 z- x( X1 s# J" I
2 #define _LOG_H_; O3 O; h4 k& Z4 B/ W' U
3
# T- ]+ @" T1 I 4 /* 0: printf; 1: UART1 */+ D, k2 o: N& t: N
5 #define OUTPUT_TO_UART1 1$ J z) V# K; T/ {$ {" s* V( d5 O
6 " a* ~( @# \; D( V1 e" K
7 /* Switch Log Output */7 O' ^, _, B9 F) E$ ]
8 #if OUTPUT_TO_UART1
' n1 r8 ?& S& ~* n$ H" V) @ 9 /* For UART1 Initial */
; f2 V* K \+ K% w 10 #include <stdlib.h>
7 g: U* \7 m9 k6 u% n. d% K 11 #include "hw_types.h"
' l6 {1 z$ s6 ?. ?; y' ^! w 12 #include "hw_syscfg0_C6748.h"
6 K( [& ?& t1 Y+ j 13 #include "soc_C6748.h"
E G! b4 f; @ 14 #include "psc.h"
" W: x" R0 l. ]! Y* a" ?6 b 15 #include "gpio.h" * V. U7 j" M" d* E% s4 Z
16 #include "uart.h"
( b# {8 L6 j; \3 O 17 #include "uartStdio.h"; c# o0 P& `8 D! k0 u
18
3 [7 Z: ~# @1 C/ _" c6 g1 _/ } 19 #define OUTPUT UARTprintf
5 v1 X9 I% ~# Z8 S9 _$ F5 O7 ?6 [ 20 #else
9 P1 W7 n: s! z9 W. t2 x- x1 q 21 #include <stdio.h>
; c J/ `3 u% M* q2 s3 K 22 #include <stdbool.h>. v' `) R U! |! j) D" `5 A
23 & @4 `8 c! U+ w& Y
24 #define OUTPUT printf) k, u# Z" u6 D1 s. Z4 f. d U
25 #endif0 x( c1 s7 b9 x$ z3 [
26 : n5 |, \( F! \" h" \, [: Z
27 /* Log init */
4 c8 `; N4 `0 c, j t 28 #if OUTPUT_TO_UART1 J% q' z& k# V- N8 u: z
29 #define LOG_INIT() do { \
; s; {# M' E" h0 L& ` 30 PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, \
* l* g0 v5 I) ?5 C 31 PSC_POWERDOMAIN_ALWAYS_ON, \
" v6 R7 x* t) T6 D 32 PSC_MDCTL_NEXT_ENABLE); \1 U% B- x3 \: o6 r& P( A; G% ]) |! a
33 GPIOBank6Pin12PinMuxSetup(); \
i9 t% K+ g% ]; n5 T 34 GPIOBank6Pin13PinMuxSetup(); \
8 r* U. H' I5 i, x0 b 35 GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT); \
a$ ^ Z3 }$ v; \5 Y/ i3 o2 M2 j 36 GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT); \ c1 r# `* D' E) r' q" k5 y2 f
37 UARTStdioInit(); \$ w. n! `+ c7 z; h( M! o! _
38 } while (0)
4 n0 p- i; O' p" P% k9 [ 39 #else
4 X/ e* ]* l# c0 ~' M3 L 40 #define LOG_INIT() do { } while (0)
# {4 o1 y8 W* e 41 #endif$ A8 B0 U9 e8 T
42
- M) l/ r- `* K& E 43 /* Log Output */8 O) k" k' i! P Y
44 #define LOG_INFO(format, ...) \% \* \* R( E V2 B1 v; F A# A
45 do { \
4 K7 \0 c1 u5 `! F) \4 U 46 OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \$ x! V! k! X+ p' { B7 G- {$ L
47 } while (0)
0 Y9 i b) L# V4 a, T 48 2 O1 d) C4 _, p' v( q
49 #define LOG_ERROR(format, ...) \
2 M' e4 C' j' O6 X 50 do { \
1 L* }( m: m9 N* o 51 OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \/ p; _7 e5 f: R' g) ]& F
52 } while (0)
% h4 T9 {2 f4 ?! @. X8 |. k 53 * O" K5 G4 A1 ]& u( d
54 #define LOG_DEBUG(format, ...) \
; q/ T0 ~" N$ J2 B' j 55 do { \
9 {& l: f+ w) W 56 OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \) U% ?7 F0 V, z0 z5 i# E4 ^
57 } while (0)2 x6 ^+ |. f) J
58
+ P a2 Q+ ~9 u1 K 59 #define LOG_WARN(format, ...) \
* P7 T6 V Q; N! t' L0 Q 60 do { \! g6 e( ^$ {$ b7 Z
61 OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
3 H; L% v3 K- v- p 62 } while (0)+ s7 e! [4 Q3 H
63
% ^4 I; Z7 P' Y5 w3 O 64 #define LOG_TRACE(format, ...) \6 L* v) h% O3 W
65 do { \
1 S" C U% e, i 66 OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \: }3 N/ u+ }1 z1 M
67 } while (0) k3 Y6 O% `7 {& ^% k6 |* |5 \
68
3 X' ]# L- i3 H9 d 69 #define LOG_FATAL(format, ...) \
6 i6 @" ^2 l/ B3 J! l# A/ v 70 do { \" B5 h' Q. @, h* \) p
71 OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
7 \' N- M3 c$ Z; Y4 U3 W! g" K4 ]6 p8 | 72 exit(1); \
% E1 S6 I# S" B! n" ]0 u% X 73 } while (0)
" f; L2 J9 W. {1 p 74 : `4 H+ \* S( j7 J7 ]
75 /* Assert */" }8 f0 O5 R: K. R' C$ g
76 #define ASSERT(EXP) \2 m' h; D. a3 p$ |2 l& `. w- T4 S+ D
77 do{ \0 Y z, L( p; h' M
78 if (!(EXP)) { \
/ x5 v* \% f6 H9 ?. J 79 OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ ); \8 N- A7 E. n" n- u# Z0 [
80 exit(1); \
' q2 r* ~2 [ i1 ~3 l+ H: s 81 } \
! D! S# P2 E4 ]: o% l" B# y: K 82 } while(0)8 }9 [1 M, f: O( J% G/ L9 v
83
( r2 N' N( `0 J! F% y 84 #endif
3 g2 S) _2 Z6 P3 r3 l( T! H |
|