|
|
1 #ifndef _LOG_H_
& u9 v( d5 e9 ` 2 #define _LOG_H_
# n" {9 n0 W3 P3 M 3
6 l+ M+ B, z+ |+ B8 r# k 4 /* 0: printf; 1: UART1 */: [9 u' q6 ^/ S- M# W/ G* @
5 #define OUTPUT_TO_UART1 1" J: @6 o( {* d& U
6
2 Q" m) y; l% w7 h8 A+ n 7 /* Switch Log Output */
. S3 w& Z; S% V1 S0 L E! U 8 #if OUTPUT_TO_UART1. J5 }& I3 n9 D8 U: {3 j
9 /* For UART1 Initial */$ G1 j) q7 F) s0 a% z/ p, c9 T0 B% N$ j
10 #include <stdlib.h>) e6 V/ G9 l( o( b/ _6 k
11 #include "hw_types.h" 7 \3 ~8 E6 X& N3 o4 U( o/ v& F
12 #include "hw_syscfg0_C6748.h"
) B ?8 B3 i* X/ Q5 N6 ?7 S 13 #include "soc_C6748.h": _% c! Q& s" w* j% \
14 #include "psc.h"
/ T8 D0 x. V" ]8 z* z0 |# T8 @ 15 #include "gpio.h"
8 s! t% S; Z+ g 16 #include "uart.h"% E- ?) G" x7 v: g' n/ ]
17 #include "uartStdio.h"
, @. C/ l4 w6 Z3 @3 @- w! s 18
6 v1 J8 }" q7 q w( ?+ b 19 #define OUTPUT UARTprintf
$ c( T0 F8 `3 C$ \* l% K* c5 w( @ 20 #else& s ~# l3 w/ b; ^ @7 {
21 #include <stdio.h>
' v8 W9 x/ m( y2 z8 B2 l, q 22 #include <stdbool.h> `: @( @5 T7 l+ E
23 ' `" N$ P; \3 ^. J
24 #define OUTPUT printf! v( z& h, S7 c r. ^ V
25 #endif; B5 O5 m: J0 Y: c, ] J7 ?& X
26 # t- Q; {; X# @* K, K8 f, a4 {
27 /* Log init */
1 I" j( w7 U* v& w) M& a; N 28 #if OUTPUT_TO_UART1
1 o j* h* d% X& r, S 29 #define LOG_INIT() do { \0 R) E1 p. o: V: r
30 PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, \1 y y1 v, e; Y* C0 ]$ m
31 PSC_POWERDOMAIN_ALWAYS_ON, \! P8 k1 M7 P* r! W1 a4 l
32 PSC_MDCTL_NEXT_ENABLE); \
- ?; T) m5 H/ [1 Q' c) g4 ~ 33 GPIOBank6Pin12PinMuxSetup(); \
$ i* a4 H8 Z4 C6 x. c* I$ V 34 GPIOBank6Pin13PinMuxSetup(); \5 y7 B; W' @ p1 G
35 GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT); \ e0 N. X8 V& [
36 GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT); \
! |3 g# e( M% D 37 UARTStdioInit(); \1 f% \' o+ g' F8 K/ Z/ x* o' {
38 } while (0)
4 w( W) s8 t0 {- J( R9 T 39 #else L5 A, L/ R; Y) k, l# P f
40 #define LOG_INIT() do { } while (0)
1 s1 n F$ I g 41 #endif; ?; Z* z; `/ u- k
42 , B6 C8 O! U! q0 M0 X3 R
43 /* Log Output */, s3 u! b, X4 _# j
44 #define LOG_INFO(format, ...) \& B/ t9 r) h& w0 H, S( W
45 do { \
' m( C0 }; `9 z- d( G ^/ R 46 OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
7 J \2 O# L. {4 V* u5 W0 | 47 } while (0)% o- K& t* X5 Q6 t/ X( K
48
* b. f2 n4 F0 D 49 #define LOG_ERROR(format, ...) \
9 `& j! ?9 j) Z. a. g- L 50 do { \' H7 G, ^3 G* J
51 OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
* o/ S9 J2 q# F9 N* p4 w6 ?- v 52 } while (0)
! `2 a9 K0 c; _6 ^3 K9 k: d 53
8 D* c8 E% [: I: W1 E, K 54 #define LOG_DEBUG(format, ...) \, t* ]1 q0 Z1 ?$ ]* T/ T
55 do { \
. H T8 b) ?, q' c4 H( Y: ^$ m 56 OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \3 X! E L: O1 V8 P+ i' Q% E) I
57 } while (0)0 f& J0 H3 E; U; K/ L
58
: V+ M2 D3 }( M) r2 I 59 #define LOG_WARN(format, ...) \
. E+ m7 O4 e8 e( s1 p 60 do { \0 {' b+ W- `; a
61 OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \! N% x, S) w% e' H* B
62 } while (0); U7 \" J/ p" a- X8 f
63 8 z9 H6 E, }+ O, `2 y- A
64 #define LOG_TRACE(format, ...) \
7 x( t& {# }7 x" J* S1 s! h2 ^ 65 do { \# r0 D1 {- t$ q$ _
66 OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
q% h* i. V; M1 ? 67 } while (0)
! D3 _" K7 ]+ { j9 w' A4 S; E 68 v- L8 v+ e5 E( Z+ I2 v- M
69 #define LOG_FATAL(format, ...) \1 M( Y" g4 T7 z2 i- p2 K
70 do { \
" R( D i: b& ]3 O- z* ^$ G 71 OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
" R# T9 f% p" Y8 {% t: m" K 72 exit(1); \
$ g5 s" n8 P9 Y 73 } while (0)
: J. ?* g$ x( r( Y7 i 74
2 E$ v0 W- E- @# c, v) F 75 /* Assert */% O3 D7 ]+ r6 u# y# w( }, C
76 #define ASSERT(EXP) \1 W! [" @2 L! B1 C: _% o5 J
77 do{ \
$ g! o9 x7 `/ v2 q z# R O% [ 78 if (!(EXP)) { \
0 X5 h5 D; c9 d9 l4 e 79 OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ ); \
1 m P( O8 n4 m/ U% _ 80 exit(1); \" ~$ U& T) [$ e6 y; w
81 } \
8 f8 X! z1 ? f. P+ A7 g4 G! M 82 } while(0)
+ M7 W# C8 [1 M 83
$ `# B* S2 M. c 84 #endif2 v2 p. E ~1 I8 N. I
|
|