|
|
1 #ifndef _LOG_H_
; e( Z5 }" e6 o# t( O 2 #define _LOG_H_+ x A# O( p0 w! w0 ?" R% Z* f
3 * x' V0 {* c R1 W: {
4 /* 0: printf; 1: UART1 */3 k9 c! B& N% f' _5 [) U
5 #define OUTPUT_TO_UART1 1 K' u3 H8 D: j/ y4 ?
6 * |9 B9 R$ o% U
7 /* Switch Log Output */# u& P; ^& y2 `! W
8 #if OUTPUT_TO_UART1
4 ^. I) y6 n8 E5 l* l; D 9 /* For UART1 Initial */
2 e# W% a; w" _8 i 10 #include <stdlib.h>
4 u# k1 _$ _* J) E1 z 11 #include "hw_types.h"
* I' W; F3 a8 Y% g! X# b 12 #include "hw_syscfg0_C6748.h"
1 _; Y4 H7 _, L: e. I% D; _ 13 #include "soc_C6748.h"
7 P+ v) A: O [1 x 14 #include "psc.h"
- O7 l% Q# d9 v1 F9 z( k' i6 F 15 #include "gpio.h" , l+ C; B. P1 c7 Q! C
16 #include "uart.h"
( g- K. { y7 e x- h 17 #include "uartStdio.h"4 ?( @$ F7 K4 C0 f' F
18 % [) u, j+ q0 ?& _0 O* P) U+ s Q
19 #define OUTPUT UARTprintf
: K% B8 O) i8 p2 @6 X. d 20 #else$ z3 C g$ y3 \, S$ \3 E5 J
21 #include <stdio.h>
/ u6 u+ Q9 c8 C5 i* e) M 22 #include <stdbool.h>0 W1 ~* r( `* G3 R$ U, _
23
$ p1 q6 O3 _9 | Z7 X; K9 U 24 #define OUTPUT printf
' m% r1 q* h* N8 C! u6 p" q 25 #endif
; U8 d4 s# r' r$ R; |9 u) t 26
5 E0 c! h; g3 w5 t# C/ J 27 /* Log init */
; e! U3 ~$ f4 f: `2 M8 P 28 #if OUTPUT_TO_UART1
1 \- u8 l6 p' ?+ ?# \ 29 #define LOG_INIT() do { \6 e' L( L. }6 P8 K; n+ X' N, B
30 PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, \5 G4 u! o7 C ~6 O6 L( @
31 PSC_POWERDOMAIN_ALWAYS_ON, \
' r" S3 g: r8 Q% v1 U 32 PSC_MDCTL_NEXT_ENABLE); \
/ S8 U- M" U% P 33 GPIOBank6Pin12PinMuxSetup(); \ l) I9 S& v K& C% n- b4 D
34 GPIOBank6Pin13PinMuxSetup(); \$ e6 {2 z! h0 k$ J, M7 \
35 GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT); \
/ E3 a$ ~ M9 t 36 GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT); \
* q: q8 ^ E4 f/ x 37 UARTStdioInit(); \+ Z, o% l# V! t$ Z% F
38 } while (0)
6 o7 ?+ N/ U5 D 39 #else% l8 M7 }. P; _' T; }, k7 a! t6 D9 R
40 #define LOG_INIT() do { } while (0)
, b5 w8 ?5 b2 d" l& L' u# B 41 #endif2 {# i2 Y; U5 [1 @7 K% [9 \- P
42
: y' G9 o) Q! L# @; f! H 43 /* Log Output */
. r9 F' x" ?4 l; O) Y 44 #define LOG_INFO(format, ...) \$ P2 S' ~/ F8 | T( U
45 do { \, j; J2 F6 h5 D$ p7 q) z
46 OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \8 Z9 w( Y/ B' i) J) {
47 } while (0)4 Q" ?# M: b5 _5 Z7 |" ?9 K" T4 r
48 * G3 s- W! X+ @) x
49 #define LOG_ERROR(format, ...) \2 _- a( @$ C; P" v% H% f
50 do { \+ Z" L5 v& L8 z) `1 F' d, q8 R( V
51 OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \ f- O8 n" c9 T
52 } while (0): U: i; u& o* H- k6 T+ T! f: ~( R
53 - Y: U2 g, e i |8 n: Q5 |+ K8 r" ^" m
54 #define LOG_DEBUG(format, ...) \1 d, L$ }( h; q, `* [( ?
55 do { \
0 I6 H _5 ^5 j3 P( o 56 OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \$ z, b: U3 }4 ], Y. v+ P$ E
57 } while (0)& C9 d |# ]6 J; q7 Z4 k
58
( S% L$ @8 c& | 59 #define LOG_WARN(format, ...) \* q4 `8 l' k& K e
60 do { \& }* Y8 v( f; k7 g% X" J
61 OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \" t7 _* q6 q/ M. k: I
62 } while (0)8 k5 Z5 L/ W' J, g4 [
63 ^/ Z7 C4 c0 Q6 p* B o
64 #define LOG_TRACE(format, ...) \
" D+ T. k; t7 T/ A+ y 65 do { \4 V7 _5 b9 b( S2 R" [# {" k; u
66 OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
" S c9 s4 |, l1 ]/ P 67 } while (0)+ ?/ u0 |6 E+ j& E3 ^% i, x
68 1 V" n& ?' r& o; t$ W" D$ q
69 #define LOG_FATAL(format, ...) \
0 _9 W# n7 t } 70 do { \
6 C( l5 d! H) w, X+ [! g- Y 71 OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \5 [, z- G# o2 @# f
72 exit(1); \0 y3 A1 }5 Q7 `8 z
73 } while (0)
2 f3 Z0 ]- R. c6 ?' {6 E4 ^ 74
3 a( s) H$ l3 u* r, d7 P4 b0 E7 M 75 /* Assert */
# b0 q& m( C. o 76 #define ASSERT(EXP) \
3 @ A) N' c- l3 h' ~) j( M# i 77 do{ \7 h9 c8 f6 N Q/ U* M
78 if (!(EXP)) { \
6 B) H7 V" z; X! ]" X, C0 l 79 OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ ); \2 A L% Q4 w& a9 y: W$ _, ]/ N7 T3 Y
80 exit(1); \
' g0 \8 V M2 K" i) s- ~ 81 } \& h- b5 P6 y2 k
82 } while(0)/ O" f% ~! \& O
83
# Q( C' `; w% @- ~6 R) N 84 #endif
F( i9 T% H4 h1 E |
|