|
|
1 #ifndef _LOG_H_
6 Y/ A$ E% b9 P; P" S7 b 2 #define _LOG_H_
+ T' G9 H2 F: j: R- n6 A 3 ! a. |+ [- B o% j M* K: Z
4 /* 0: printf; 1: UART1 */
$ f7 l; Z' F5 \5 } 5 #define OUTPUT_TO_UART1 19 J) E1 u- C9 k3 p, Y
6
. O9 L+ r% V# r. Y 7 /* Switch Log Output */* f$ ? q& E. G. R+ a" }
8 #if OUTPUT_TO_UART1$ C4 G ^; m" R
9 /* For UART1 Initial *// d, Q3 N9 T5 U M% j. h, R
10 #include <stdlib.h>% o% D G$ p3 S; r1 v! V4 T4 v
11 #include "hw_types.h" - a% S3 b! y9 [$ S
12 #include "hw_syscfg0_C6748.h"
2 C6 c5 S! T- q' ^8 s1 x8 w 13 #include "soc_C6748.h"# f5 s) N( J8 [4 t( ?7 k
14 #include "psc.h"
% `, s% A/ k+ N$ a6 q 15 #include "gpio.h" - B* d$ @9 m$ l) y- P# K( j
16 #include "uart.h"
, r: e4 n @9 V 17 #include "uartStdio.h"
: o b& w/ N$ [- E8 Y9 H. {! e/ I 18 6 t. I4 m$ B9 H; d; j
19 #define OUTPUT UARTprintf+ K& y: H, B, J, f' k! F j
20 #else
! D4 V9 Z/ i- |# Q9 S 21 #include <stdio.h>
" {( @6 J5 n) P2 h; J6 V 22 #include <stdbool.h>% Z Y9 a" m: [1 q0 U
23
" k/ m6 u2 `4 k 24 #define OUTPUT printf
: k7 D9 I; T/ _2 w7 l- c, f 25 #endif
1 k: U" ?& _4 T" e 26
. p' `, ` u4 s G 27 /* Log init */
6 Q% e' a! K' j b- \ 28 #if OUTPUT_TO_UART1
- t# b* \! u$ P0 ?3 C b; q- t- ?3 u 29 #define LOG_INIT() do { \) X8 P2 A$ Z! x, @
30 PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, \
- ~6 ]! M$ F7 v9 Y% E# U. W 31 PSC_POWERDOMAIN_ALWAYS_ON, \
. W; p. d+ k# f# E+ P- Y! N8 S" g 32 PSC_MDCTL_NEXT_ENABLE); \& ^1 a' u7 H3 r+ P6 h# y
33 GPIOBank6Pin12PinMuxSetup(); \: S) Z" ]& w# e" @2 S4 Y* {* K2 m; n
34 GPIOBank6Pin13PinMuxSetup(); \
2 M6 `5 x- E8 j) P* ~6 \4 Z! r7 o 35 GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT); \& l, ^" m) c. _' a" G, @
36 GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT); \
- o R3 _! D" t f' U% u/ `& Y 37 UARTStdioInit(); \) Q @" B% g$ u! y3 a
38 } while (0)
8 }7 R( L3 \3 B+ D2 W& x" k 39 #else
" ] s" `* V9 `6 \* J+ ?& s 40 #define LOG_INIT() do { } while (0)
+ `# H8 b$ b2 p4 j/ V 41 #endif" W, ~+ R' _/ c
42 ; n0 ~2 Q; H& |/ p" R& F" p2 G
43 /* Log Output */
( G% N% [- P8 \0 m 44 #define LOG_INFO(format, ...) \
% u" A% M0 Y' }& i* | 45 do { \
, K1 ], z o; M" p& } 46 OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
+ b( [& d- o# X5 V4 }% M3 Y 47 } while (0). I* @4 L( ?; @+ K8 Q
48 u1 l( C. A* l+ C: ]9 s" z' n+ ]
49 #define LOG_ERROR(format, ...) \- d7 \0 x- }3 V$ M
50 do { \4 M2 a5 b% g1 `* d+ O6 I
51 OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
/ ?" s( F1 @- m 52 } while (0)! B7 t' C' P$ b- R2 r7 j2 n
53 5 y9 U( \. Z+ T! {% F2 u% A
54 #define LOG_DEBUG(format, ...) \
: i# {, N, H9 s- B2 J 55 do { \
9 ^0 K& ]; ~3 M, X; N 56 OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
# _8 Q0 j# T1 D( p, n/ } 57 } while (0)
- b( v) \- P0 I% Q" K0 a! [; d 58
* ?4 X2 c' C+ c: ?$ n 59 #define LOG_WARN(format, ...) \# a" T, H/ E1 z* ^
60 do { \" `! q, g! W+ K) }6 R
61 OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
$ p" |, b/ V2 J) J 62 } while (0)' J7 S+ @' J$ y% j" A6 k: v3 `
63
) b8 y+ g& M0 k+ A+ u 64 #define LOG_TRACE(format, ...) \
v1 ~* z; j( Z! @" e% |* X- n Q 65 do { \
; e; f) F0 Q* D+ Q4 w8 v9 X 66 OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
1 K( ]) W! u! Q7 g5 T 67 } while (0)
7 Q* h; a! H5 S4 a. n* r' e 68 ) S C! H# r: P3 E) b; C3 C7 e
69 #define LOG_FATAL(format, ...) \
6 a) }# P# V8 q8 U y s; `9 f 70 do { \
4 N2 N7 q. p, |) p% Q8 s 71 OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
/ C& W) i7 m4 f, _9 o1 z7 A3 I 72 exit(1); \
, S& ^" l' {4 V6 z6 K5 A+ O- F+ c 73 } while (0)& J; U4 _6 @; |! @4 c
74 7 `8 s3 L" y+ ^9 h
75 /* Assert */
7 l+ F' Q1 c1 s, ?6 m* H1 l4 z 76 #define ASSERT(EXP) \
8 g' I! A f; R 77 do{ \
% F8 n7 [% j) y2 e$ A! ?' n4 s 78 if (!(EXP)) { \$ k: [1 \3 w- T$ l; y& ]
79 OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ ); \
1 \* K; k' T9 h7 t* a# d8 E 80 exit(1); \
9 b' t7 _ d2 p( F2 q. g! C- x- e 81 } \. i% E( r3 l8 M4 S4 E0 y/ Y7 Y+ I
82 } while(0)- v# C* c! u& M- E/ ^4 V) \" N9 o# l
83
* {! j% X( m" o$ x 84 #endif
4 J# B7 Q/ ]* P$ j, F' _ |
|