|
1 #ifndef _LOG_H_
' h; D: ~2 _3 E8 R 2 #define _LOG_H_* w, J# Q6 p: v% ^3 J4 |
3 6 v) }5 ?1 s W: f+ `4 @
4 /* 0: printf; 1: UART1 */
, z/ s W4 C) A 5 #define OUTPUT_TO_UART1 1
/ Y8 L; e/ b/ Q9 l+ |$ U' b% K 6
/ D* I I+ ]: R 7 /* Switch Log Output */
! \! g Z; R: t! e( @+ j" F 8 #if OUTPUT_TO_UART1
9 l7 U6 j4 t, |0 H0 E 9 /* For UART1 Initial */
2 Z q$ d3 G, m9 N( K9 e 10 #include <stdlib.h>
+ f: L6 P+ \4 b+ a: K9 D* s* }0 l- H 11 #include "hw_types.h"
( q1 ?7 G) V2 B 12 #include "hw_syscfg0_C6748.h"5 r+ t6 i* H1 C9 b* g1 v" D
13 #include "soc_C6748.h"
% l0 R9 e8 V9 L' I1 E 14 #include "psc.h" 0 s2 ^% N: A+ v# e& M% w+ K' E/ r
15 #include "gpio.h"
# W) \# p) X4 I" O9 f9 k; C7 V 16 #include "uart.h"8 D! z* p/ [7 i# t @' ~4 T1 x
17 #include "uartStdio.h"
& l1 `* }5 [! p$ [2 @: H 18 4 W% o6 P& c; ~; J- U: x0 h# ]8 b
19 #define OUTPUT UARTprintf. b! W$ c+ @' k
20 #else2 j! v8 `/ o' v! \+ A( u8 Z6 P |6 d
21 #include <stdio.h>
, _: b, n& k. B6 w8 j* @# T 22 #include <stdbool.h>9 k- d4 o1 q/ z3 n, @5 E: M
23 ' z% w; j0 W$ @6 R% H0 X
24 #define OUTPUT printf6 w9 _8 p! g. u. A) |& j8 i: _
25 #endif: K+ C9 ^3 Q9 l/ L
26 / m+ Q$ x2 U. n
27 /* Log init */3 x, t. k/ L9 Q. `
28 #if OUTPUT_TO_UART1
: S, b8 I4 j: A 29 #define LOG_INIT() do { \
6 n& H+ l0 F- z" }" N; _, [' t$ o, [ 30 PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, \
/ \% _" J( V, d X% t3 N: A 31 PSC_POWERDOMAIN_ALWAYS_ON, \" }0 U! o% W$ i, |. X* ~/ t* W% F
32 PSC_MDCTL_NEXT_ENABLE); \
. q/ L( U5 N+ w+ a$ [, J. S 33 GPIOBank6Pin12PinMuxSetup(); \
7 \2 X+ b2 }0 ~9 o 34 GPIOBank6Pin13PinMuxSetup(); \0 E1 H7 e: ~6 [4 e% o
35 GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT); \/ w9 V! p3 C4 u* J p- M
36 GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT); \
! d: K9 }- H ]& K: N9 c 37 UARTStdioInit(); \# I. ]+ k' @, m Y
38 } while (0), `+ @. w* ]* _ M9 p
39 #else( N- B5 R# h8 {0 j( U. O: m( e8 p! r
40 #define LOG_INIT() do { } while (0)9 P' ~- n( d, f' \+ t: }
41 #endif
. u- }$ W0 m$ |' B9 R 42 2 L' U; d- E9 q
43 /* Log Output */
+ W& _; @7 o H) {. c6 w1 X$ k" ]& n 44 #define LOG_INFO(format, ...) \
8 R0 T1 X6 X0 S* f( _) N 45 do { \
% P1 C- q( s1 I, n; Q 46 OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \7 _ t+ V/ p/ a, m# M
47 } while (0)( R( t! e- L- L7 ?5 W/ F
48 3 X# ^- c9 C. d
49 #define LOG_ERROR(format, ...) \
Y) v- I6 q% u% b2 y, m 50 do { \$ P2 W/ t& d5 B; ^1 N0 J/ S
51 OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
1 g* p8 X c: @4 R& F! l2 g7 q/ P9 D 52 } while (0)
& ^/ E9 n3 U; T5 H 53 ( ^7 a' x* U+ O
54 #define LOG_DEBUG(format, ...) \
4 O' J2 J6 a. ]$ ^ 55 do { \
2 J% t3 i" ^" ^6 ]) K3 d" d" O! N 56 OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
5 [6 v; M# a |: o/ z 57 } while (0)3 S- { e. ?' n8 L0 h
58 $ {6 @: _# F7 s. I; i
59 #define LOG_WARN(format, ...) \4 O0 C& w {3 K2 s& `, @
60 do { \
0 o* P" A5 ?; M1 e! J 61 OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \; j4 p- r+ f9 \. }" g
62 } while (0)* [ G, M8 d0 k* O
63
1 _) u4 W/ ` S' L9 ]" {4 N 64 #define LOG_TRACE(format, ...) \
3 J8 S. n' k1 o/ I) r: H1 B/ I( f 65 do { \+ n! ?3 V# Y: x! S+ V5 h
66 OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
' E7 Z3 s0 G: d5 w) j 67 } while (0): d* P5 ~& [3 H( Z1 W
68 * ?4 s" z# m; _* E+ @: U
69 #define LOG_FATAL(format, ...) \, F2 k. C2 D; r1 T4 J; ^
70 do { \6 N4 q( U5 v# x) C; j6 z( c; z
71 OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
. ^( i3 h7 H- f; Z: i. L 72 exit(1); \
$ S' p! F% k6 F6 G) H; i 73 } while (0)! r7 m3 u8 P" |
74 ) S6 Q. R+ l! V/ f
75 /* Assert */5 t, h: p, T* i& u0 b$ {# K
76 #define ASSERT(EXP) \
3 e7 D: e& w: F) _! o! O. f& I 77 do{ \
# Z, N1 O6 R( O/ K2 V( r 78 if (!(EXP)) { \; Z7 L6 ^, `& q4 b' V' b- n% ^
79 OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ ); \0 o/ A8 ~* T' M- D0 h
80 exit(1); \
# x) k6 T5 t! ?& q) w t+ G 81 } \3 M, a1 ?1 F1 R" p# v) d8 I, d
82 } while(0). [; g& _, f# M! y
83
w; W; g9 e* X$ i! o' {* E 84 #endif
6 V5 @$ ~, e" }% x |
|