|
|
1 #ifndef _LOG_H_8 q; l; u: A/ `, G0 g$ h
2 #define _LOG_H_
- X3 c7 u3 x2 W: x. R6 d+ ` 3 ) I# }0 L/ g- O9 i( X, E' Q1 e0 J
4 /* 0: printf; 1: UART1 */
, \8 k; r# e# }& Y% c# o/ x3 h; ^* { 5 #define OUTPUT_TO_UART1 1- t3 D& j/ W7 T2 Z2 T
6 * g0 w) F/ ?0 Q' [1 {( Y8 @
7 /* Switch Log Output */; r# F" ?0 Z3 q) c& A. ]- o, e
8 #if OUTPUT_TO_UART1% g( r; U+ t4 ^
9 /* For UART1 Initial */
9 f R6 S% t' ` 10 #include <stdlib.h>
, |4 A+ t5 d0 F4 i 11 #include "hw_types.h"
! y5 C7 d) D$ n2 @! A d4 n 12 #include "hw_syscfg0_C6748.h"
5 W. | S( H! @$ f% j0 h5 h 13 #include "soc_C6748.h"% O' p* p( V- A& E; Q0 |
14 #include "psc.h" + j, z# m2 y7 G" m5 F! G( T. P
15 #include "gpio.h" & T* Z& ]7 M6 O; h) [
16 #include "uart.h"
7 ^/ u! K$ W; L 17 #include "uartStdio.h"3 h. K7 v+ | N0 m
18 % g3 t' r* J6 J$ K4 N
19 #define OUTPUT UARTprintf
+ r8 [' i% s* @% m5 g 20 #else+ y# H2 J- O' k3 x3 \; ~% F: ~
21 #include <stdio.h>
* x \3 F. j0 j/ V/ L 22 #include <stdbool.h>; n3 P1 l2 f$ o# W4 `% d
23
( ~/ p2 [' d8 {* Q$ M$ o# Y 24 #define OUTPUT printf
6 ^6 Q8 J+ l4 B4 G# f 25 #endif
H- M ~, h; \2 R1 ]& Q, z, X( v 26 ) ]( a5 s) ?& k6 U
27 /* Log init */1 o* u5 f: U Y4 _6 u8 Z
28 #if OUTPUT_TO_UART1; U4 k7 s1 X1 B/ k
29 #define LOG_INIT() do { \
* z5 g: J: Z* W/ d6 b 30 PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, \
8 O: ?# l; L3 L C: | 31 PSC_POWERDOMAIN_ALWAYS_ON, \/ y: w- p1 W/ C" o
32 PSC_MDCTL_NEXT_ENABLE); \; | A- m. R6 y @: b
33 GPIOBank6Pin12PinMuxSetup(); \
6 x2 j; ?$ S# r0 b: O# y: C2 t, A 34 GPIOBank6Pin13PinMuxSetup(); \3 e6 F+ ]$ Y) k/ J" M) D6 [
35 GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT); \5 R" Q; u B, _0 s2 [
36 GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT); \& V$ _$ G. V C5 Y/ q7 S$ b9 ]9 r
37 UARTStdioInit(); \
: h, [% f: @' v j; } w 38 } while (0)
8 R2 r7 g; I" x- T 39 #else: S- z% C8 C7 T2 L6 s; j$ w* x
40 #define LOG_INIT() do { } while (0)
# ^# D( Z& ^6 n/ e; c* B 41 #endif& s/ k4 P- S3 M5 r% P
42
* z% b8 H8 n' V1 G7 j% G/ i+ Q 43 /* Log Output */9 o+ X: u( v7 I& t1 h" Z
44 #define LOG_INFO(format, ...) \
. l& ^, U, Z8 r3 Q9 ~( S 45 do { \2 N& I* i! Z! \, e- s
46 OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \0 T3 J+ U0 o/ s4 h( e4 _
47 } while (0)
: d# Y& a- o1 c6 X! v+ o# R2 }6 B. o 48
5 R; Y N; a, G9 i6 m 49 #define LOG_ERROR(format, ...) \
2 |* ?( l# {" \5 G 50 do { \+ }$ F9 J7 O* b9 \6 {
51 OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \$ L- q4 }# c; |% Z/ q; W
52 } while (0). g: h- p- H. M5 N0 a
53
V+ A2 _& _: | 54 #define LOG_DEBUG(format, ...) \
' L* E: D4 ^# l' C1 l 55 do { \; a5 @5 J9 K8 t: ~4 m% D0 _
56 OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \0 w. e9 d2 S" X" M7 x v
57 } while (0)
: [4 o+ y+ d& T& j; G: M 58 ^* [$ V1 u8 w% J
59 #define LOG_WARN(format, ...) \) o: ?6 H3 A2 ]
60 do { \
. d: }2 C0 n# z" I% n3 W+ F: f- N 61 OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
$ L5 t3 B* @7 \ 62 } while (0)
' ^) D, H. |- O+ g 63
( \. }& I6 T4 t% @$ m 64 #define LOG_TRACE(format, ...) \' s" y! w0 N6 {+ R
65 do { \
& r" |1 n+ p8 F Z. o 66 OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \& |) y% K8 i7 P8 F9 m5 K! o, b! E- H
67 } while (0)
( e" b* D- F6 D9 u! V 68 " [6 Y2 j; R9 p! |& X
69 #define LOG_FATAL(format, ...) \
$ |/ o9 W' w2 |5 _( F4 Q* x 70 do { \: Y, E) H, X; ?3 N
71 OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
7 m9 i' b! I9 V- B) K+ U s. R 72 exit(1); \- p! k- c \1 Q/ r8 P6 Z7 [
73 } while (0)5 Q$ O/ [: M* i% R( V3 P9 c, ~
74
0 i) s4 K( `. H7 K* W 75 /* Assert */- l8 l4 K S0 y7 X: Q
76 #define ASSERT(EXP) \; H4 L) L4 o6 _ R3 W8 D
77 do{ \: c2 D( s# ~" b4 k9 Y5 t
78 if (!(EXP)) { \
0 o& ?& W# T# |) H5 h 79 OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ ); \
& o, A, O; ?. Q; {. n$ S 80 exit(1); \
+ u' z+ v$ t5 I 81 } \5 k/ k8 Y+ ~7 l/ S w
82 } while(0)( c7 E6 N1 c: r( {- G
83 ) r; Z3 `) w8 H
84 #endif
* j3 K9 o1 L8 G1 T" ] |
|