|
1 #ifndef _LOG_H_
/ N) ]3 {( v* a. G 2 #define _LOG_H_% t0 f C9 }5 i
3
; G8 z6 c, _ C) w* o 4 /* 0: printf; 1: UART1 */
5 N' D" R1 e s; {9 o5 P# @ 5 #define OUTPUT_TO_UART1 1
9 q1 f3 f2 s- E; { ? 6 L/ |4 j, ?' p3 G0 ]! W l5 Y- ?
7 /* Switch Log Output */6 ^ J7 J3 Z3 [' E, _2 _5 @
8 #if OUTPUT_TO_UART1
. b& u! l% `, G5 B" K 9 /* For UART1 Initial */& n6 D: z! {1 v/ o5 y \
10 #include <stdlib.h>
; _1 g; ?, L% P 11 #include "hw_types.h" + K1 Z6 k' X7 T$ W$ N
12 #include "hw_syscfg0_C6748.h"
% T' m& U6 u% w: [. C+ o 13 #include "soc_C6748.h"
0 M3 N) R9 W& | B: a t, b 14 #include "psc.h" G. m& t& p& r9 A
15 #include "gpio.h"
( x% W9 W7 i) R 16 #include "uart.h"
1 ~7 v% p% R! ~! K& g. c 17 #include "uartStdio.h"
9 Q$ |! S- X8 T9 H3 v4 ~ 18 ! R4 N# ]/ b8 \+ B
19 #define OUTPUT UARTprintf
" Z7 x' `5 `- }* s 20 #else
0 P: `+ p4 ^; T0 {" M% i# o) O3 K 21 #include <stdio.h>+ p: I9 w, y, a( w/ `. k' X
22 #include <stdbool.h>- G9 f8 V( {9 H8 N& {
23
( l N. i: g# t# m5 \- s 24 #define OUTPUT printf
' s+ }, Z, h. r! W# F3 z 25 #endif2 F) V8 n6 \, v4 p
26 9 M* v! d1 t% h$ v
27 /* Log init */
0 s# T4 a( ^3 |# ?2 S. e$ X) _ 28 #if OUTPUT_TO_UART1- j' p4 y4 P: i$ F2 d2 k3 f
29 #define LOG_INIT() do { \" |. |, C8 Z r, e4 B+ c" n
30 PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, \! G- u7 Z8 S$ m% X: v
31 PSC_POWERDOMAIN_ALWAYS_ON, \1 W) s/ ^- ~0 ~9 J2 o& o
32 PSC_MDCTL_NEXT_ENABLE); \
, s, {7 R9 @. p: t3 T& s4 A* @ 33 GPIOBank6Pin12PinMuxSetup(); \
) e" f4 {7 z: a/ M 34 GPIOBank6Pin13PinMuxSetup(); \- J( c3 _* x% S$ f, j0 q0 W9 P
35 GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT); \' G5 Y4 V# x6 S
36 GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT); \
/ x. K4 r1 Q( M r# w8 M$ f 37 UARTStdioInit(); \# D# f- O( [! y) b/ F$ I
38 } while (0)' ~+ V ]! U+ s
39 #else! Z" o' ]2 F/ h$ Y) g; a- e
40 #define LOG_INIT() do { } while (0)
& k; G7 @ f5 m4 N0 U7 N, k# I( \ 41 #endif
% `" `$ j1 W- r0 t( Q; d& f1 y 42
$ D2 Z+ a8 b W: S- T& y; [ 43 /* Log Output */
9 q" l" Q) U" Q5 m: { 44 #define LOG_INFO(format, ...) \
. }3 x N2 m+ Z- o; r 45 do { \. p0 T( U8 v" J/ D! p
46 OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \9 Y* o8 K& t! l4 H1 `
47 } while (0)7 n/ H" a6 W; b; r, H9 x' u" z: O
48 * c# c2 G$ U/ I, J' W# Z7 P2 [
49 #define LOG_ERROR(format, ...) \1 K8 V9 q0 ]: u; P! f- {4 v
50 do { \
. X" _0 B' _5 n 51 OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
3 A9 Z4 e6 c" P% z; R' Y0 M 52 } while (0)* x& I) |2 f& h6 R
53 # b8 w9 e: G0 Z# Z" b
54 #define LOG_DEBUG(format, ...) \
( C6 i) x I1 A: @5 ]" r 55 do { \' |7 W5 \$ P Z; Y
56 OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \6 W) H" ^9 J" Q
57 } while (0)
6 [( D. n, b5 q' d, D. d l9 F/ R 58 ) i- @$ ~# e& h. y6 ^6 ]
59 #define LOG_WARN(format, ...) \0 K" E/ {' W) S. i- Q
60 do { \
- n8 c$ ]. G: E( m6 \' T( j 61 OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
+ t; z3 y C# p# u9 Z 62 } while (0)
8 e/ B: K# J. p- w7 E 63
/ x, E2 G! Y) q" X+ p% Y 64 #define LOG_TRACE(format, ...) \
2 u! q A5 ^) B* H3 W 65 do { \8 M( C# i, |# y0 c5 O8 S v
66 OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
3 i; k }# z; B- [( X 67 } while (0)
" N: i8 a" c, Q/ G. [ 68 G# _+ C/ {: E- V- w4 Y' c8 g
69 #define LOG_FATAL(format, ...) \5 I( h3 S% Q; W) p8 {8 k/ F
70 do { \! H3 w' P' I) G' w, H% p9 E5 x
71 OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
# X5 m, p$ P1 b' _# Z 72 exit(1); \
8 h5 O1 O9 }- o; O# @9 v 73 } while (0)
/ s! Y, a# t1 \9 ~- Q9 Z% F 74 ; b% i/ i9 C5 ~: J
75 /* Assert */6 j" O( B, Q& S; t* B5 y
76 #define ASSERT(EXP) \
, e4 `! @* w+ G% o. O 77 do{ \1 v- p* \3 O! X% Z$ K+ o
78 if (!(EXP)) { \
* V. V |% o) u6 P/ j. {& f7 U 79 OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ ); \0 d. I I; {; o' n
80 exit(1); \3 ?1 L+ j& Q( d
81 } \
' ]( f6 ^1 t* X 82 } while(0)/ J! r" U% n, z
83 * _" I% p0 m% x( I
84 #endif
) `4 R4 N; F% t( {4 D |
|