|
1 #ifndef _LOG_H_
3 z9 a; p* _6 q0 \6 Y% t 2 #define _LOG_H_* x, B. a/ \: W8 `
3 " T! j# \$ X& u1 u- O+ B6 i
4 /* 0: printf; 1: UART1 */
. ?7 u5 x! ]. b6 g" u- |+ _ 5 #define OUTPUT_TO_UART1 1
( g' J& C: h: b 6 9 m2 s( j6 Z! b& T4 T$ H
7 /* Switch Log Output */. V+ t+ T( s, S5 G7 _9 T
8 #if OUTPUT_TO_UART14 M" }& f1 b$ l% ], P
9 /* For UART1 Initial *// f! ^2 R* Z; d3 b! E% g
10 #include <stdlib.h>
7 G( M7 L/ D9 A# h! Z. ]2 @% z( Z 11 #include "hw_types.h"
: B4 P% q+ ~- O$ J W 12 #include "hw_syscfg0_C6748.h"
6 z4 C, r( j1 z 13 #include "soc_C6748.h"
/ G0 O- ?* ~6 Q! a 14 #include "psc.h" + s3 T4 q* H3 l) b5 T
15 #include "gpio.h" . B$ f" d( y. G4 @4 G
16 #include "uart.h"
( k& H4 P0 O7 ^+ T9 `5 K 17 #include "uartStdio.h": R. V0 c8 H5 d' c, j `
18
5 y+ s6 l: |3 K3 U" Q 19 #define OUTPUT UARTprintf% B9 y- b" O1 J4 n2 X" P: k
20 #else
& T: V1 O2 Y# \9 t; R 21 #include <stdio.h>" }! w* o; p' B8 _: x8 _
22 #include <stdbool.h>
1 d& z1 k0 E$ R, F7 w1 u% D 23 ' U$ _# C1 E, e1 x
24 #define OUTPUT printf9 D, `2 b9 F5 b) |' A8 b
25 #endif/ J9 c9 `3 D, I! n& U' t- @$ g% }
26
& e1 I4 d# M a! W 27 /* Log init */$ C( d7 q! ~6 I* c( C
28 #if OUTPUT_TO_UART1- s( K& p3 Y4 |
29 #define LOG_INIT() do { \5 O. O+ O6 g2 i5 m- E
30 PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, \/ ^: ]; F# {: {; Q* \
31 PSC_POWERDOMAIN_ALWAYS_ON, \
" c$ b1 h+ S7 J 32 PSC_MDCTL_NEXT_ENABLE); \
# f% \+ e+ D: l5 l0 k4 D% r 33 GPIOBank6Pin12PinMuxSetup(); \
' t, U5 N& s8 s% Z" I0 B- G4 [ 34 GPIOBank6Pin13PinMuxSetup(); \5 v* _. _& n' ~5 C3 J" Y! l. b
35 GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT); \
- J8 m: Q7 ^5 r, u6 E) ~ 36 GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT); \4 g' d$ ]" J; l* }# I* B) b5 n
37 UARTStdioInit(); \' q$ j+ _6 {( t4 Z/ c, G3 L9 P( l" N
38 } while (0)
% N0 n; i0 R5 u# F7 k% z 39 #else' q) ~% X8 f! y3 `9 w
40 #define LOG_INIT() do { } while (0); e, q# Y4 l8 `
41 #endif
x2 {& j6 O3 n. x& K5 g: S 42
: h: V1 J' m, Y, n s5 i1 X7 E7 i6 P 43 /* Log Output */
! a3 n6 B6 c2 }$ l& Y0 G) N 44 #define LOG_INFO(format, ...) \
+ U. t* k$ [' w, @ @ 45 do { \
/ D# f3 u& a* E5 h 46 OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
/ M0 F0 l4 }7 P3 ]5 m 47 } while (0)
# r3 i5 d( u* l/ C 48 + T, F1 ], i" ?" m
49 #define LOG_ERROR(format, ...) \( T! K" U, f- G4 k& ]! y/ H4 F
50 do { \# H U3 l# g: `! [* P% }
51 OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \% p4 `/ a( \! X" R, C; R, t
52 } while (0)
. P9 J( n! X) c1 f 53 6 m* M. _- c z* \ F* B
54 #define LOG_DEBUG(format, ...) \
9 U& R9 S. U7 M: f9 Q# z 55 do { \" U" F& B# z1 t _/ P! X9 i+ e$ ^
56 OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \+ d9 V _7 E' L4 S6 `% {/ s! b: ?0 Q
57 } while (0)( g7 l: L' F- {" a
58
' r$ W4 V1 T% S! \4 t) c 59 #define LOG_WARN(format, ...) \$ S; l7 z/ u& R4 |
60 do { \
' W- C/ d; ], L5 |5 M& P 61 OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \$ A" q) Y7 x$ T; O8 e3 i
62 } while (0)6 P# L0 O* w- z( {4 D
63
$ A1 O% X& G" |! H' X, H) _0 N5 D* G 64 #define LOG_TRACE(format, ...) \
& |/ V7 m" a( h( d3 Q; C 65 do { \
) ~/ X9 C- j2 R" \% {8 M 66 OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \- S+ O% g+ g& L/ k# |" Y3 x" u5 w
67 } while (0)
' k) U6 u1 F) o9 i6 e 68 + ]! j8 I' C- \6 P' L5 L
69 #define LOG_FATAL(format, ...) \
2 z! K/ O1 m0 S& P$ \/ B, A" D+ G 70 do { \
4 x! [: W9 c3 W7 o 71 OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \- |' H7 s' A8 r. T
72 exit(1); \$ t3 w" t4 Q5 e- F3 Z5 E
73 } while (0)
, ]% u4 y" P. e. w7 U: ], V- g 74 ( m5 @' j" n5 s, B6 p
75 /* Assert */
3 u, Z \6 U! X: a4 y 76 #define ASSERT(EXP) \
7 d, A0 E f2 u. f 77 do{ \
- g) n0 X5 n( R1 R9 J- a, ? 78 if (!(EXP)) { \5 L' z- p, [1 X, x& F
79 OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ ); \
& L" ]6 Y- b. O7 m5 {: _/ [ 80 exit(1); \9 V: h2 m- h3 g% n! I
81 } \* w- n! B- j' K8 u. ?
82 } while(0)1 Z: j/ e `( M0 `2 p
83 6 }# E9 | }, U
84 #endif
$ V( K& Z# E$ r% L+ I' e: s |
|