|
1 #ifndef _LOG_H_
2 G) j: m; }5 \" N/ T; _ 2 #define _LOG_H_
7 x% W; x% s0 ?/ I 3
/ D8 j2 t$ Z* C8 k; r 4 /* 0: printf; 1: UART1 */
( t$ e7 q% m- K- @1 j9 z& F/ U 5 #define OUTPUT_TO_UART1 1; E% O, [( i7 W3 Z1 l; W1 D
6
+ x* @. Q0 f3 V2 r! r4 B1 r 7 /* Switch Log Output */
% {. S- g3 e& ` 8 #if OUTPUT_TO_UART1
B0 g j! c1 B) g) I, w 9 /* For UART1 Initial */
+ e. a+ s J! N" Y1 ~ 10 #include <stdlib.h>
0 _0 b/ D; s2 |( _ 11 #include "hw_types.h" 1 {: c" T0 u n' K
12 #include "hw_syscfg0_C6748.h"
/ M. d) i2 p# I9 r- X2 E8 j v: z5 a 13 #include "soc_C6748.h" G/ L$ t" x0 A# m
14 #include "psc.h" " ?6 P8 t2 c C) L
15 #include "gpio.h" ' [& G$ }4 p1 Q' [
16 #include "uart.h"0 k, a: q# n8 M6 @: C5 A& K6 M6 G0 U
17 #include "uartStdio.h" ^: j3 Y; ?4 V& T
18
- c3 ?8 p! G+ |1 R! k5 i4 f. E9 @ 19 #define OUTPUT UARTprintf
% [! `. m$ C: \$ C E$ X% l! L 20 #else
( [- A" g8 k6 o 21 #include <stdio.h>/ ~) c+ `! G" [6 M9 Y$ W2 u
22 #include <stdbool.h>- X+ [/ k" B( N8 S
23 ) I7 }3 O# Z( g: w* j4 ]
24 #define OUTPUT printf
4 v8 R4 l! X1 w5 l4 R$ G 25 #endif
0 P" M' h) f& r6 P g1 X 26 & q% ^3 c- }9 N! t* O6 A a
27 /* Log init */: B ~" j8 Y1 m& ^
28 #if OUTPUT_TO_UART1
9 h1 u0 e6 K# l3 o8 c$ ?/ Z 29 #define LOG_INIT() do { \, M5 i9 q2 C( Y" R: t
30 PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, \
' \ |8 U& f% n; Z" ^$ p O6 T 31 PSC_POWERDOMAIN_ALWAYS_ON, \
8 w' j3 c. w. R# E0 B# J 32 PSC_MDCTL_NEXT_ENABLE); \- D4 m# i" z& e
33 GPIOBank6Pin12PinMuxSetup(); \
: [. k; s1 Z6 N 34 GPIOBank6Pin13PinMuxSetup(); \! W( Y3 J% j' U+ }' Z2 h
35 GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT); \
$ n) u9 M% m1 Z8 U- x5 ? 36 GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT); \6 T! G' e- W4 K
37 UARTStdioInit(); \
* b4 x6 \7 \. e7 A; [7 N 38 } while (0)
4 y" G& ^+ I# l4 b9 Q2 z" Q( l 39 #else
. E% W0 ?! k% J2 A$ Q 40 #define LOG_INIT() do { } while (0)
6 J* g! p3 K' n( ? 41 #endif
/ P6 {& V. |3 d# A0 r5 N 42
! @6 Q/ K* J" @8 f0 U 43 /* Log Output */
X$ g) U2 S# a J3 y 44 #define LOG_INFO(format, ...) \, U' U; r+ T4 Y: G
45 do { \
: ]6 X0 ?# ^: d" Q+ G' e 46 OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \- d7 i% X; D7 B/ m2 C. x
47 } while (0)/ g$ {( P" K2 D7 P, Q- p) |
48 - t' K0 L7 R) i+ i* R' z( S
49 #define LOG_ERROR(format, ...) \3 n# Y3 k1 u | L( O% F' J' c
50 do { \7 Z! v. p2 b0 u+ l; J8 s2 f
51 OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \% v3 Y1 _4 u8 q2 W" e
52 } while (0)
# g4 V5 J4 Z/ s L! R 53
0 p4 n0 i; M+ Q5 ?4 o0 L- k 54 #define LOG_DEBUG(format, ...) \
% Z% U, `7 ~6 Z' z) ~& e8 @ 55 do { \
" j3 H$ A# U4 |% S 56 OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \$ T8 A9 e% w; m) M4 g+ d3 M
57 } while (0)
8 A Z4 b$ o7 R/ R& z 58 ) ?. b; n% a# K. W
59 #define LOG_WARN(format, ...) \4 C5 x m! u, N5 a; G0 @4 X5 c
60 do { \ t: J1 J8 c. [3 u
61 OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \% S/ |0 h* ^; t6 @! u
62 } while (0)
! m( [( C* [& m2 K% T0 R, O 63 # `% X$ V+ z7 A
64 #define LOG_TRACE(format, ...) \! S" Y5 X7 I( O6 F
65 do { \
- ~; }% A( Z; s' ]# f" z7 T 66 OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
; c# E* y" l" V e! b" ^7 i9 V 67 } while (0)+ ], {' W+ [$ j0 H; S
68 ; `$ q2 V9 } A, W; C
69 #define LOG_FATAL(format, ...) \
6 \0 d- N9 j1 ]- p) Q 70 do { \/ j* K4 e- V3 C' o, ~
71 OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \$ [* H4 u. q; q5 C! D& Y- L2 c w
72 exit(1); \
4 s- r' l n! r9 z6 \8 [' v 73 } while (0)9 Y) m1 u. G8 |! ?: m
74
0 G0 k5 c" t2 q' w* q" }. ` 75 /* Assert */
- P! n7 l; @6 _% b 76 #define ASSERT(EXP) \* J- p8 R$ w2 J5 U2 o1 a8 X3 I& O) B8 J
77 do{ \
# A: q( _1 j" s* d) P 78 if (!(EXP)) { \# \4 [; V; J% ~- q3 q1 J
79 OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ ); \
# h0 j5 _0 a, r k0 ^; ~% b 80 exit(1); \9 k" O+ s! Z! z$ v# d [& p
81 } \. o p% n2 ^# T) K, t- J* A% q
82 } while(0)
4 s- h R' u$ [9 k" C" w 83 9 F3 E w: ]$ l. p: E
84 #endif, w1 Q- }; \: @ r( \) D
|
|