|
1 #ifndef _LOG_H_
0 P4 {! G3 X2 Z3 u2 N 2 #define _LOG_H_4 n( u% L2 C4 c+ E+ l
3
# } ^' b4 g3 b0 G( Q y3 V7 u 4 /* 0: printf; 1: UART1 */# q: ~% x K4 U! Y
5 #define OUTPUT_TO_UART1 1
% O7 V7 p0 K& M% | 6
# W2 a. d! ^& f+ A' D' U2 r0 a 7 /* Switch Log Output */" M0 E# j3 O$ ]) o4 F2 |
8 #if OUTPUT_TO_UART1
1 x) _1 n$ @- U4 ^7 G# H" j/ ^ 9 /* For UART1 Initial */
# P. r, o3 T2 e( c7 ]- i 10 #include <stdlib.h>/ s7 `& }5 D& Q) W
11 #include "hw_types.h"
) y9 F9 G3 F$ r, N3 ]; k 12 #include "hw_syscfg0_C6748.h"3 V9 K- h( m3 w2 [! o
13 #include "soc_C6748.h"1 z# P! J/ {9 W, q2 _6 z0 Q% q
14 #include "psc.h" 5 T {+ I! `6 @. ?: x6 l+ ~9 e7 i
15 #include "gpio.h"
8 z, _( E" n& ]. U; u! V 16 #include "uart.h"$ P [, r8 F5 B$ t' ^6 _1 F0 k9 m
17 #include "uartStdio.h"& q8 w z) S4 p# f9 Y
18
2 I6 |( M6 |9 D7 h T- n5 m# | 19 #define OUTPUT UARTprintf
" s# @' q9 r8 l# A5 q9 t; K 20 #else c7 `: j# U) R# n/ N
21 #include <stdio.h>
4 G' R' H- ^2 k 22 #include <stdbool.h>- ? K3 j: K8 N" v; y/ m
23 5 n7 U: b) r" i; l" B s
24 #define OUTPUT printf6 A- g8 h! \' D# j, b# e. J
25 #endif
: I2 V& [1 ]$ j2 @8 F7 O 26 & l/ p. U8 ] T* o7 ?/ V
27 /* Log init */
- E- j6 J$ p7 y 28 #if OUTPUT_TO_UART1; @/ w+ W! T t2 T* k6 Q
29 #define LOG_INIT() do { \
; i, y1 A8 n* E 30 PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, \. X( ^8 ~: x- Z( |/ K) G7 x! \
31 PSC_POWERDOMAIN_ALWAYS_ON, \5 w! Z3 [' K+ ^; Q5 z& w
32 PSC_MDCTL_NEXT_ENABLE); \
. l; k- b2 J& f* ^ 33 GPIOBank6Pin12PinMuxSetup(); \& o' _( M! h E3 v0 `
34 GPIOBank6Pin13PinMuxSetup(); \
) h$ I5 L* J7 f" g. D9 | K% { 35 GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT); \7 }9 W$ k5 f {5 Y6 L" H, y% E9 D
36 GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT); \& y' {+ o4 ]5 O4 W# y1 V
37 UARTStdioInit(); \9 w( p; P0 W% o/ x6 u8 A6 l) H- |
38 } while (0)0 q3 g7 c' H& ~5 E( h) {) O
39 #else
4 _+ G0 _9 j% _) Q. j* f 40 #define LOG_INIT() do { } while (0)
9 v) ^) c. }9 Y 41 #endif% F4 N0 h! S) Y5 E( L
42 - ~) c L( G4 h0 c
43 /* Log Output */
7 ]/ f5 } n" G6 A" f% I. A 44 #define LOG_INFO(format, ...) \% y( p8 V3 w' \6 r/ v' r
45 do { \* E* k) e6 Z1 k7 d- n: E+ k
46 OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \0 p3 J" y+ J& C/ b
47 } while (0)
b. ~' v: ~/ z% P: T; e/ f$ E 48
1 U: U( r- a) ^ 49 #define LOG_ERROR(format, ...) \7 F2 v" Q0 Y; _/ H& ~: y2 `/ Z7 \
50 do { \
' K6 C. t; g6 S# U& j" W7 T6 j8 u 51 OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \) d. F" {6 V6 j" T
52 } while (0)! L! F' w, N' b: A7 Z8 D
53 % M6 Y N" Z6 j- \/ F9 w3 R3 b) f$ g; g
54 #define LOG_DEBUG(format, ...) \
$ ~1 t- l! C9 R8 k0 w 55 do { \2 O: {3 o* b% K) Q
56 OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
# b0 F8 a4 U5 U8 e+ w- Y) K$ h 57 } while (0)
: }! x+ T; M# n* e 58 , u' l* ?8 P/ T z1 W$ h
59 #define LOG_WARN(format, ...) \
" t$ a$ _, M2 b4 s1 V2 k& r6 Q$ Q 60 do { \: P* R% D9 V; u8 u
61 OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \' I- M9 R7 T) {
62 } while (0)
6 S( o- r# ]6 ]4 B) n 63
) I% Y) g4 z! }4 ?( f" i8 K 64 #define LOG_TRACE(format, ...) \1 Y) C, |0 c2 [/ o7 b5 N
65 do { \- R& J5 R5 |4 S7 L; _+ g0 P! k7 Y
66 OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \. S3 O; z9 R# F
67 } while (0); W. j4 N: r' r- n- P/ i& A
68
! V' M1 ], g$ n" h, I- p. i 69 #define LOG_FATAL(format, ...) \' X6 B: a5 ^8 L3 d* Z. X
70 do { \' n" y! L" `7 z
71 OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \4 q7 G( s# y! K; _, s# Q
72 exit(1); \
+ V. c9 L" t( Z# A5 s+ y. I- \# x 73 } while (0)
; N- ~7 [9 U. N Y4 e. \ 74
G2 j, Q. P5 X4 P( d9 R! K 75 /* Assert */
5 V" @0 c7 s& p' y1 e6 S; V A 76 #define ASSERT(EXP) \
. s0 R0 w; _- D- j 77 do{ \6 S. A: b% L8 F2 `& Z; ?7 l
78 if (!(EXP)) { \
) e5 p2 o0 S$ ~ 79 OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ ); \ e- k) I, D4 I: h4 v6 [
80 exit(1); \
- U; m8 V1 k5 u) i 81 } \+ C! V4 n# B1 {! {6 z3 F
82 } while(0)
" z9 V* _( h! j4 u* U 83 / s- ?# e$ l$ }6 C$ N. u
84 #endif
/ c8 G' a9 D9 n/ E1 o/ c3 H' {6 I |
|