|
|
1 #ifndef _LOG_H_# ?/ J- A f$ O* ~' @
2 #define _LOG_H_
3 f6 D2 L0 P# }$ V 3 ) u! G8 U- k; Z# B) p
4 /* 0: printf; 1: UART1 */+ U. \1 p' B% a7 b
5 #define OUTPUT_TO_UART1 1
6 @5 i5 \- h/ ^" U 6 , y1 z6 F X4 i: \
7 /* Switch Log Output */
! B+ X1 j" s) d6 d 8 #if OUTPUT_TO_UART1
9 _' R( |' R9 U/ l7 C6 p 9 /* For UART1 Initial */
7 w& A4 Q# X; u( e+ Z 10 #include <stdlib.h>
0 t, B0 r0 u! e: Y. [ 11 #include "hw_types.h" ) s- W; V2 l8 K h( w; i/ m' n, U
12 #include "hw_syscfg0_C6748.h", D2 l$ R- ?3 L/ n& z
13 #include "soc_C6748.h"
, o. w; q6 Y0 v4 z+ ^6 M8 w! ?# Q- O: s0 } 14 #include "psc.h"
; V% u- y1 p( Q9 G 15 #include "gpio.h"
' b$ ^* H& M4 p& K9 L 16 #include "uart.h"
) ~9 Z0 L1 K9 j0 p$ c9 B- E8 B 17 #include "uartStdio.h"
2 K5 d2 o9 g3 @0 L5 G 18 1 a. Y d& H1 d
19 #define OUTPUT UARTprintf' @( ^, k% g5 t: Q$ K" Y# y
20 #else. w7 S( s: D& k! J" T- f
21 #include <stdio.h>
! o+ w6 z H% r 22 #include <stdbool.h>
6 X1 k' i1 O9 ]: z$ i7 _ 23
8 O: e- Q M! S. S( t% r 24 #define OUTPUT printf
% Q T7 }/ A- ^5 d& S 25 #endif0 P' {# `/ U0 V9 c# U" X( M
26 9 N+ W/ R0 }0 C/ `$ I
27 /* Log init */8 M" S- f( O: i" N
28 #if OUTPUT_TO_UART1- }8 @% G. `9 k/ C3 k* D
29 #define LOG_INIT() do { \; L: ~5 z* ]+ g3 Y1 H+ H# w9 u h
30 PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, \
7 U! R% K, q- z 31 PSC_POWERDOMAIN_ALWAYS_ON, \
3 x' M8 d, q7 X! ^3 J 32 PSC_MDCTL_NEXT_ENABLE); \6 N2 X" L \; t1 o
33 GPIOBank6Pin12PinMuxSetup(); \
, {( C1 k g! \/ z+ f6 H 34 GPIOBank6Pin13PinMuxSetup(); \- ^! @" i# d7 I9 \& P
35 GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT); \/ u0 k# F6 Y' w% {( ^$ t$ j
36 GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT); \. [$ n& X$ l" t0 D
37 UARTStdioInit(); \
8 z( a3 Y! Q. N5 D) h 38 } while (0)9 A6 E2 o' [, R" @; G8 i$ t
39 #else
, u2 }% Z5 I. B8 a 40 #define LOG_INIT() do { } while (0)
$ f/ q2 j4 a0 }7 E0 v 41 #endif/ z& `) H5 p4 X# I* v$ ?
42 5 j9 u2 Q, b. s- b: x0 v
43 /* Log Output */
3 u: S' A2 L3 I0 K9 W8 c. Z 44 #define LOG_INFO(format, ...) \
. ?. d" \( k: L7 }0 A& B 45 do { \" K0 a( r6 n/ h( m; T- e9 a2 F# z( E
46 OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \* ?: E, \; ]) E1 }1 L* k
47 } while (0)) l2 b! W% }+ C) K' m0 I, y. u/ l- ?
48
& n$ Y& w, M5 H, W& ?2 Z( { 49 #define LOG_ERROR(format, ...) \! B/ ^3 \' x4 N# T) D. [- }
50 do { \" u2 V3 e# w" L; B1 q& j) {
51 OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
5 _2 _% J1 u0 j0 w" | 52 } while (0)
5 `" H& w0 l; u8 |4 l# K, e 53 7 W4 \1 l& ~; G8 h- C
54 #define LOG_DEBUG(format, ...) \
& J9 z \( F0 N5 i0 _' A. T" W3 f 55 do { \
+ i: Q8 X# G* a: Y 56 OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \0 l6 _9 `1 m( [/ U9 m
57 } while (0)+ O6 {1 S# Z. b. `
58 - k1 a9 o+ }; R6 c
59 #define LOG_WARN(format, ...) \$ M" n1 m& `' Q, s
60 do { \
- x4 e6 {% G4 T( b" D" a- { 61 OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
( V' s* @7 {7 [% a" [ 62 } while (0)$ T8 y+ o: N% I1 ]" P$ y
63
% |: p" }" q8 H; q 64 #define LOG_TRACE(format, ...) \" m& I9 p$ L2 z. N8 \& P8 i% |
65 do { \% {1 t, Y) Z' P: J: P5 d* c
66 OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \# d* q/ Y$ V. i! R9 b0 @1 K
67 } while (0)
4 a0 R1 |: m5 U" b0 | 68
6 }3 D# w, V% g4 j9 k0 Q5 B1 W2 y 69 #define LOG_FATAL(format, ...) \
+ Q3 X$ {; o3 u B 70 do { \
. x6 e6 E4 m* r; f- z! Q 71 OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
3 K& o% m- J$ A. ? 72 exit(1); \
- u* ^! @1 }- J) e. x6 } 73 } while (0)3 ]* g# v0 c% \$ Y! [" q5 C' p
74 4 G* E5 h: R( B: u8 {. ^
75 /* Assert */0 e* e' c$ e1 w# [7 {- _
76 #define ASSERT(EXP) \# W7 m k, E, \! B
77 do{ \5 n& Q. [& l' V" i% ^
78 if (!(EXP)) { \
7 d' p/ z" |& j( w& B. e 79 OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ ); \
4 |5 S4 W& ~+ B, c1 x 80 exit(1); \' Y" q* p! r0 [4 e+ @
81 } \
/ z* q* h# T3 V8 ^4 N# D$ ?' P( A 82 } while(0)" h( W6 Y" {, o2 F" z" y* S
83 ! X- d4 P2 F1 J' ~ j) O a5 x
84 #endif
3 W( y3 c8 o2 P1 P4 q |
|