|
|
1 #ifndef _LOG_H_
( p+ V. |& K0 Q- g) z$ e 2 #define _LOG_H_" m, W: C. q- o1 m, E( Y
3
/ p$ U9 I2 |& K* N" N; [) \ 4 /* 0: printf; 1: UART1 */0 q9 C% @- e D$ q
5 #define OUTPUT_TO_UART1 1
; z2 d6 f3 l2 ?7 q 6 + b* V3 p. n- t% T, h# i. t" N
7 /* Switch Log Output */7 _' g: U5 M, A, h
8 #if OUTPUT_TO_UART1
9 C) L" R# {2 n7 Z- I' Q( U" Z6 f. D 9 /* For UART1 Initial */
6 F4 p0 N7 A5 A' J5 O 10 #include <stdlib.h>
$ o3 ]: T: U3 A6 B n! o 11 #include "hw_types.h"
1 K7 o: ]- ~0 c# { 12 #include "hw_syscfg0_C6748.h"* p6 \8 n8 C) A/ F, X# R& Y
13 #include "soc_C6748.h"6 s. o0 \: D1 S7 ^5 U
14 #include "psc.h" # r" v* U& ~/ E. E8 i
15 #include "gpio.h"
) r$ E0 T& T Z7 S) ] 16 #include "uart.h"
9 `- J& \4 n7 ^# } 17 #include "uartStdio.h"; V6 c/ V- o6 \; C5 t9 ]4 ?9 d
18
% c% ?+ A7 f& [: ?3 t6 N 19 #define OUTPUT UARTprintf
0 Q2 _! ^/ y& a+ c' K 20 #else
6 ~9 L9 M5 h8 `( Y8 }) [( D 21 #include <stdio.h>1 R% W; F k% t% N0 G
22 #include <stdbool.h>% A5 {, H6 f) z1 C/ V$ g8 d5 o
23
; c+ R4 q- f/ P2 p5 {. a 24 #define OUTPUT printf. L& K& H4 t! k, I, l! g* o4 J
25 #endif
5 |* a$ |# d- u6 c 26 2 Z/ h& ~ x+ j* u
27 /* Log init */
; _* }3 c, f b7 l# r+ C5 a8 T% ^ 28 #if OUTPUT_TO_UART1" z* t! U S. \: m
29 #define LOG_INIT() do { \
# R/ n! B) a$ Y$ A% ?) Z" I3 g$ v 30 PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, \; T0 u1 ^0 j { o' H
31 PSC_POWERDOMAIN_ALWAYS_ON, \
/ N& s' N$ d+ B, d* b R$ G 32 PSC_MDCTL_NEXT_ENABLE); \8 \. `; \! n3 e
33 GPIOBank6Pin12PinMuxSetup(); \# }7 B, O: O" `! ~. j9 i: J. O" m! ~
34 GPIOBank6Pin13PinMuxSetup(); \
* M1 J2 ^# F. T4 T3 b 35 GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT); \. [$ |: @5 A( h/ S" D
36 GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT); \7 P( ~0 }9 o; L4 q# A, z% G- G
37 UARTStdioInit(); \) O y- ]: B9 z$ M$ G) `
38 } while (0). p% L, l" u: t) F" t/ N% \5 Q
39 #else
. a( v/ O; |; ^0 P; z# o; n0 J 40 #define LOG_INIT() do { } while (0)
: \9 r. H* L4 g* { T 41 #endif' W6 u4 Z6 J& q; n
42 1 ]; Q2 _: g3 r- t
43 /* Log Output */
4 d& x$ ]# L% ]' V+ _ 44 #define LOG_INFO(format, ...) \
/ j' z0 |8 Q9 M9 y; [( A 45 do { \( x" q9 w p: i0 [& U: }) Y1 o
46 OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \* t: E# |" j4 T! d! r6 P! K- L+ @ L
47 } while (0)" @( P& b& t9 H3 Y
48 9 C5 t% b( |! l! Z9 t5 G
49 #define LOG_ERROR(format, ...) \6 K6 t" @% t% Y5 g
50 do { \
+ j8 Z0 ?* U9 X" b! w/ G) @3 Y$ o 51 OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \) j- q/ W& @; f
52 } while (0)
7 _) D/ v9 I) z" @- \ 53 ; `3 F5 f/ p+ X* ]. m) F- R1 x
54 #define LOG_DEBUG(format, ...) \
) \3 R- m7 \1 K+ M- k/ [, H 55 do { \3 w0 C% ~( l: ?1 S8 a. w- `5 w
56 OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
$ m) v' V4 e5 u, Q5 m/ N 57 } while (0)) D1 \: @1 q# F* k7 y, n6 I4 A, _
58
], ?0 B8 F- ~ 59 #define LOG_WARN(format, ...) \% g% U9 N1 K4 C) [8 F# s, ]; i
60 do { \0 u* h5 x1 J; l: s6 ]+ Z
61 OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \, D2 z- [0 u6 i# z$ W; D2 d J& f
62 } while (0)" _8 X6 q% ]7 {' l3 k n
63 7 v" k1 z( Q# x0 z, n4 a- Q9 M
64 #define LOG_TRACE(format, ...) \
1 ~0 d# r4 ]) [) f" p 65 do { \& s: r2 l% N) v# z. h
66 OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \- m) y/ Z$ V8 G% m1 X' i6 G
67 } while (0)8 {1 U1 r. @; e5 O5 L: l
68 . Y( y1 D+ e( s8 U5 }- k/ F, p6 L9 c
69 #define LOG_FATAL(format, ...) \
7 W: M1 Q% \0 H2 Z 70 do { \: \0 }$ E* _: h$ T; v* Y# U
71 OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
( H) f' c- V5 W6 r7 w; ]0 S 72 exit(1); \
% \: y8 B" z* z; q# [2 \- D 73 } while (0)8 j( w! M+ \4 |' D: Z1 f$ C. K& i
74
. T9 a5 M. Z% [- `% F1 Y/ M 75 /* Assert */
* X; B5 I, m8 j" _$ H 76 #define ASSERT(EXP) \" A1 v7 p2 t" u6 ?4 b) m H
77 do{ \* r' P8 L. l5 L6 N* x( G. F
78 if (!(EXP)) { \
. Z9 f4 M0 }3 ~/ C {$ P5 B: R, A 79 OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ ); \
}4 Z! B1 V9 n 80 exit(1); \
' C7 ^+ k3 p) a# r$ W3 R 81 } \
: Y: h8 {' k3 t4 F% z 82 } while(0)
. l# S4 m" @6 s ^6 h) j 83
9 h/ C# g+ K+ ]$ o; O1 I9 @ 84 #endif1 G$ L* S P$ {
|
|