|
|
1 #ifndef _LOG_H_8 R8 K$ `- T, o- e
2 #define _LOG_H_0 F i- w6 ] y7 Z* S9 d- _+ E! i
3 ' q4 w! N/ u# O9 e2 i% O! K% m
4 /* 0: printf; 1: UART1 */
# U5 n3 C: V$ [' m, V2 Z 5 #define OUTPUT_TO_UART1 1
% S% X" [# a( n7 {8 K 6
: k9 C' E: d6 l3 [" q 7 /* Switch Log Output */
) z- D7 c! ?# a4 ], c 8 #if OUTPUT_TO_UART1: z8 ?9 o) g' o) X
9 /* For UART1 Initial */
( I3 m- K+ r8 k* r; W$ I 10 #include <stdlib.h>1 a9 Z% h! g" F' }/ B0 G
11 #include "hw_types.h" ; V5 A. B9 V( l
12 #include "hw_syscfg0_C6748.h"
5 n( x- Y# m6 w( k% `4 M 13 #include "soc_C6748.h"
. j6 I, E; W, d) L: ~0 B5 I 14 #include "psc.h" 6 F- B! J4 l# d! Q7 T
15 #include "gpio.h"
9 J- @9 F! F1 M( N( h 16 #include "uart.h"
K) p* v! a9 \+ `, m+ I/ W/ m. B- Y1 o 17 #include "uartStdio.h"' |8 H' m e, g3 g
18 , Q' X; x. V" h% M$ p6 a5 m
19 #define OUTPUT UARTprintf
- l* ~& A$ Q- A) ] a 20 #else1 U9 K- I0 k4 F% Q) e
21 #include <stdio.h>
7 K) l' ]3 W( y7 y, k/ w& A 22 #include <stdbool.h>5 |3 l7 f0 v m
23 " p! H. U9 p3 K+ o9 Y1 x
24 #define OUTPUT printf9 U- a6 `( B: c3 k" l
25 #endif
# Y6 Z; j& Z! s$ Y1 V0 }: a 26 : ^& Z, C( N7 d; E3 a
27 /* Log init */5 ?; Z) P! q7 V# S: [& x
28 #if OUTPUT_TO_UART1) | l8 N& O, @# ]& U7 q* f& `
29 #define LOG_INIT() do { \; n% d1 H2 Q" }0 c
30 PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, \5 E$ ]% z2 g' h
31 PSC_POWERDOMAIN_ALWAYS_ON, \
4 O$ p$ e& c; r5 ?* d8 l' U 32 PSC_MDCTL_NEXT_ENABLE); \
$ N9 A( P4 }5 ? R 33 GPIOBank6Pin12PinMuxSetup(); \
/ c5 A# v. y' T, b% V( a' z9 {8 P 34 GPIOBank6Pin13PinMuxSetup(); \
9 v( E0 x6 g# ?1 W 35 GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT); \! R7 r; |# C1 @- ^9 o
36 GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT); \. B2 s3 y% K) ^" D, C' z* R+ e
37 UARTStdioInit(); \+ c0 [; E" p L$ C' Y+ }; c
38 } while (0)
' h3 s$ k, p4 P/ y1 `! T. X 39 #else. z$ w. k0 G$ T+ T9 W, M5 r
40 #define LOG_INIT() do { } while (0)
2 ^, e. c2 \$ ? 41 #endif' f, U8 D- [3 ]
42
+ L9 ]! y6 i3 q; ` 43 /* Log Output */
. X1 n5 C4 p6 @7 U( C& ~- Q 44 #define LOG_INFO(format, ...) \
4 N. d. @* F( q' S$ X 45 do { \
; H! q( e r- ]% D1 \" i 46 OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
N& B( {7 r8 U9 _- s 47 } while (0)9 \$ g7 x* {6 r2 {% H
48
2 ^) v/ j4 B0 N) C# p+ F 49 #define LOG_ERROR(format, ...) \. |" y, d' \" G' [, O& i1 Q
50 do { \& _* v8 |* Q4 T. W7 f* i, G ]
51 OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
! v2 E2 I7 J; d 52 } while (0)$ x, u |" ]$ m. S$ K0 G
53
6 {0 [3 Q% i! Z" f4 ?+ Z3 p 54 #define LOG_DEBUG(format, ...) \, A% y3 x, b6 q" I; E
55 do { \
! ^- b, P8 Y1 w* M9 t 56 OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \; z4 w# z! y, \9 \
57 } while (0)# z( e4 D6 Y; W& R# U C
58 4 E) k3 q) b/ W1 W* b' K
59 #define LOG_WARN(format, ...) \
+ K5 V- d3 S; i- N& @7 f: o5 b 60 do { \7 @8 [/ x a& `
61 OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \% c. ] ^6 r( X/ Z
62 } while (0)
& M+ }( g$ s4 |% v4 N 63
& \9 y5 q1 q2 v, j. ] 64 #define LOG_TRACE(format, ...) \* ?9 P. \- D" s0 M
65 do { \- N- K7 z4 A. E$ P9 @
66 OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
$ v) _) q2 P& { 67 } while (0)8 {$ W4 H4 I8 l' H& \+ v. b
68 ( p+ T5 M* c- U0 [: a9 T& S; v
69 #define LOG_FATAL(format, ...) \3 p/ E( m$ G" A
70 do { \
: D/ Y# t/ R) n7 g& P1 z 71 OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \6 g" i" n* s9 I- G8 @/ Z
72 exit(1); \9 V1 v, ]' n8 \& d% }, U& ?
73 } while (0)% {! h+ g J4 R/ H
74
% W A Y& W4 Y H8 w" I9 ~ 75 /* Assert */
' M0 S6 d {5 X 76 #define ASSERT(EXP) \' i% r) r. t+ Y) A' @. X( g
77 do{ \
& ^/ h2 V b2 g" K$ d. P 78 if (!(EXP)) { \ r, p4 K1 O5 Y0 ^1 P
79 OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ ); \+ R7 T$ z4 z" l6 u% U: O" N
80 exit(1); \
: A! I- P8 p) V# [ 81 } \
4 Q, r6 e# ~! s( _ 82 } while(0)1 T0 N8 T+ `' n5 {: O: n, x
83 4 g' }# C5 L( W" ]) ^
84 #endif
2 l) k2 \& N9 B+ V) d9 N' h) q |
|