|
|
1 #ifndef _LOG_H_
e' F2 N& W: L. u 2 #define _LOG_H_# P; c- J \- T; @. d
3 ! R9 |! Q" o4 f* p$ a* m1 i
4 /* 0: printf; 1: UART1 */
. f2 Z+ o+ ~: n+ X5 Q* q 5 #define OUTPUT_TO_UART1 1
" x8 ^7 O6 d I1 r 6
5 h% R' P+ d" j v: x1 \ 7 /* Switch Log Output */3 `. {* B& M5 G9 h ~9 t' y# G" Q6 q
8 #if OUTPUT_TO_UART1
: [& n1 F1 S( ^' u. m 9 /* For UART1 Initial */
' _+ e: u/ e8 U* S8 i 10 #include <stdlib.h>
: ~: r$ k# Z: n1 c: f. E 11 #include "hw_types.h"
$ B. Y3 S1 Y9 N$ I# x: e6 E. X% i2 t 12 #include "hw_syscfg0_C6748.h"3 f- m* v9 Z, E- c3 }9 P& `' k
13 #include "soc_C6748.h"8 z* s5 i' Z* e1 a, Q2 @
14 #include "psc.h" / Y3 B% F* N" Q- R
15 #include "gpio.h"
1 r8 r, P; T& B v 16 #include "uart.h"; n6 ^* K' [2 e
17 #include "uartStdio.h"
+ m9 Q4 |- H2 ?4 {: ^7 P% B- L* E3 I 18 ) F8 U/ w3 N! l7 Q2 P
19 #define OUTPUT UARTprintf
5 D# I3 u0 h$ ?3 t5 H$ t, x 20 #else* E1 ^! |, b1 i; M3 D: R
21 #include <stdio.h>
% `, M* N6 W# n$ m9 v8 B 22 #include <stdbool.h>
; b/ }: k# v+ l! b/ o8 v 23 , D, c$ C6 }/ c9 H- k, s
24 #define OUTPUT printf
# k ~/ s2 F. h$ t" t& n' }, o 25 #endif
% I8 D3 O5 c2 H* J& I; i2 X% m8 ^ 26 / l5 F/ T: x* L" l( |+ X
27 /* Log init */
& D p' _. ^, F J" a 28 #if OUTPUT_TO_UART1
2 u6 R4 K! {/ M 29 #define LOG_INIT() do { \& P l0 I/ z5 E) n4 x3 j
30 PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, \3 Z8 N9 K6 d8 H t% I
31 PSC_POWERDOMAIN_ALWAYS_ON, \& ?( q+ \& a7 ]; Y) Y, A$ j+ t/ j
32 PSC_MDCTL_NEXT_ENABLE); \
, Q' m% [+ ^. X2 Q c( ~ 33 GPIOBank6Pin12PinMuxSetup(); \
9 H- J* ?- k2 l. i! D+ d0 O 34 GPIOBank6Pin13PinMuxSetup(); \
5 d$ s$ k- _" g) C. E# g1 r 35 GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT); \: C9 S! d" S' R8 m8 C+ {
36 GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT); \9 K Q8 v T; @: R: v, ?
37 UARTStdioInit(); \( L$ @: i+ @4 g* @6 ^
38 } while (0)
1 Q% {8 T& b% M0 t( V" g6 T 39 #else
+ S* W6 Q4 t% o+ w/ F* q 40 #define LOG_INIT() do { } while (0)
1 V) p2 ^$ t& W3 O/ W' B 41 #endif
3 V& G8 S- S* v$ J1 C7 y 42
0 J( C1 m- h; p. a8 J( R5 u. Z3 M 43 /* Log Output */1 x$ m, m) _- y3 V* y0 B
44 #define LOG_INFO(format, ...) \' a" n0 r1 b' f4 c! r' t! H
45 do { \
. N3 Q- Z- y8 z% [. \( g1 T 46 OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
. W1 v1 R# W6 ? 47 } while (0)
2 d: v! X f9 I' [& \; \) W 48
I# ~' s' X$ i; x; {' m 49 #define LOG_ERROR(format, ...) \% L0 p4 V9 r+ {" f
50 do { \% ~3 F/ U K2 o. p# u, L- [
51 OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
2 Q: p% A! _* F9 [ 52 } while (0)
' w, j: `5 X a+ p; G" n' s 53 & H$ l) N- V4 N
54 #define LOG_DEBUG(format, ...) \) o) Z% U' I. v
55 do { \
9 ]+ z& I( l+ H z! ?& } 56 OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \% o$ {& ^1 _0 H3 I# V$ |. N( f
57 } while (0)5 g- }3 O3 \2 U/ Q$ _+ ~$ A
58 0 C9 x. p, g6 V, ^; ^: I1 j
59 #define LOG_WARN(format, ...) \
) ]. w/ d7 J0 t& n5 q" S 60 do { \: F, Q# \& W% C6 I3 [% e
61 OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \4 ~8 J, k1 i) l* C7 f5 O3 b
62 } while (0)8 H5 l/ f6 E- F: Y$ j3 Q% r4 E
63 * u+ \) r. b9 S8 ^9 X6 C
64 #define LOG_TRACE(format, ...) \
- `4 C) W6 z0 }" [( j 65 do { \
$ e# l) X- h% Y, X: x 66 OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \! t% F; ^1 m4 J* a/ L
67 } while (0)
; b: S/ B& Q' e. \( T 68
9 e& G+ H% C" i2 e& r 69 #define LOG_FATAL(format, ...) \% H0 l' \' X6 N% m
70 do { \
* r2 d3 D2 t' F( w2 m$ R/ S 71 OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \- w' w" A( o5 ~, I! i
72 exit(1); \/ r4 D' r. P% d+ B8 ]6 f0 X
73 } while (0)
* L7 T1 `+ V/ S* z0 T6 n1 ~ 74
4 Q0 M# [+ ^3 c# ` E- e& @ 75 /* Assert */ V3 b$ i' U' y: I- D9 V
76 #define ASSERT(EXP) \. P, _' O5 u9 p/ v3 M) m
77 do{ \
7 l) S/ ?1 m) k$ y, u5 F# [5 y 78 if (!(EXP)) { \
* m5 g8 n1 I# a. x2 X1 l' i. w 79 OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ ); \
% L+ q/ v8 P5 K6 X+ X, u& d 80 exit(1); \
! m4 O. Z* g- x0 G0 L 81 } \- v$ [; ^% I; ~# m# r
82 } while(0)
4 t& E+ g4 M! t0 H- i 83 # l3 p6 q8 f) E
84 #endif& z$ ~8 G8 x3 c1 O' D4 q- L
|
|