|
1 #ifndef _LOG_H_9 g( Z R6 R' w! B6 F/ G
2 #define _LOG_H_& X G7 k7 P& q
3 4 h" f1 U' E( ^
4 /* 0: printf; 1: UART1 */& E1 c, m5 s& ~2 _) ~$ f& L2 O
5 #define OUTPUT_TO_UART1 1
+ o8 z; ^! m# X, E& k7 C 6
& Q5 W+ _; w1 C 7 /* Switch Log Output */' i* \* u! Q: x1 D
8 #if OUTPUT_TO_UART1
. e) g4 {! J8 b X6 b: a, D 9 /* For UART1 Initial */
# l9 X4 t; E3 b# ?, s5 j 10 #include <stdlib.h>
/ t5 I* t% a% l% ] 11 #include "hw_types.h"
' l% e2 `) z' O1 I6 {6 q- C 12 #include "hw_syscfg0_C6748.h"+ X% i) E, w6 s$ @" Q" ]3 m- c: j, p
13 #include "soc_C6748.h"( z! H8 M3 C% T4 h# h
14 #include "psc.h" 8 J; M% p5 I7 l8 r: @- U& X# k; h: E
15 #include "gpio.h" 8 D& N1 Z2 O( R- P5 J
16 #include "uart.h"% n/ Q L$ ^5 P [3 c+ x5 o* v. s: [
17 #include "uartStdio.h": J0 i8 q1 k+ {2 X0 {2 p
18
( \( B9 B, d0 z C: ]& W1 ` 19 #define OUTPUT UARTprintf
$ y7 H" y h5 K 20 #else/ W6 O7 J! P" D4 h8 @# H
21 #include <stdio.h>) v$ X. o9 C6 b* z
22 #include <stdbool.h>9 a7 O. S, f" K
23
9 N3 U- e- }4 T k& F3 Y 24 #define OUTPUT printf
7 ]& Q$ }4 N9 | 25 #endif
' X" O: k2 {5 s% x 26 1 U, A8 Q2 p" Z& ^) O, D* p* k, B
27 /* Log init */$ ], x$ m, n/ S* R. i/ c" s4 R
28 #if OUTPUT_TO_UART1
( ]% N7 |) I' r( ^8 y5 Y 29 #define LOG_INIT() do { \
/ x2 [" m( M/ ^3 H# i9 o5 p4 N 30 PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, \" E1 @" y! s* r: X/ \- c
31 PSC_POWERDOMAIN_ALWAYS_ON, \! s9 ]- N$ ?. A, V. W4 X2 b9 x L
32 PSC_MDCTL_NEXT_ENABLE); \
! }5 Y; u8 y# O. c2 P" P 33 GPIOBank6Pin12PinMuxSetup(); \
# o8 `8 `: [- @; C9 y; D0 Z+ q 34 GPIOBank6Pin13PinMuxSetup(); \ i6 L: a" ]% ^, j
35 GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT); \. J1 `( L) W$ y! E% K# g$ w( }
36 GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT); \
3 Q8 o* F$ a" u: G4 ~. K 37 UARTStdioInit(); \
, y" }: `" m0 X 38 } while (0), G7 k# Q) M) } P/ {
39 #else+ j; n- K& k( i$ |! G9 I' ^( N
40 #define LOG_INIT() do { } while (0) E7 n- r+ L2 ^
41 #endif
! l0 q0 l2 K; K8 V* p/ Y 42 1 u8 v& U3 d* u! n3 @; W( i
43 /* Log Output */
& Z, Z6 |7 D+ u# D# O1 Z 44 #define LOG_INFO(format, ...) \, I( i. K; |) {2 Y9 j
45 do { \# g$ d: j: a# q
46 OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
; C- R( }. `4 R5 n" G/ j 47 } while (0)9 J, B5 R6 e3 |7 V) t0 O
48 ; F% k7 a; ?5 g' W' K2 }9 R
49 #define LOG_ERROR(format, ...) \
8 o. p3 s+ F4 B 50 do { \
5 j6 n' P9 }- a8 g$ |; R+ W 51 OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \/ B7 B2 U, }7 e: ~6 O' y1 o& ?
52 } while (0)$ ?7 P, S4 H' k# ^
53
4 r' G; D5 @# m d 54 #define LOG_DEBUG(format, ...) \
" Z o; b$ J5 l: B6 C, | 55 do { \
; C9 N `! F- | 56 OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \; w5 h9 T: D! @4 g( ~8 V
57 } while (0)
. U' v8 {) r% q3 t5 p* O% d* E 58 . z# Z7 W% M( t4 g5 U1 N
59 #define LOG_WARN(format, ...) \1 j2 U. S) n: W* }$ f
60 do { \! ^! w2 c+ B+ ^' E
61 OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
2 A5 z; G2 [( J# F; ?' F! H* n 62 } while (0)
( P1 Z/ f3 }; T: v5 x& {# h% _ 63
$ R' \/ P4 h% S9 }+ C6 C9 C 64 #define LOG_TRACE(format, ...) \. U# A- ^7 ^- u
65 do { \
! C# @- T) _0 F0 X 66 OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \/ Z3 j1 ]; q; g8 m1 y; l! a
67 } while (0)
7 x4 K1 u' B( Z4 T 68 : ?6 U t- i+ G' E# w1 w2 c5 ]
69 #define LOG_FATAL(format, ...) \. b2 k& W9 @* e
70 do { \
6 m" v; Y6 R% y7 I/ R' e0 j 71 OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
) A& Y1 x( o, e8 M8 q 72 exit(1); \
. v# T$ f" v, x* p2 | 73 } while (0)7 x" j+ w* c6 a: Q; {4 m0 D$ [: l! c
74 0 ?" I( r% L, G5 G6 I
75 /* Assert */
0 q' j3 t$ r/ V+ c' r+ F0 E 76 #define ASSERT(EXP) \
0 g- F, d4 P! o0 a 77 do{ \, s1 v6 D' S* E" o- u$ R& x, E
78 if (!(EXP)) { \, |8 X# B- C! S4 U( g) W7 u
79 OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ ); \
$ F; ?- k# u0 I" _4 }2 r 80 exit(1); \
9 r4 K: c# {1 C8 C0 _ 81 } \
- B3 q6 v$ A$ a0 e; F 82 } while(0)
: _1 t4 F1 [( E2 y 83
# }0 g* `/ e5 Z, W0 E; k4 c6 [6 h 84 #endif
3 F b; @) [9 A" \ |
|