|
1 #ifndef _LOG_H_' r' a/ R! s' P# n" E
2 #define _LOG_H_
, X; V- p4 R7 z" X# ~2 ? 3 6 x5 O' a8 j( H$ M7 x; ^+ t
4 /* 0: printf; 1: UART1 */
, T Z/ I8 r3 H G 5 #define OUTPUT_TO_UART1 1
" D* {! l- w6 L# }" @! X% _ 6
" @/ [5 L! Z' s5 G" N$ g, x) ? 7 /* Switch Log Output */
9 W3 i. B. r! `1 [ 8 #if OUTPUT_TO_UART13 H& |0 `2 Q$ j+ V
9 /* For UART1 Initial */7 [. Y# z3 f% p5 l
10 #include <stdlib.h>% _( [9 g4 |$ X+ A
11 #include "hw_types.h"
_% N! E5 Y) ]) ? C' |0 m 12 #include "hw_syscfg0_C6748.h"
" c5 C1 B9 \2 z4 Y; y' m 13 #include "soc_C6748.h"/ G0 H) [' }( ?
14 #include "psc.h"
: |) \1 ?1 S5 h$ C! s- m7 ^$ C 15 #include "gpio.h" ) ]' U6 y8 s+ N
16 #include "uart.h"
4 ]5 ^8 Z: v) P/ c @ 17 #include "uartStdio.h"
% ^4 M# G. Q3 j0 ?0 V 18
2 m2 ~$ j, j5 y) y' ?& ` 19 #define OUTPUT UARTprintf
- z2 a4 W, N% a 20 #else
5 O, A0 I; U8 f8 t4 c6 m9 B8 c% G 21 #include <stdio.h>4 K# h( @' T- c
22 #include <stdbool.h>
( B" i) E( z! G; e 23
0 |- L! j& P8 v6 ~5 d 24 #define OUTPUT printf3 r9 j8 j9 k, z3 _# I
25 #endif1 x# U6 c% L8 Z) G# F- i
26
+ [/ E: f* [2 X" M6 e$ O 27 /* Log init */
/ f' u1 ]/ Z& P8 k7 C 28 #if OUTPUT_TO_UART10 ~; J5 X4 k, k8 r- v
29 #define LOG_INIT() do { \6 Z E( w# v) F
30 PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, \' s. e- ], A0 p) w: d- F
31 PSC_POWERDOMAIN_ALWAYS_ON, \8 v9 R& d4 Y d, }3 x
32 PSC_MDCTL_NEXT_ENABLE); \: Q, I% o7 q( Q' I3 h1 b `
33 GPIOBank6Pin12PinMuxSetup(); \
' S" \- L9 g* }6 k- P" C9 K 34 GPIOBank6Pin13PinMuxSetup(); \
( R& ~% n8 k7 W, u. n 35 GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT); \
' ~5 A8 m7 s! H 36 GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT); \8 Z! B5 } }+ x: t* C- x
37 UARTStdioInit(); \' j7 e; e* J9 Q/ U5 U$ F
38 } while (0)
4 s8 r$ [9 p# E6 q3 M. m/ ? 39 #else! K! X! `3 k. H
40 #define LOG_INIT() do { } while (0)
' h" e& q+ u' c0 v! N$ A4 v( Z' \ 41 #endif
' i, a J7 `' p 42
1 P1 q- b' t$ F2 o( W% E$ t 43 /* Log Output */4 _9 S; C9 y! F- M
44 #define LOG_INFO(format, ...) \, ?+ J7 A7 J+ o9 M Y
45 do { \6 e, F1 Y* F3 F
46 OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \" A: a! ~. [- w. s8 V2 ~1 O$ j
47 } while (0)
) R* E& O3 w2 \3 C& z 48 - F6 S/ Y' k3 P. ^7 ?
49 #define LOG_ERROR(format, ...) \, y, {6 D# ?1 r8 ~" n6 j0 P( h
50 do { \/ o6 U# P9 @: ]7 z0 H
51 OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
3 c( t/ h- i# L! ~/ t; y7 K* ] 52 } while (0)+ V) y! U. a) G. s4 H7 P% c" u9 n
53
% e" a1 q0 w/ k2 ~0 v 54 #define LOG_DEBUG(format, ...) \# S: K6 l9 |: \/ U0 k$ ?* Z# n/ _
55 do { \
( J4 D; _5 U/ z- q 56 OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
5 P* r0 q; I+ q6 K& q! a: Z* X 57 } while (0)
7 r3 C; I, `0 f/ Y 58 ?5 _' e. m/ X' [
59 #define LOG_WARN(format, ...) \
' s2 |5 O2 f/ s* J! ^! @( V 60 do { \* A6 L2 _% y* `) G* e
61 OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \2 E! W0 S f/ h" n2 @4 r
62 } while (0), m! e: U' e& E% A: `: G8 q
63
/ y5 D" \( O# v3 D+ w0 N" K 64 #define LOG_TRACE(format, ...) \
. R6 g$ ~& S0 U# N( \$ u9 P' u" U 65 do { \) y6 {& A$ c3 D
66 OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \" r) N" t- m4 u! A" u% e
67 } while (0)' O8 K, t* ?( g- L# z
68
$ ]: H8 g0 U1 E4 q7 R 69 #define LOG_FATAL(format, ...) \. j- D2 }0 z- U6 `6 v. }) p
70 do { \& o. O1 } i6 ~3 O2 e3 p
71 OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
2 F. s) l, B- Q# r; E9 x* w, i" A- Y 72 exit(1); \
% s0 |+ B* b6 J# q! K 73 } while (0)9 h3 z, ?% z1 W, M7 @) N
74
! ^. E6 r" @, k# q8 e 75 /* Assert */
- e4 Q* q2 }4 v8 d 76 #define ASSERT(EXP) \4 U( R5 ]3 ^9 `! }
77 do{ \# U2 Y/ D/ N/ c0 j/ U
78 if (!(EXP)) { \3 I" L5 |7 K. b$ m ]# r
79 OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ ); \
! g5 e* n* \& h, I; ^0 s 80 exit(1); \
6 n" T( F! N+ s& c 81 } \
* e* l* @* E1 @8 n1 C 82 } while(0)7 Z; N4 [+ a4 I7 b$ _% x$ F* \
83
+ F# ~ U: m v% e 84 #endif
& f# \5 i2 B% j. P0 J |
|