|
|
1 #ifndef _LOG_H_
2 J( Z% { `1 e0 g1 s( {; E* \ 2 #define _LOG_H_" x4 i3 o- x& c. S; M; m3 R3 [- I
3
9 Y5 } U& s& ]: Z 4 /* 0: printf; 1: UART1 */
+ J9 z) d' p3 h2 a$ L 5 #define OUTPUT_TO_UART1 1
- \$ X9 _) U' [% v' A 6
9 ]$ k: Y" Q& S) g3 T$ C 7 /* Switch Log Output */
7 c1 \4 S' t6 f' y5 {" o 8 #if OUTPUT_TO_UART1
9 i: D% i8 W5 D3 G: Z$ _* E3 }6 t 9 /* For UART1 Initial */* C( u% {" Q- ~ X! R' S
10 #include <stdlib.h>
y* d7 d+ }3 S 11 #include "hw_types.h" ( A. I. O/ X1 A
12 #include "hw_syscfg0_C6748.h"
9 F5 Q" j$ T& q3 }6 s0 b 13 #include "soc_C6748.h"
* w# a2 p4 w# L9 @7 h, l 14 #include "psc.h"
^' i$ p0 Z4 V/ Z: z2 ? 15 #include "gpio.h" / F' j/ k; z6 E# ~
16 #include "uart.h"$ y: b7 v. Y) v4 T- x
17 #include "uartStdio.h"
2 S0 p1 j9 L& A. p4 ? 18 9 d+ J# _1 y8 O1 ~
19 #define OUTPUT UARTprintf3 j+ `4 X& D& Y: e* X' H
20 #else: y6 G7 _. }. P$ M
21 #include <stdio.h>
! h* j1 E% t+ _# [: Y 22 #include <stdbool.h>
1 I$ ~8 r3 [ l3 q3 y# w. t, F- w 23 1 U8 \1 Q8 H# @- h* o
24 #define OUTPUT printf1 l! Q8 R: T: F5 d4 q/ q. Z# t
25 #endif% I% x2 d1 E# d% H% h& B
26 2 ]3 X3 h' o. w' k# y4 S
27 /* Log init */1 s: S- ^6 Y0 G/ L8 b
28 #if OUTPUT_TO_UART1
; c o- N4 h+ j* k( @4 ~) n 29 #define LOG_INIT() do { \ Y, o6 T/ Y3 o2 m
30 PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, \
# z& r8 _6 p% p# X! R( \: v 31 PSC_POWERDOMAIN_ALWAYS_ON, \
/ C; Q" n% L( Z: Q0 C2 Z 32 PSC_MDCTL_NEXT_ENABLE); \
& g7 {# H7 q' Q) n9 G* ? 33 GPIOBank6Pin12PinMuxSetup(); \
+ y! M4 d8 q9 _0 [0 p 34 GPIOBank6Pin13PinMuxSetup(); \4 k2 f: \" E1 m
35 GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT); \
7 R4 ]% s( u* Q# E7 F# i( w 36 GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT); \
P" A r) ], r6 T8 }# P 37 UARTStdioInit(); \
* }* u3 }1 k4 P, ?6 e 38 } while (0)2 i% ]- M B% `6 y+ F# G, y( A. M
39 #else
+ T$ L- K# P9 I# r0 E7 s, [ 40 #define LOG_INIT() do { } while (0)
- L1 ^3 z6 X$ w' F2 u 41 #endif- k& L+ _% V L6 ^! s* E, r7 l
42 7 C7 u! P4 m# @6 h9 ?
43 /* Log Output */
) U$ |& j. Y: [. h 44 #define LOG_INFO(format, ...) \- X5 \/ U6 }( @- W
45 do { \" V. y5 o$ d6 X9 R! u- f8 M/ U. m/ o
46 OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
: t, L2 K: d$ r, I! t1 o 47 } while (0)- R5 g8 Z- T7 Z3 L# V
48 : M. `5 q9 v! C1 ]
49 #define LOG_ERROR(format, ...) \+ e6 ^) q7 [3 [# v
50 do { \7 E8 X/ {% y4 }
51 OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
4 N: Q1 T% X' b% u: Q/ A 52 } while (0)$ J+ P- U$ w: @
53
5 D7 s1 U% G- Z 54 #define LOG_DEBUG(format, ...) \
% b: K6 x( O3 D' _) w' y' [; r 55 do { \
- r0 ?9 R9 v( B/ r* F8 a& [- d7 o+ ` 56 OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \( B$ q$ i& ~1 ?) E1 m
57 } while (0)
) x' B) }7 Y2 [- i# ?/ g$ U 58
' {0 C8 M3 \: F' b4 l: _ 59 #define LOG_WARN(format, ...) \
+ S9 U: u+ K; J 60 do { \
! H- F- j+ C3 @9 Q7 w, {; ^" K' K# I9 ? 61 OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \3 ~% |+ |; \2 O- N
62 } while (0)! o6 ` C7 f) ?' p: w1 }
63
( @ \5 @, E1 X/ s& E 64 #define LOG_TRACE(format, ...) \& p( @! X. U7 M8 s3 D% o/ r x
65 do { \9 q0 K% U) f. @: u3 K& B( W* B
66 OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \' Z3 {) C9 x5 j! G! a
67 } while (0)
+ l$ \, h1 Z$ f* Y8 s5 F1 Q 68 + Z, F# }9 U- V
69 #define LOG_FATAL(format, ...) \
4 I4 g% l- N6 H 70 do { \
1 ~. v4 Q* W" A4 o& T 71 OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
* p& M: V& u: y4 O' X 72 exit(1); \
& c3 [6 B3 b4 W 73 } while (0)
' ~6 @2 M" e# ~: }3 h& ]: ~+ E 74
! W" ` p) ], P) `7 h 75 /* Assert */
- p0 O- Q3 g2 n( |9 X9 N 76 #define ASSERT(EXP) \
" ~- s& ? X$ z5 q: K* G8 `3 P1 y 77 do{ \) z/ y2 o9 a! B) Q
78 if (!(EXP)) { \: H/ u$ w& |1 R* } c1 B
79 OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ ); \
8 ~& n4 \" D" x( } 80 exit(1); \# o0 [4 Y! z6 o4 n$ l2 i4 d
81 } \
( }' W4 E( E' L9 M" G; \, A8 ~ 82 } while(0)3 C7 V, Q) R: B) z( U% P& R1 ?
83 ) [7 p1 a1 c9 S9 r% b
84 #endif
7 {% _) B" u# e9 w, V/ F |
|