|
|
1 #ifndef _LOG_H_& n* u. c- O, W: Y# s' E, b( O
2 #define _LOG_H_; ]; X8 c( G i; B
3
$ g% G$ t" \- n9 O 4 /* 0: printf; 1: UART1 */6 b2 h* [ e" G( E8 v+ X# a( V& x, `
5 #define OUTPUT_TO_UART1 19 e; }& [) x. F) q! F; Y0 n: i
6
, a0 c2 Y: A; L f- i, D 7 /* Switch Log Output */: {+ I6 W! i8 b. |* O
8 #if OUTPUT_TO_UART1
, w, R" B& k! ?5 C 9 /* For UART1 Initial *// Q; G6 r! X r
10 #include <stdlib.h>
: L! v1 W* o: Y 11 #include "hw_types.h"
0 O$ P1 N5 x2 `+ t9 j& Z8 `; T 12 #include "hw_syscfg0_C6748.h"
/ P! O* _. ?- _4 ? 13 #include "soc_C6748.h"( c e! M& i- C5 }6 L
14 #include "psc.h"
8 J+ X3 L/ o" C# ]" b 15 #include "gpio.h"
6 h1 z( J0 _! U9 Q 16 #include "uart.h"
: d. m9 a9 P6 Y5 l$ \# y& h) s3 t 17 #include "uartStdio.h"
. E/ Z* f5 J% r8 h 18 # p; `4 S* C9 [+ E3 ~
19 #define OUTPUT UARTprintf( ?& t/ M3 s) A
20 #else
' G( d. W# d5 t6 @. U8 z$ \( e 21 #include <stdio.h>" v5 N- Y8 E7 T! [- |4 x
22 #include <stdbool.h>& a- } `( V+ N; f
23
3 x7 p" F- Q3 X! t" P 24 #define OUTPUT printf) }1 `4 x% Y2 r4 y! q3 R) q
25 #endif5 t1 R& N a- l6 S( V: s& P
26 ' h; \6 e5 |( z4 y$ m% T
27 /* Log init */
# Q, t- y8 k! E0 @9 b6 L: Q 28 #if OUTPUT_TO_UART1! B$ F* y/ S' K; w
29 #define LOG_INIT() do { \
9 v% L2 @) x( }# B7 K 30 PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, \, C4 `. a3 k0 D C
31 PSC_POWERDOMAIN_ALWAYS_ON, \0 W- W) O# G/ E% i4 @9 f5 ^
32 PSC_MDCTL_NEXT_ENABLE); \& Y7 ~( A; B, V" R' I k
33 GPIOBank6Pin12PinMuxSetup(); \
: I l! ~+ o; g) I1 O3 V 34 GPIOBank6Pin13PinMuxSetup(); \5 K% W5 }9 e9 o6 s) H# ]6 b6 S
35 GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT); \
5 F) ^9 [" A3 k* f; X 36 GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT); \
; w+ }5 ~/ z7 L' C 37 UARTStdioInit(); \
+ n& _0 I- n" R0 ^& i! p 38 } while (0)
1 t' W: {1 T1 [ 39 #else
# f: U' o1 l2 P2 V. a# ? 40 #define LOG_INIT() do { } while (0)# H/ q1 l, z' E( }* S0 t
41 #endif' ^) c% A, i. |9 v$ g" R* P- k
42 ( s0 j! R0 m2 _* C1 Y& X
43 /* Log Output */& Z% J" L: z0 ?4 q' b8 a; S3 k. c- v
44 #define LOG_INFO(format, ...) \
' T# M0 ]/ q, N9 @7 V T 45 do { \
M5 g4 L/ R7 K8 e$ P* L 46 OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \) [7 ~3 R z3 P2 [
47 } while (0)
% L; ^/ D1 D. S+ A* {3 X- \ 48 ; a8 ]8 k2 Z, N& s0 [/ L0 c9 m
49 #define LOG_ERROR(format, ...) \
, j4 \& i/ u6 G4 y 50 do { \1 b3 q1 R2 S5 J6 f5 u7 W+ j$ M) J
51 OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \% H# t( c, ?+ l. l6 E9 K: @4 A
52 } while (0)
$ D5 F5 f7 p" c* b' h, w 53
# j, B. G- P/ W+ K 54 #define LOG_DEBUG(format, ...) \
' h( V! i A5 } q- m9 N 55 do { \9 U1 F3 Q0 c; H" M5 o1 E) L- W. W
56 OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \2 c0 N) {6 o" g
57 } while (0)
i5 Y8 g# F6 A 58 8 d3 G8 A' T f9 | M# f( z! G
59 #define LOG_WARN(format, ...) \5 ^5 w4 \1 ^% a1 {# M" |4 W
60 do { \0 S7 z6 f3 c: k! s
61 OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
# X( R3 x0 A, R Z8 F& W 62 } while (0)
9 I8 Q+ _+ N/ ` 63
- i$ r4 I5 `3 m- P: ]- ?# M- e 64 #define LOG_TRACE(format, ...) \
4 k$ e& N+ D$ ~& m' C 65 do { \
8 U5 f( m# ~8 r* P4 Y- L 66 OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \# x" r* \& F2 h2 e- a
67 } while (0)2 e1 K G- L3 z( F# ~
68
" l. v4 D1 u& R" s; w" U 69 #define LOG_FATAL(format, ...) \! T. U3 ?, T0 _8 n' U$ e! S6 o
70 do { \$ q3 F, }$ R" m F
71 OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
; N$ b( B2 m* p; q4 {" ~ 72 exit(1); \
( [3 V9 [2 }) s) n7 Y 73 } while (0)
2 [8 Z- ^3 U, o; a& L% Q' f 74
" i' ?# N: B6 c- T! z& a+ W% A 75 /* Assert */0 Z6 s# B% T/ v
76 #define ASSERT(EXP) \- i0 Z) o0 b! r) Z
77 do{ \: q5 N( R5 v) q& M
78 if (!(EXP)) { \( Z3 `& v% Y2 k/ M) u2 x z
79 OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ ); \4 J+ g- h7 k. J- g* E
80 exit(1); \. u# K0 V) x8 x" V
81 } \
- H v L9 U& t- J0 R# ` 82 } while(0)0 H6 k3 O/ m; D- W+ S3 N7 B
83 & b8 Y: v. J5 b- S
84 #endif5 [$ w: I" w* C
|
|