|
1 #ifndef _LOG_H_
2 y7 J3 N# x; b, @ 2 #define _LOG_H_
, c8 t, ^3 R: q8 f$ g' V; O: r 3
# |1 N" P/ K& t R5 N$ _/ u 4 /* 0: printf; 1: UART1 */) R( k1 p2 I; O% U. e& ~
5 #define OUTPUT_TO_UART1 1
& d4 L$ J* {5 ~ 6 1 ~2 _) E8 k Y+ c, `
7 /* Switch Log Output */- B. Z7 ]' p$ n& ~# R
8 #if OUTPUT_TO_UART1: B/ o4 a- P( ^4 n) F7 t
9 /* For UART1 Initial */9 K' s' @( b5 ?5 b
10 #include <stdlib.h>
, ~8 n& ]& f8 e, ? 11 #include "hw_types.h" 9 T; k3 }. N7 g: F! a: w; d0 [$ o |% c; s
12 #include "hw_syscfg0_C6748.h"- K- t8 }% m7 J7 U* s3 L
13 #include "soc_C6748.h"
2 b# ?5 |1 w8 A 14 #include "psc.h"
s' N: P3 O" t& d7 \; w 15 #include "gpio.h"
: l W; E) T4 s# a4 N, g7 r0 D) z 16 #include "uart.h"
* I3 F1 M; _+ Q8 a8 X# ]7 f( T1 i5 c 17 #include "uartStdio.h"
9 Q! E9 z8 ]6 R2 f1 Y 18
9 C8 a/ }( D6 }) c+ k) B 19 #define OUTPUT UARTprintf
' h* i& l9 k8 C8 U 20 #else
) g0 X L: _! z5 }" f3 l 21 #include <stdio.h>. N4 U7 E9 j1 F2 P. w
22 #include <stdbool.h>7 \" J7 {2 i9 q6 c
23
0 }2 z! _* ~ ~; b5 N: u, } 24 #define OUTPUT printf) r/ B( t4 D" D& j/ ~2 }2 K
25 #endif& C# T: u- u" E8 t" U6 w" y$ U
26
: e9 k. j2 |: g4 j4 e 27 /* Log init *// j3 G4 k1 E8 M% o s5 H
28 #if OUTPUT_TO_UART1$ l! w* {' @% W
29 #define LOG_INIT() do { \
6 W: U K V- D 30 PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, \
$ J4 S/ s) U, ]0 }! [# z2 _ 31 PSC_POWERDOMAIN_ALWAYS_ON, \
8 U6 G' z2 M6 Q1 v. s 32 PSC_MDCTL_NEXT_ENABLE); \1 a: {! H1 S0 \+ b, \3 Q* m
33 GPIOBank6Pin12PinMuxSetup(); \% U" q5 n; i& ?$ ~& B/ |- I
34 GPIOBank6Pin13PinMuxSetup(); \
- d0 U, T' }% k. k. v4 l, D9 r 35 GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT); \) ~) s( T J2 d1 i5 }0 p
36 GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT); \
% Z) y0 ?) A# [7 _( p; d5 i/ i 37 UARTStdioInit(); \
w/ D) s+ H# z1 m7 m) |* J9 { 38 } while (0). e+ _. e' d; R9 Z
39 #else
' W3 H1 H) n# m9 O* y& k 40 #define LOG_INIT() do { } while (0)
4 X. Y. O& y2 P$ S, r5 e8 ]3 g 41 #endif
4 L' }6 p5 s9 J 42
' B1 \7 [. O5 e5 S+ l7 U0 S 43 /* Log Output */' |" i4 I H' K# T: E) j6 l6 M
44 #define LOG_INFO(format, ...) \, I8 P9 B6 m. l D8 ?( J( U! w
45 do { \
7 Q1 g Y4 `/ v. B4 R) y: Y 46 OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
( a! l: J( C- L* Y3 K 47 } while (0)7 V% p$ I K3 D9 w
48 ( N! i8 e' x( K! y6 v' f( v `
49 #define LOG_ERROR(format, ...) \ k; |! {; Y$ |! x6 @$ w: A3 M
50 do { \# u) P- S% u* \7 X9 Q0 Y" k& ^
51 OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
* W! ^) v0 {+ n [8 r, i6 s" p 52 } while (0): a* U$ ~" [- x. B
53
9 `* V, D3 b$ E( f, X! L 54 #define LOG_DEBUG(format, ...) \- K+ G! [! o" F+ f
55 do { \: Z* M: z y4 [6 h+ w5 b1 N% ?
56 OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \( e; P, p- r, O, g4 a
57 } while (0)' C, B) \( {4 m% I& e/ [& `1 F
58 # r6 m |" K) ^6 D; E& R, x
59 #define LOG_WARN(format, ...) \5 B: @, X- ~& v$ N/ B
60 do { \# H% e$ n# n2 p* s3 u4 i
61 OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
0 I4 o3 I6 w3 [8 D8 ? 62 } while (0)
" S/ H1 M1 N0 g0 O 63
* |' t: \4 n! f4 a 64 #define LOG_TRACE(format, ...) \2 P! Q/ h! p0 J' u' N
65 do { \
; K2 D7 N! C$ @8 X; l2 V5 ~ 66 OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \! L. j# L9 e( ]4 ~ P
67 } while (0)% j, S/ L( Y$ l) I
68 $ w# L* V, B8 V. q
69 #define LOG_FATAL(format, ...) \! @, o9 c& ]4 ~" ^3 [/ x
70 do { \4 `6 r& s( l2 ^% s# |6 y. H+ G) {
71 OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \2 S' p( Y6 J$ n* L- h- h) [4 @
72 exit(1); \
1 ~! j' v) u- y+ q( ^% D6 z 73 } while (0)
: M( N' Z: ]' y* @ g 74
4 w5 |- i8 ]. V. B- g2 n 75 /* Assert */
" X* Q" O6 N8 N8 o 76 #define ASSERT(EXP) \
3 Y( K. b: Q6 O' e 77 do{ \
0 u# B3 L V% e' O0 V! U8 W 78 if (!(EXP)) { \
- ^% C$ c; D& _/ h 79 OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ ); \% w; M4 ~9 `) G( c* W/ _" W# ^8 T
80 exit(1); \
) A2 U# z3 V2 |. j0 j/ C1 j 81 } \' l1 Y/ |& v K `: W
82 } while(0)" S2 r; q( P: T
83
" O1 g( G6 Z( B' B3 ^* f& h9 v8 S 84 #endif5 I7 {% }& ^; b+ T
|
|