|
|
1 #ifndef _LOG_H_
# I/ h+ h; F% o G' r 2 #define _LOG_H_
2 J! Y2 Z/ ]+ b" _' }0 P. P 3
" s+ q0 S3 A# D$ @, n+ H4 H8 Y* ]# h! N 4 /* 0: printf; 1: UART1 */
3 g$ G2 T g6 p 5 #define OUTPUT_TO_UART1 1" j% ^/ K3 I/ w" s
6 . q0 A5 n. M. {; ~9 Q" q3 b4 J
7 /* Switch Log Output */
5 z/ I) `0 j: r& f) R7 e 8 #if OUTPUT_TO_UART15 ~0 z. T$ L) t
9 /* For UART1 Initial */! ^9 z4 Q9 N3 V3 r) Q# u: I
10 #include <stdlib.h>
/ Z. K+ b1 j! e0 M 11 #include "hw_types.h" ' L$ c4 L+ F) _! |8 d
12 #include "hw_syscfg0_C6748.h"4 K" c9 p5 g- A( c! {
13 #include "soc_C6748.h"
" Q# k8 O2 F$ T: C! ?+ X5 X0 @ 14 #include "psc.h"
% y9 Z% V3 N. |( F% r; ?$ F 15 #include "gpio.h"
) ]- G2 F9 D6 F- h 16 #include "uart.h"1 `) I; a; W. X D
17 #include "uartStdio.h"; E. J/ p' I6 @ |0 t- ?" e; Q* ]
18 ! r. O" G. f1 g% B- `3 M6 u
19 #define OUTPUT UARTprintf- \* f- ]7 n' f& Z6 j) D
20 #else
- I+ M/ e, [; _ f+ y* ? E 21 #include <stdio.h>9 I& a8 Z- n9 R: ]
22 #include <stdbool.h>
% C X/ A1 e# N$ ^ 23 ' g. [+ h3 a6 w1 A2 ]4 u6 S
24 #define OUTPUT printf" E% e3 a) K" G
25 #endif
. J, i A% X: E! {: w 26 ; _3 a9 Q1 q' g( _' m. b
27 /* Log init */
! O: Z" E0 C6 v, l4 m. B; w 28 #if OUTPUT_TO_UART1
2 R/ O8 b! I, v& S7 _0 k 29 #define LOG_INIT() do { \
4 j+ Q& ^, A, {7 N" ` 30 PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, \
# x1 Z- m Y7 C+ h2 V2 |* E 31 PSC_POWERDOMAIN_ALWAYS_ON, \; F6 @0 x; j, C* q0 A7 D0 z
32 PSC_MDCTL_NEXT_ENABLE); \
: y `1 ~) M* L. @. ]1 g 33 GPIOBank6Pin12PinMuxSetup(); \
, b" a0 P9 y; p! Y( ~9 d 34 GPIOBank6Pin13PinMuxSetup(); \0 `3 E3 N2 d+ f( O
35 GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT); \& u; B. A' x8 ^2 }
36 GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT); \2 f- t/ e$ W2 p, `" t
37 UARTStdioInit(); \2 v! U. N' G: B6 F0 }# {
38 } while (0)
9 P8 z7 S8 }9 B# ^3 V" b0 _ 39 #else0 \+ Y4 W: w0 G
40 #define LOG_INIT() do { } while (0): h, q* E! \0 k9 Y8 d( W
41 #endif
, H5 S( V$ n9 I 42
* b" y {% j) u+ t 43 /* Log Output */" |2 E; ^0 M$ F: g& q
44 #define LOG_INFO(format, ...) \
# l1 g% C7 z, ?6 Q# \ 45 do { \9 d: g4 Q3 z9 c( Z. g
46 OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \ m! Z$ N, S) f- s' a+ C
47 } while (0)0 A% j3 G, m/ ^) E' t
48 1 w4 n+ ?4 w( |) F5 V8 C
49 #define LOG_ERROR(format, ...) \2 d, {. d1 E! l6 v1 O( x& r8 T
50 do { \/ w$ V. Z7 n# X# e' |
51 OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
0 A+ y3 k5 `' m7 x 52 } while (0)
6 f- V' B# C |0 j, ?, X 53 4 D( C4 y8 c7 T, {+ o6 W N, ]
54 #define LOG_DEBUG(format, ...) \
- {: _7 Y- ?( M! W s 55 do { \; k7 ?! D) A: X: z8 i3 T
56 OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
9 B# B" X) V6 W! e 57 } while (0)
0 v2 w7 N4 t, l% _4 g6 e; X 58
8 f* Z# ^1 l+ N 59 #define LOG_WARN(format, ...) \2 o6 U* Y. L6 ~4 ]
60 do { \
! Q1 Y3 Z; d2 Q0 ^( N$ F 61 OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \0 U0 E T9 W1 S- \
62 } while (0)
! n; e. V% V6 h8 D! D( M 63
2 S" p7 U5 W1 H. N8 e/ M 64 #define LOG_TRACE(format, ...) \
B3 d, W9 U$ ]% d3 o 65 do { \
9 r" R0 y+ d/ _7 |9 {0 f H( ]/ U 66 OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
; }- y1 E& ^" s% b, N6 S4 Z 67 } while (0)
' _) _( R+ O, j0 p9 y0 X, z 68 5 c' D1 ~- o Q M C! i
69 #define LOG_FATAL(format, ...) \+ e: n" g( H5 h+ F. g1 R
70 do { \
7 r' u% `3 ^5 H: \+ M2 j: H 71 OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
. _) X4 X% a! L* D% a. a 72 exit(1); \" N1 H+ d3 i4 R% C( M. P
73 } while (0)3 Z7 G6 a+ \3 Y9 y5 _5 c
74 . v1 D6 C( o+ z2 ~ g3 [
75 /* Assert */
" g1 _& F ^3 T6 D3 \- z 76 #define ASSERT(EXP) \
/ Q2 a( T+ a9 I6 k# x7 U/ j 77 do{ \/ ^1 f9 f9 e3 \6 B6 U' _# K+ X
78 if (!(EXP)) { \2 U. X8 n* I+ w7 u( E' e- X
79 OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ ); \
" x# m- H% t w2 s 80 exit(1); \/ j8 V4 O8 k2 y
81 } \3 B; r: g$ U% C7 c
82 } while(0)' ?; y2 Y& s; {! |0 {1 g5 M$ O a
83 " U$ @8 ^7 e4 h' c
84 #endif& Z5 h* B3 B* C: c3 d* d3 N. b
|
|