|
1 #ifndef _LOG_H_8 k d; [$ H! a) |% L
2 #define _LOG_H_
# _- K0 t8 H5 V6 Y% q; P; o 3
0 V. R% u$ `/ A8 _; O6 c/ b 4 /* 0: printf; 1: UART1 */
& V1 I" ~' }! d" X. K 5 #define OUTPUT_TO_UART1 1
r5 L( n$ S2 Q 6 " K5 Z& v4 H+ \$ P. d( s
7 /* Switch Log Output */
0 t9 L* j5 ^- N( [ 8 #if OUTPUT_TO_UART1/ p0 {# n+ j) Q. r# Y
9 /* For UART1 Initial */
" _1 `. n. b# Q1 f0 T* F* R 10 #include <stdlib.h>& u8 v1 L5 V e. B) i0 x) F- I
11 #include "hw_types.h" ' ?) Q& v( p- G, c
12 #include "hw_syscfg0_C6748.h"; x9 g4 H& x. R7 V( N5 O4 S5 g3 E5 u
13 #include "soc_C6748.h"
: R+ E. x. g7 C( E9 \! H 14 #include "psc.h"
. x. J5 V# ~6 I- H5 o 15 #include "gpio.h"
I1 t- D6 c- u0 k. I- H5 d0 ] 16 #include "uart.h"7 ^* L; d, E9 j% R- d
17 #include "uartStdio.h"
8 q" ^" U! ]1 f0 e 18
! w$ `( s q( y+ ~& m; h9 p 19 #define OUTPUT UARTprintf' K4 b( @( k8 o* w1 f% j
20 #else
# y2 p& Y _6 V( e+ s( t% Q 21 #include <stdio.h>4 e, `, C1 x. p: e( y5 T
22 #include <stdbool.h>
/ Z1 ?( B o0 @3 W, A7 l 23
# A2 X) m) ~% c4 w" Q 24 #define OUTPUT printf9 L2 q; |( A' V, W+ v
25 #endif) P$ @8 p- k* ~6 v9 E
26
9 Z2 @* S1 ^' B' L4 p2 o 27 /* Log init */
m [; W5 Z1 T/ } 28 #if OUTPUT_TO_UART11 |1 w# f, L) \+ s6 l' X
29 #define LOG_INIT() do { \
3 U- L5 Y* w X. X% ]5 \. V 30 PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, \
2 q! j2 G7 L6 t) v& a8 D7 \. m! H B 31 PSC_POWERDOMAIN_ALWAYS_ON, \
) m7 h5 q# _+ V: _ 32 PSC_MDCTL_NEXT_ENABLE); \
: {' t* s: w3 }4 i# e$ R 33 GPIOBank6Pin12PinMuxSetup(); \! x# X9 _+ P: |1 f/ a
34 GPIOBank6Pin13PinMuxSetup(); \
9 Q7 s4 z% w! s! \ 35 GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT); \
$ m9 H2 w/ C J. b& C6 b% x 36 GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT); \
8 s. c5 y ^& F) m6 O 37 UARTStdioInit(); \9 W2 _$ W2 {6 J+ n2 b
38 } while (0)$ O3 [# s& C; v+ f8 U& i
39 #else3 Y W2 _6 f3 b0 Q4 f! i7 w. q
40 #define LOG_INIT() do { } while (0)
/ f2 G: W1 }8 q5 ^% i 41 #endif
! a0 t9 \% X( j( o 42 5 T) `1 m' z/ F, r. @2 a! f" J
43 /* Log Output */( k; y/ }" |" a! Z6 r0 O* b7 ` d
44 #define LOG_INFO(format, ...) \
+ o# n% m, Z: S) R 45 do { \( F9 R' I) @: u: d- I" G
46 OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \) i& L5 a# W* o: m1 \
47 } while (0)& s, q Q1 U8 P
48
6 J+ p' m8 l1 ?* j 49 #define LOG_ERROR(format, ...) \
# r! V" P* g7 [4 H 50 do { \+ t% L$ k* \# M) B+ d# T- I" T7 u
51 OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \* X0 _% b3 ^. C5 k' \$ S
52 } while (0)
) Z! t6 i0 _; W1 ]# a 53 - ]9 X$ E1 A" T: E
54 #define LOG_DEBUG(format, ...) \1 W! p( Y0 d' O+ ?! \0 j& P
55 do { \
% O# ] e% q. c8 R" Q+ e 56 OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \9 I& v2 J' N! N5 m
57 } while (0)( W _1 i& j( j4 b0 ?1 j( _
58
: Y9 d, I* f& J( {3 k 59 #define LOG_WARN(format, ...) \
- ? c6 y! _2 j% Z# R- I" n 60 do { \
+ M7 [( f j% K& {: @# A( M4 | 61 OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \( Q2 P4 T) i# s# Z( R; J
62 } while (0)4 N* Y' @& O" t' @+ K( ~# e% z
63 . j- j! R2 m6 e& ~$ v6 j
64 #define LOG_TRACE(format, ...) \, _2 y/ z! {+ }" U
65 do { \
5 m; O1 G% `# k, ~+ ? 66 OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
" n- g/ ` g* s6 u: _% J1 @3 M% D 67 } while (0)
: u; X: W8 H7 d5 j$ j) N: a 68 1 Z, @1 k, m ^6 J& m/ o
69 #define LOG_FATAL(format, ...) \
5 {6 H/ P0 y: T 70 do { \
! ^6 _* k( S1 \, a 71 OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
: g) ?5 @& Y' ? 72 exit(1); \
) E' w- i4 ~+ B2 ^ 73 } while (0)
- s5 f" ^+ ?& d7 x" ~ 74 8 O3 { t4 Y* ~/ d, f! W+ W5 @5 Z
75 /* Assert */
" {; s6 ?; @, @- [; L7 L4 l 76 #define ASSERT(EXP) \
+ ^5 x5 G: W7 [6 n 77 do{ \
6 R* e0 D: a! ]; m& d 78 if (!(EXP)) { \5 w6 m: @+ r% ]
79 OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ ); \, X" z/ Z9 a$ d n
80 exit(1); \5 v# I& q( i! c, T$ \4 Z$ |
81 } \
+ @1 B' e: H7 z. e0 c 82 } while(0), i R7 Q r, ?0 f' Q+ v
83
8 ?3 O+ B) x; B 84 #endif
# {1 R5 V: p8 d# I |
|