|
|
1 #ifndef _LOG_H_ O c9 r7 A/ u4 X+ [* q2 Y, a
2 #define _LOG_H_
8 _) Y1 G/ v3 u: R, }4 P 3
) C6 D0 F% ?3 P! F0 z& H 4 /* 0: printf; 1: UART1 */
% ^% J3 i( S) q! B9 e1 G6 H" { 5 #define OUTPUT_TO_UART1 1
, V/ S( p: P" Q3 Q" j% w9 l0 w' y 6 % Q* o0 C- b# P2 ~0 s
7 /* Switch Log Output */
. a" M9 i+ F2 y% {8 X 8 #if OUTPUT_TO_UART15 m# a4 |3 u& q7 c0 L2 w
9 /* For UART1 Initial */0 s$ Q" M, k6 V$ y% W! f
10 #include <stdlib.h>7 h2 C) Y1 g. }6 a, H. F
11 #include "hw_types.h" 8 G! u6 ?: m3 D: k1 H% ~
12 #include "hw_syscfg0_C6748.h"" t$ Z5 y7 S, z+ ^' U8 x8 X" B
13 #include "soc_C6748.h"
1 n- G9 w4 u) l# I4 v& R 14 #include "psc.h"
: W7 O* F! U2 ]: r* M 15 #include "gpio.h" : s. L: w1 q5 I+ P
16 #include "uart.h"! X8 _+ s- G# c0 }% X. b: D9 Z
17 #include "uartStdio.h"
% w+ V0 f+ z; |/ g8 B6 a: C 18 & E- D8 m' @1 c/ _2 {
19 #define OUTPUT UARTprintf m# ?: H- ^6 K. P* G
20 #else
% S/ W+ p& U0 n9 m' Q+ \5 m' q 21 #include <stdio.h>3 `1 X7 p4 S6 m% O! F* M7 b: L( c& M l& Y
22 #include <stdbool.h>" _5 W1 H9 c: x) o) B7 o+ e% e/ Y" [
23
$ b5 o" d4 S s& ]8 R/ R 24 #define OUTPUT printf: k2 n( H8 ?$ H6 n& j6 w
25 #endif
7 [" g- N' Z; [; G" u5 O 26
: F' x' n# U% {5 x+ ]* |, l 27 /* Log init *// i( F% N v0 |8 V% |2 v
28 #if OUTPUT_TO_UART1- r6 D7 [7 R$ U4 @3 J/ r. `' c, o1 R
29 #define LOG_INIT() do { \0 r# W/ A4 S* M# D: Z3 y/ t
30 PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, \
* f& I- Y: ]' R+ l, M8 Y0 P 31 PSC_POWERDOMAIN_ALWAYS_ON, \
3 {! F) P: z7 @' [4 L5 m# F 32 PSC_MDCTL_NEXT_ENABLE); \
. w2 W7 E, }% I5 j 33 GPIOBank6Pin12PinMuxSetup(); \/ V+ E& X% v, w; J/ V
34 GPIOBank6Pin13PinMuxSetup(); \
- G. ^4 N# a/ j! U2 L$ u 35 GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT); \6 G6 M6 o% C& D7 I/ k8 |9 W
36 GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT); \; ~1 J) V- m& S4 t
37 UARTStdioInit(); \
$ J8 H0 g1 o4 }+ j 38 } while (0)6 B8 q `: I; e9 \) b7 E
39 #else% X5 b* |. V( [1 V
40 #define LOG_INIT() do { } while (0)3 u. n7 Q9 o2 W) x
41 #endif
) C. {# n) {, \4 N 42 2 ^2 O3 v3 p; F
43 /* Log Output */
9 R5 p2 h6 y! Q% A# L9 J 44 #define LOG_INFO(format, ...) \/ |, h% T! \& @* w& d6 t h B
45 do { \# d3 I7 k, I3 w/ A! y9 V4 o9 F
46 OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \9 M& G0 Q# C. X! b% a, ]0 G
47 } while (0)2 B, W& l# R/ l. q/ i5 |
48
5 o+ F8 Y0 q# @9 _- B* u 49 #define LOG_ERROR(format, ...) \, e! L9 n2 I' s- q
50 do { \0 H! E0 M6 `8 y' M7 X
51 OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \. t6 k% g6 ^; e) n# X! Y. H1 q
52 } while (0)
3 b2 m+ z7 ~% x2 Y: M/ B( U 53 / l8 R0 D: \* P$ v: Y
54 #define LOG_DEBUG(format, ...) \1 v! o3 u) A. k5 K
55 do { \
) Z+ v) U4 m+ G1 M7 A 56 OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
) w5 E6 |( g0 N& G# K* n6 j 57 } while (0)% q8 y) a: u+ r: P# |# ^
58 # p' m! r1 t9 Q" g* p- y
59 #define LOG_WARN(format, ...) \: _; i) w4 R: J
60 do { \1 o* c% z# f i' L5 D$ {
61 OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
8 g& m) o. X' E2 o% u( G 62 } while (0)% f* A. R! u' b6 n& F" r
63 8 y H, h" |) t( L+ _% n
64 #define LOG_TRACE(format, ...) \
' D2 K5 p% u; ]( z2 g5 I+ s+ v& f9 f 65 do { \8 r) m' Y- |8 w# \8 l6 \, A2 m7 l5 ]
66 OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \7 l9 m! `: z. {# s( j! u+ Q
67 } while (0)
! M( ?! m5 |: ]' `( q- M! j4 D( U 68
* k6 }4 n: {; u9 m0 e0 r% P 69 #define LOG_FATAL(format, ...) \3 g' ]# j7 o" o; V; ~; Y. S q: \
70 do { \* H, t4 @' J& F* }; r) y
71 OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
' P# A5 ~' t9 f8 d 72 exit(1); \
, H5 s1 T( ]7 U4 D3 y* A5 i9 p+ q 73 } while (0)
. a! R% l. ^. v h 74
* z/ t$ W) U2 J. S 75 /* Assert */) c- ? k& ]3 n; Q+ K, k5 |3 n
76 #define ASSERT(EXP) \" Y k9 k7 B% }9 b% [% d
77 do{ \. n& [* j; b- _5 R& V9 ^
78 if (!(EXP)) { \
0 g, A% g% E% k: O 79 OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ ); \
6 K6 K, L; N9 g+ @/ U 80 exit(1); \+ L8 K c, d, [8 b" V
81 } \
5 e& \6 N0 i! ] 82 } while(0)2 k; \: p( i6 S3 Q$ @8 G
83 & a# P& G, \) i: i+ t
84 #endif/ t4 j" {, n2 ?
|
|