|
|
1 #ifndef _LOG_H_" V2 J8 [$ H! x: N! q2 Q0 j7 G9 ]
2 #define _LOG_H_
9 K- U/ @9 M5 v* @/ s2 C( n 3
$ F+ O6 f/ F' Y. n 4 /* 0: printf; 1: UART1 */
* a- ]& P/ {+ n1 {3 H7 O: E 5 #define OUTPUT_TO_UART1 1/ l& _& I1 @# M% r3 l
6
" j: f" c3 k$ Z S 7 /* Switch Log Output */! R- d D& s9 w6 _* l+ n3 W1 [6 |
8 #if OUTPUT_TO_UART16 B+ g' J* m/ X; s( ]
9 /* For UART1 Initial */" E) {8 n- B; l I6 d
10 #include <stdlib.h>% n2 t3 K: Z# H. f
11 #include "hw_types.h" 2 K7 X! _+ I9 ~) l4 k
12 #include "hw_syscfg0_C6748.h"2 Z( d$ S' m+ S6 n5 ?7 N0 s ?0 T* G
13 #include "soc_C6748.h"* X% i; D: j- L/ w& a0 [5 ^
14 #include "psc.h" + M$ \' w5 ~( E) H: k3 n
15 #include "gpio.h" : K7 n/ G! K' ~) ~4 @* Y3 e8 l
16 #include "uart.h"7 D4 V( I% s: ]3 X# A" A1 p
17 #include "uartStdio.h"
% I6 S+ t/ u: P7 S! w( I* q. F 18 " U; Z& O/ k+ f) @1 |
19 #define OUTPUT UARTprintf
! R4 F( n: `' `6 n+ l d) f 20 #else) m! a/ s/ q4 w
21 #include <stdio.h>
( f& J$ K& R' X. _( H 22 #include <stdbool.h>" O( q. Z m" ^: x; v+ U
23 # H7 L: V6 t8 F: P% T
24 #define OUTPUT printf
5 @6 B% G3 j' P) k; h& `2 e5 S 25 #endif; `6 W% V% P: b& G/ u' u
26
% o. S/ `5 w" C* B 27 /* Log init */8 P2 V- H, P8 E, A$ J1 N
28 #if OUTPUT_TO_UART15 P" {# @1 J1 t" O/ Y" c U% }( C
29 #define LOG_INIT() do { \! _5 O" Z- G2 v
30 PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, \/ v$ @) i1 R, u# p# Q( `: |
31 PSC_POWERDOMAIN_ALWAYS_ON, \
! q0 n6 |% l. Y+ |3 U 32 PSC_MDCTL_NEXT_ENABLE); \0 k! m/ d$ k. R
33 GPIOBank6Pin12PinMuxSetup(); \
! \1 r" b! n2 N; L3 T) a5 L- C: A 34 GPIOBank6Pin13PinMuxSetup(); \
+ S7 R% T% W! F' O0 B3 D 35 GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT); \
: R. [7 a! ^1 I; N5 q1 e7 N 36 GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT); \
3 L. y$ R( i: g2 L5 ^2 [1 L/ p 37 UARTStdioInit(); \: G/ Z1 c! `& ^: W2 I
38 } while (0)& I9 R3 N/ q8 r
39 #else1 d* Q4 P5 _& u r$ W9 ~1 R
40 #define LOG_INIT() do { } while (0)
2 M/ ^) J3 \- F, X* r$ u( N 41 #endif
/ G+ Z4 r: p9 y 42
, e% n' F1 T* ]2 Q! f( U* ~0 | 43 /* Log Output */
s. b% `0 f3 B a& D5 _ 44 #define LOG_INFO(format, ...) \
0 h9 b/ A$ C7 f$ l# T# T 45 do { \
8 u7 `% I: B9 f$ ~# T! K$ f/ g1 _ 46 OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
0 q& B# j: J. y, J# `1 v- D 47 } while (0)% J7 p$ @7 E* o3 T# M
48 i [* i6 U1 t# j. H" F8 i
49 #define LOG_ERROR(format, ...) \8 j c" U5 p% l3 D- U# ~
50 do { \4 O8 X- F; _' A! t* Y+ W9 j2 J, A/ a
51 OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
! S3 J6 O: o# f) y. G1 R P 52 } while (0)
0 _7 _' C6 t% ^* o$ y 53
& Z& Z, W, n* ^& W 54 #define LOG_DEBUG(format, ...) \$ H8 W% J7 v6 z y. P5 |
55 do { \
" y R0 r+ E+ a1 W 56 OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \& H& C5 ]* m% t4 F3 a0 y
57 } while (0)4 w& i! E: u& j& s) J/ K: `
58 ( w: u! f7 B ]2 ~
59 #define LOG_WARN(format, ...) \& v% R$ W) N2 t* K
60 do { \
: t1 I- g* |5 L: P 61 OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \3 z4 t$ g$ w5 Y% P
62 } while (0)
2 E" y5 I c: M 63 8 u O/ r/ R0 A7 G# w+ F. O4 M
64 #define LOG_TRACE(format, ...) \( N* [& r. M3 Y; c n3 J0 A2 r( r- C
65 do { \! q; r; k' Q7 J4 E
66 OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
4 ~+ J8 U1 h Z3 d3 b 67 } while (0)
f+ O& O& L3 N3 n1 P 68
* q7 c0 {3 a4 y& Z. T+ n 69 #define LOG_FATAL(format, ...) \
9 z0 G, f7 H8 W% p& E N 70 do { \
9 W5 g/ t' M9 G$ H/ u 71 OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
* n/ ~& @7 i9 c J 72 exit(1); \" ]7 h# R( j8 M/ L+ Y6 S
73 } while (0) x9 o# H2 ]% _: Y. f. |- w
74 ) m1 L. E3 q% n
75 /* Assert */
5 [+ I+ C$ i; H+ E e; F 76 #define ASSERT(EXP) \
/ d5 t6 U2 E7 o 77 do{ \* o1 K, k. D8 E# f; i% z
78 if (!(EXP)) { \+ B+ x0 t* P3 ^6 f$ n
79 OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ ); \6 k; N6 @" r* X) Y
80 exit(1); \
x4 |$ X5 T! \: r3 T- ?4 V3 \ 81 } \
* m, k& l; O. z+ Y 82 } while(0)( O- v3 V! L/ [& y/ e. u& R
83
! E& G0 o- M- u 84 #endif
7 U! T% ^) J5 ^; \$ I |
|