|
|
1 #ifndef _LOG_H_
$ N& G$ W+ R5 O i0 o8 ? 2 #define _LOG_H_
5 m8 A5 F$ X ]5 @0 y" B l 3 / f7 i4 O' H N1 Z7 O) O
4 /* 0: printf; 1: UART1 */
) \9 e9 A8 m, L" S% }- s% O5 x 5 #define OUTPUT_TO_UART1 14 K3 K7 Y) s" j2 o
6
: ~$ v% |8 M' K- I 7 /* Switch Log Output */$ P8 ]5 o/ t* ?6 z' g
8 #if OUTPUT_TO_UART1" C; F& [. r( i- n
9 /* For UART1 Initial */
2 A# i- Q8 e6 y, N, c) c 10 #include <stdlib.h>
- h0 h9 I6 o J% |% `0 a 11 #include "hw_types.h"
3 E9 z8 N. h! s6 z 12 #include "hw_syscfg0_C6748.h"
' j" ^) Z: Z5 n 13 #include "soc_C6748.h"! ]* ^# T! a5 F8 e" R a
14 #include "psc.h" 3 q' i. q. p7 B
15 #include "gpio.h"
3 ?2 t; ], i' A! B" h9 m 16 #include "uart.h"5 j* ?+ l6 h o _! F X
17 #include "uartStdio.h"7 j1 s9 Q" {- A
18 ( p. a y) a0 n& l
19 #define OUTPUT UARTprintf
- m# A; [: n T: J0 K4 Q 20 #else6 E# u4 t T# A i q& a& v8 k; @5 ]
21 #include <stdio.h>
# M1 g( e( ]* S# B 22 #include <stdbool.h>
& n6 _! F# V1 ^- Q L' I 23 , T2 d G6 | }
24 #define OUTPUT printf1 J" @" Q1 X% d8 h5 Q
25 #endif" y V( u V) X! d' V8 U" n7 e
26
* I. m( v7 t: ~+ } 27 /* Log init */: o; n+ k' S" ^1 k3 u
28 #if OUTPUT_TO_UART1
3 ?* X# l) H0 T 29 #define LOG_INIT() do { \% g5 k) M) H/ U
30 PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, \
1 S+ }7 O; g# K2 Y( Q$ ^ 31 PSC_POWERDOMAIN_ALWAYS_ON, \
% F8 i( S, u. I$ _/ K 32 PSC_MDCTL_NEXT_ENABLE); \5 r, D1 d: ] ~3 M& \4 B
33 GPIOBank6Pin12PinMuxSetup(); \7 Y: O! m4 U5 n# a8 }, C
34 GPIOBank6Pin13PinMuxSetup(); \# n/ w, _; P4 N& W L8 T- L
35 GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT); \
0 C# O4 p' a% J, Z* F 36 GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT); \* g5 F/ s' Q7 y& Q) {' q, M9 ]
37 UARTStdioInit(); \. {" { ]$ H/ @5 l l( C
38 } while (0)$ ~$ P, K/ K" I) O7 z
39 #else* U$ S. V& v( n# q( p6 s9 B
40 #define LOG_INIT() do { } while (0)
" i$ |5 a7 y& P6 f, p/ H 41 #endif( ~6 K4 `+ ^; c0 j5 e; V6 L" `
42 / N! C* q# f1 I# U) j6 R @! n
43 /* Log Output */6 X8 ?' V# i& [: E. T
44 #define LOG_INFO(format, ...) \( k* f9 r2 E9 y% Z# y# y8 ]
45 do { \( u3 ~' L. N1 X: R
46 OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
0 c% M0 h/ f7 W9 E' s 47 } while (0)
. `6 w0 q3 w5 s3 N- q) l8 o/ ^8 Y 48
/ `. r0 R" R5 A y1 g 49 #define LOG_ERROR(format, ...) \$ [' p/ {0 ^/ D c6 z O3 I
50 do { \0 f' b" n; j0 M2 U2 R
51 OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
) ~ j1 b' F% g1 E# T3 w4 A 52 } while (0)
7 z& f L7 }$ K# w 53 . Q3 C0 ~% @' z$ w
54 #define LOG_DEBUG(format, ...) \
# k% \0 @6 {& t( r, [. ] 55 do { \6 ~4 f9 m; N: ~4 J8 E. j6 k
56 OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
: a" y; T9 ~% ? u7 F, n 57 } while (0)3 n2 d# t- h; n. I& K
58 ) `# p! p' I; Z, _4 u1 {$ v; h( c/ l
59 #define LOG_WARN(format, ...) \; M! @6 B% P; w" Z+ V: v
60 do { \
5 o; \+ F7 ]+ o8 Q4 ^, G0 r& f% N 61 OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
3 F! \; e7 l' x1 T, B! I1 P4 v) K. N 62 } while (0)% [$ r0 O- O9 _) b# J
63
, |" o, I7 ~' h2 k! B9 a$ G 64 #define LOG_TRACE(format, ...) \
9 J+ e8 c5 N2 Z9 n% J' ]* K5 i 65 do { \
$ I7 n- ~5 E9 X/ g' X 66 OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \/ o6 f3 I0 b9 w5 W' ?1 R
67 } while (0)
. W3 y2 y h/ z 68
: B" a4 Z% u$ }( U) M( e 69 #define LOG_FATAL(format, ...) \
( E) S, `3 C: I d. F 70 do { \
1 j R) I& C5 Y8 t$ } L* O 71 OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \2 j8 h8 m) N* t- G/ T {5 O
72 exit(1); \
% J8 S1 K# K. C! s- @( @ 73 } while (0)! n( u1 p. l0 f* B
74 ! n: W5 \' f$ G
75 /* Assert */3 m1 O1 y- j" l
76 #define ASSERT(EXP) \4 [, u% J5 N+ F2 k# |
77 do{ \. V8 M7 B( a/ n6 U. f1 _( B
78 if (!(EXP)) { \/ [! z, G7 l$ [* `- c/ o) b$ ?
79 OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ ); \ ^0 d& n; i6 H0 B/ J$ K
80 exit(1); \, [" ~, D: y) s! V/ Y' a; ]
81 } \) ?) E5 a* X7 o; L6 o& f
82 } while(0): `5 E9 V) ?: e/ f4 e" W
83
) s* G% K# ^: I8 A. N0 h 84 #endif; B( r) D) V N7 m1 p. Z
|
|