|
1 #ifndef _LOG_H_
) r3 y- j4 y s9 n+ q5 ?5 G 2 #define _LOG_H_
/ B+ r9 l8 h$ m0 M 3
4 R9 n- e; j/ K6 Q5 W7 x( N 4 /* 0: printf; 1: UART1 */
9 @ O$ Y2 k/ ]& b0 p1 F! y 5 #define OUTPUT_TO_UART1 1: ]* k6 N" }) \7 a0 B% ]
6 & C O" e/ ]9 v
7 /* Switch Log Output */( T$ G9 ^0 D8 g( M, T3 f
8 #if OUTPUT_TO_UART1
/ P" j# a! }0 B; q, Z 9 /* For UART1 Initial */( u% d+ \( ~, I7 i* _0 ?) R
10 #include <stdlib.h>8 q- H2 B/ L7 I" y! ]3 g/ W% S
11 #include "hw_types.h" i; P/ Y7 o+ {
12 #include "hw_syscfg0_C6748.h"3 d+ V& l6 k4 Z& P, c( R
13 #include "soc_C6748.h"4 `+ U6 A8 r/ g9 c% P8 w2 e( c
14 #include "psc.h" : p9 m: b: A! k0 z! Z) B2 O" ?
15 #include "gpio.h"
. n, `0 G+ u9 }% |; r2 _ 16 #include "uart.h"
$ o8 O2 |4 b. Q7 y" M7 J. M% x) T5 E 17 #include "uartStdio.h"/ G" r9 ~/ Z' c7 B, a9 B! U" r
18
* F7 s+ g) ~4 S, [/ i 19 #define OUTPUT UARTprintf. p6 A% e( D* J# V8 I) C5 r
20 #else
3 n# y' `! v8 f4 S6 P' X8 a' P 21 #include <stdio.h>' ~ O2 l. n2 j3 v4 ]: s& W$ v
22 #include <stdbool.h>
: F" y& |. P0 t+ O$ \! H" x 23
P/ o& ?3 l/ I: P2 _: P5 r 24 #define OUTPUT printf6 q& L9 c9 D5 a) M
25 #endif6 y7 S7 C2 v* P, H6 J7 y
26 $ K$ m: K( Q9 Y3 @
27 /* Log init */; |% M8 l% P4 Z. D v$ [- h, ^& w- F
28 #if OUTPUT_TO_UART11 |' c- f, A7 N; d2 ?
29 #define LOG_INIT() do { \" b; S2 p; |" u
30 PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, \
* l# T& X4 }' R7 _' x3 I) g; e 31 PSC_POWERDOMAIN_ALWAYS_ON, \
+ ]8 T% }6 F* f# {1 V 32 PSC_MDCTL_NEXT_ENABLE); \
0 i K+ `! O" c7 i2 i2 B 33 GPIOBank6Pin12PinMuxSetup(); \
8 h- ^4 Q/ y# v4 |2 A, }3 n2 N 34 GPIOBank6Pin13PinMuxSetup(); \4 B1 L9 ^+ c/ t+ ]
35 GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT); \
# N9 E" L# h+ c6 t( F 36 GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT); \9 n/ q+ u! o! N6 O
37 UARTStdioInit(); \
* v% g( ^9 s* [9 P/ K 38 } while (0)8 @% `: r$ \# L* m) m: I( ]+ A2 e
39 #else
7 a5 V$ S5 R/ y, x8 s 40 #define LOG_INIT() do { } while (0)* u) }0 D6 h0 B6 ?! ?6 L& R
41 #endif8 E; b7 P# i0 `* A$ j$ P" m
42 ; o, W# j6 R# I; S/ P! E
43 /* Log Output */; l+ q3 _+ n! w$ `! k* {( b
44 #define LOG_INFO(format, ...) \
- m5 k, u+ @' R1 X4 G. k 45 do { \1 z. D0 ~. }( [6 j& A$ M
46 OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \7 ? h; y( E, P+ A4 A
47 } while (0), L1 {, ?2 k$ S& v: ^& E8 S
48 7 A3 w* r5 t# m( W( S0 r( `
49 #define LOG_ERROR(format, ...) \
4 D- _# T3 C8 t3 T4 F% @9 O 50 do { \# X# c( D0 A8 G
51 OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \1 \7 h0 h8 [" g% S* h) ~# \" a
52 } while (0), U' u5 {9 ]9 G! v* R
53
7 r; M: C4 |: m G* \9 H. p 54 #define LOG_DEBUG(format, ...) \
, k/ K* l* s, t5 i% ]7 d 55 do { \
) y6 U7 l" j* K6 `) @ 56 OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
9 a" y+ M0 F2 h+ V: i4 c. P6 p 57 } while (0)
, O! w3 g! K1 m$ r; l 58 3 @1 C6 C7 d% m$ B; L6 t
59 #define LOG_WARN(format, ...) \
0 T6 a7 |. z D2 X( P 60 do { \# w' }/ f! [& [& [8 Q% ?! v$ w4 C
61 OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
3 o4 b% s& S" W 62 } while (0)
' ~5 Y( T4 ~6 r3 p+ k 63
* `# `7 Y: I- H3 I5 @# o 64 #define LOG_TRACE(format, ...) \
& Y8 K& K3 l! ]2 J* ~ 65 do { \
7 m" n: v: ?) l) d5 }& o: a 66 OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
9 W1 a) ~2 g+ ]7 Z% u7 ]" p) i 67 } while (0)7 ?% |. X# J" G/ _
68 2 D+ n" n7 Y) \8 ^4 t) J
69 #define LOG_FATAL(format, ...) \5 {: v; p7 {/ {+ ?6 x
70 do { \
8 [6 d4 |, S1 |$ b- O* g3 s7 Z 71 OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
: z$ {# k W4 V7 c& C( K 72 exit(1); \
2 A0 `% e) [) O$ `$ x$ u+ B 73 } while (0)
! ]2 ?; f7 a }% y6 e 74 0 R9 s0 f. z+ S+ s( h: i
75 /* Assert */$ N3 r8 u- l, J# p
76 #define ASSERT(EXP) \
' h- n, q9 Z1 s3 h) y/ z4 n' H 77 do{ \6 y' J* h. n3 b$ J' Z p
78 if (!(EXP)) { \
0 C( B1 L: E4 @, f# q$ t 79 OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ ); \8 J) T3 L9 |" ~
80 exit(1); \6 D6 T/ L% `# q( Y2 F4 N- L2 M' R& E) p
81 } \
; Y& Q' ?+ f+ l( N 82 } while(0)+ r5 S1 \2 i' \( p) ]- E- l5 P
83
4 h/ q3 w2 i, `1 l+ f7 H4 F 84 #endif( X1 x- M7 @, a" n$ Y
|
|