|
|
1 #ifndef _LOG_H_9 t7 N4 L& ^! {( u- @
2 #define _LOG_H_9 V4 v: c" i( m
3 + L; Y3 @; v% b6 {' Z2 z
4 /* 0: printf; 1: UART1 */# C. F0 H6 \$ ^# K$ m. o
5 #define OUTPUT_TO_UART1 1) O4 D2 q: }: G! F6 s1 l6 `
6 # N* O% x4 ^2 R& |* O
7 /* Switch Log Output */
$ T$ R# n6 a* \: |$ s 8 #if OUTPUT_TO_UART1% y0 m, F% k3 k4 g/ p
9 /* For UART1 Initial */3 ?6 x# J; H! W% K; r: K
10 #include <stdlib.h>( h. ~8 U" |$ @7 ^2 h
11 #include "hw_types.h" 9 B! z7 t# ]+ Z1 e
12 #include "hw_syscfg0_C6748.h"! g% X7 t& @! p9 ^9 d
13 #include "soc_C6748.h"
$ q9 d# x' x4 y$ w5 Z' h/ C: e" _ 14 #include "psc.h"
( w6 B" A2 D6 @3 I2 r 15 #include "gpio.h"
6 c* E' ~$ d& M8 e+ A) a 16 #include "uart.h"2 _% w }. n# I/ @7 S$ L. s+ |. m- u7 v
17 #include "uartStdio.h"4 ?' N' k) f( Y' g( l* d
18
" |2 {0 W: R. R( L5 U 19 #define OUTPUT UARTprintf
& C5 t) O% P0 i' @% a0 v- ? 20 #else7 h; A) U8 F. g5 X u/ z) S* w
21 #include <stdio.h>
9 Z0 z1 V3 b) L$ U2 D, }( Y 22 #include <stdbool.h>
9 N/ n N3 M. P; ~ 23
3 q/ d" W3 ~1 S- Z$ @8 t: I. a 24 #define OUTPUT printf4 j9 }: S6 ~, C" s; C. `: o
25 #endif
2 m! q! k4 @4 s, L9 Z( u 26 ; _$ X/ O' [8 `$ G& R
27 /* Log init */0 x# s+ J! G# @8 i- e
28 #if OUTPUT_TO_UART18 p' V8 e2 R/ X: g9 u0 q/ p
29 #define LOG_INIT() do { \4 A, a0 P( j, z8 C. x
30 PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, \
% E+ ]! W0 L5 K. P8 } 31 PSC_POWERDOMAIN_ALWAYS_ON, \
4 n3 |( k# T. Z" d5 Z# r# z 32 PSC_MDCTL_NEXT_ENABLE); \
1 n4 }- K$ T$ l4 s6 H" r- T) O+ t 33 GPIOBank6Pin12PinMuxSetup(); \
" _; t9 _6 j. k% q- Y0 m 34 GPIOBank6Pin13PinMuxSetup(); \' B1 n/ o" ]7 D, s0 [# V5 E( ]
35 GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT); \7 W! }- j& A! W* q* r& H
36 GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT); \$ G* W! C& F) @% y9 p
37 UARTStdioInit(); \
- F8 S% R0 w% k7 G8 Q 38 } while (0)9 y8 l2 M# s8 c! j
39 #else7 ?, M0 _" E" b1 }* M
40 #define LOG_INIT() do { } while (0); g5 M5 E. [( a) m
41 #endif6 b! y$ e# U G5 B2 z
42 $ u8 c3 Y1 C. @$ J8 p' }
43 /* Log Output */
6 {' z1 N$ o7 ?' t+ H4 ^6 o$ D 44 #define LOG_INFO(format, ...) \
9 O* A9 d* z# `1 {( z: v, I 45 do { \
, z' y2 O) S& d# } 46 OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
9 ~- w! ]% R8 U6 |0 H4 M4 j0 z 47 } while (0)
: `# ]: j+ e9 c! U1 c* P2 D 48
& e) S" F: v7 m1 y9 k" \4 j5 y( I 49 #define LOG_ERROR(format, ...) \' l& p. ]/ |( I" h8 {! f$ Y# o! [6 R
50 do { \/ y1 h8 j3 L# C) v) C* C1 V5 t7 S1 M
51 OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \) r7 k7 L( H" Z5 a
52 } while (0)# s4 Y/ k U" _8 v, ]
53
7 p- W& v$ O @; m% o7 N6 N 54 #define LOG_DEBUG(format, ...) \* d1 h! ]" K: `1 g
55 do { \7 j8 W0 S2 E4 P
56 OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
1 n8 X: i8 Q# t4 J' b 57 } while (0)
) [3 E- u4 M& L S3 x6 m: j8 F. k 58 0 f- l6 w, S' g) ~+ A. G2 \* y
59 #define LOG_WARN(format, ...) \2 e( p# \5 T5 p. G- U
60 do { \: i: E" W- g1 |( t0 w1 Y6 {
61 OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
& D6 h- s" k8 ? 62 } while (0)# W* U0 O3 U# C6 E8 z' m; a
63
?/ L8 n: `1 z 64 #define LOG_TRACE(format, ...) \! F1 s5 ^* c m! Y4 ]
65 do { \+ e. G& V; A# M- r8 P+ x# w
66 OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \, T, { o$ ]; J
67 } while (0)9 ^, a! r+ X' l1 |6 W1 z7 s$ A. g
68 5 I ^, v* E2 P' q2 S' t
69 #define LOG_FATAL(format, ...) \5 ~( L* S$ j6 _5 C1 {& H
70 do { \
* Q- k) U" e! l0 S; Z# x" h0 \) r 71 OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
) F) S: B+ p4 @1 ? z 72 exit(1); \, V( C1 S3 Q. f
73 } while (0)& S; @5 N' m' N) `# F, q' U
74 i& T( }6 \2 @7 b
75 /* Assert */' H2 V- j% `+ G1 n# m4 u5 @0 g
76 #define ASSERT(EXP) \1 C, ^8 }# e. t/ ~
77 do{ \
# {& X) s! z1 ?" _4 v0 M 78 if (!(EXP)) { \
1 W5 h8 F" b+ }2 v( K$ v9 U; t- V 79 OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ ); \& K2 }+ \9 O' B
80 exit(1); \
- ^# G* a9 ~, d" ]) x 81 } \2 t n. y0 J; Z: b% U& r& {
82 } while(0)
: U( H! m. J. a 83 , u+ s. F0 s3 }
84 #endif9 S. @$ ~$ G4 b2 j; x1 C8 z4 c' y: q
|
|