|
1 #ifndef _LOG_H_9 I5 z3 c2 |1 g/ q
2 #define _LOG_H_
6 L! Q2 ^) J% P1 V7 T: _ 3 ( b! U E( O$ A# z* F
4 /* 0: printf; 1: UART1 */
; a4 w0 m) X* R9 T 5 #define OUTPUT_TO_UART1 1( ~) M* D9 O3 c3 y
6
0 \# @ C+ ^% c s( y4 d" F6 Z 7 /* Switch Log Output */
, |0 I; z& M: G9 k/ k 8 #if OUTPUT_TO_UART1) c% ~" J7 ^" }5 r* o; z$ V
9 /* For UART1 Initial */' D# }" R( v$ ?# A8 k
10 #include <stdlib.h>% k& Y" T6 o1 C8 ?) j
11 #include "hw_types.h" " M. p% |% {+ q4 H
12 #include "hw_syscfg0_C6748.h"
2 c/ l, j8 ]' W6 q8 E. c 13 #include "soc_C6748.h"
. N! \/ C6 A! h( r 14 #include "psc.h"
& J; Z7 J, A% Z6 O' e' g 15 #include "gpio.h" * Y* `" t; w0 ?5 M) Z7 W
16 #include "uart.h"
0 [( n, H. ?; S, A% ^7 @ 17 #include "uartStdio.h"
" c" l4 O, i! v2 {9 @ 18
4 b6 e; P% W4 ^) U9 z k& c 19 #define OUTPUT UARTprintf# b, e* E8 o- L$ u% t* @: [$ \2 U
20 #else
" }6 a! }% t2 R8 D. S- E 21 #include <stdio.h>/ |, }' }" ~! _) z# o8 N3 T! F% K
22 #include <stdbool.h>2 @' M& V3 q7 P/ D: E7 b& H
23
) t8 k+ d/ U0 H' J9 M$ s7 _ 24 #define OUTPUT printf
$ w! u( Z) E, b) m6 ^& N 25 #endif9 x; s$ X9 O, ]- P9 @
26 j! g* m' F* D) M8 r
27 /* Log init */
8 i+ Q. `7 I# [" h! W, n 28 #if OUTPUT_TO_UART1/ r1 y: Z2 _: K( C: ], J! N* p1 P8 P
29 #define LOG_INIT() do { \' e# N) {8 g- M$ W& y0 L. E" Y
30 PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, \1 v: X. `$ w* G$ d. }/ u
31 PSC_POWERDOMAIN_ALWAYS_ON, \& c" O @# B7 {: y# l5 D, u. e* E) E
32 PSC_MDCTL_NEXT_ENABLE); \- g& B* j! T; L6 A
33 GPIOBank6Pin12PinMuxSetup(); \
8 s& a2 c) H. G! }1 m( ` 34 GPIOBank6Pin13PinMuxSetup(); \
& [: ?6 T1 Z. j6 o6 g 35 GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT); \5 K: M0 P( U: `, w1 r8 X$ r
36 GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT); \3 G( a% O. x9 G$ P/ Q
37 UARTStdioInit(); \
3 K) N5 U* o& r8 j# L# p1 ] 38 } while (0)4 S0 s4 i& U8 H
39 #else
2 p! k) I) l% R 40 #define LOG_INIT() do { } while (0)
9 \/ o: }5 u1 J" q8 M- _ 41 #endif
; ~' n- ^; ]8 X" p. p9 Q" C$ | 42 ' g# j2 O2 Z) O5 n2 c! M
43 /* Log Output */
. \9 Q. Y" c7 W1 O- V 44 #define LOG_INFO(format, ...) \: ], N( d+ n. o& G. Z0 |3 h) p( w
45 do { \/ @1 `5 H+ V/ F* s# j0 K
46 OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \" F. B" [0 x" L9 Y! { \
47 } while (0)/ M+ B- h( i% i
48
$ X) Y6 V/ B3 ~ T 49 #define LOG_ERROR(format, ...) \5 M% W! K7 w2 z( q2 t, R
50 do { \
0 n$ u9 _% g' g4 K6 O8 p 51 OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \# d5 W' o+ y: D; r+ \
52 } while (0)
( O3 E4 a- V% v 53
Q$ H+ F- V% z; \5 j. S& }4 }1 V 54 #define LOG_DEBUG(format, ...) \
?0 ^3 p& E- k! r- u* O 55 do { \# f+ I$ t6 |. A
56 OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \3 m1 I. h6 X) D3 j
57 } while (0)
) z6 B. W* u4 K1 r. o1 ?8 l* [ 58
' r, v6 h+ q. ? e. H8 v 59 #define LOG_WARN(format, ...) \
/ @- i& r5 O& K$ i6 E 60 do { \& c* v& l8 h+ s* R, P
61 OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \6 r& k8 d8 G3 A4 E4 T! Z
62 } while (0)
' {8 g; d; \1 F6 D 63
& Q5 i1 |, o6 }5 A3 ? 64 #define LOG_TRACE(format, ...) \
% q! u q8 { S0 \/ t% r/ K 65 do { \
9 m* T+ e& F2 {: Z7 N+ o; O8 h 66 OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
1 p' j4 D) R8 x8 c6 D: b 67 } while (0)
0 U2 ], c' G! k: f 68 & A0 S r( ?0 o9 ~3 M @
69 #define LOG_FATAL(format, ...) \
4 j; R5 n' ^) u! c; {. I 70 do { \
' J' w5 D0 }- h" ? 71 OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
! b6 t' s4 }! W& t# m$ k( W- B6 _ 72 exit(1); \7 o' H3 I& r3 O5 p5 E8 X
73 } while (0), X, a& o! Z' I1 U) C8 G
74
* h" d: w8 w I+ Y5 n 75 /* Assert *// ^8 b9 X3 z: h4 |
76 #define ASSERT(EXP) \
1 p2 N% i% H `, G' G% P 77 do{ \
/ f% a. r9 F% ?' H9 X- p 78 if (!(EXP)) { \- _' p9 S6 Z3 [# j& u
79 OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ ); \
% c1 y# R4 @# C( { 80 exit(1); \
; B; ?4 I6 D6 f" K* N* n# _ 81 } \
& k6 w8 e2 e5 o6 X 82 } while(0)
+ G, N( w# `+ [ 83
- \8 S, m! D, C# ~" y* P 84 #endif' ?- d B* b; @$ Q8 _
|
|