|
|
1 #ifndef _LOG_H_" H C$ U1 K3 u! R0 U2 h4 g( a" S! K
2 #define _LOG_H_& X- \# ]$ }% i, b# _% ^# z
3 & R* B$ L& H% k- K5 d, J, G3 j, }- x
4 /* 0: printf; 1: UART1 */& c2 ] z- O; _5 _
5 #define OUTPUT_TO_UART1 1) e) H4 q+ k+ P5 N6 V8 ~
6
5 s, G7 @2 _( E* v2 l+ \, N 7 /* Switch Log Output */
! j+ c3 b; C4 n4 p) C* N8 F. K 8 #if OUTPUT_TO_UART1
2 |! Y2 A% N7 a+ @4 _, { 9 /* For UART1 Initial */
8 f" v9 r2 |; P$ T+ e% G 10 #include <stdlib.h>4 r2 }3 C7 t9 N/ M; w5 h0 f
11 #include "hw_types.h" 3 x ~6 B* n% ^& H* t
12 #include "hw_syscfg0_C6748.h"5 p6 V7 o3 r y! T8 t( r' M
13 #include "soc_C6748.h"
# i* m O1 H% o4 N" W/ ` 14 #include "psc.h" 0 N3 K' u( J6 [7 Z6 c# z0 q
15 #include "gpio.h"
$ k j: x5 U' K) `% g9 X 16 #include "uart.h"& d& x& k+ m( o; u
17 #include "uartStdio.h", @, B- Y$ g* U' O, Z9 c2 S) s
18
: a; V; K" j& u4 Q 19 #define OUTPUT UARTprintf
: |# P8 j4 h" Q0 |+ A 20 #else
2 I8 ^8 J$ b- l7 j 21 #include <stdio.h>
9 J% \0 N, Q) ~( h7 t 22 #include <stdbool.h>
3 [/ P. P2 T$ u3 Q8 ]( p 23 2 r/ H1 F4 A9 u# g& d
24 #define OUTPUT printf. J' h0 O- j. V/ h8 O
25 #endif: |5 W6 N& C c$ [" y
26
* B t/ b" S C5 Q) S9 n 27 /* Log init */
" |* O- G' M3 w; w 28 #if OUTPUT_TO_UART1& p5 h% H3 l- @/ w7 h
29 #define LOG_INIT() do { \1 ^9 X3 q; s1 ~$ b) C
30 PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, \
* R# j9 ]( j( Z+ V6 U9 N" w 31 PSC_POWERDOMAIN_ALWAYS_ON, \
( A' p" U& c9 k4 |; t, i 32 PSC_MDCTL_NEXT_ENABLE); \7 U. t& |* V9 ]8 m2 M
33 GPIOBank6Pin12PinMuxSetup(); \' [% X% c- s! m& [3 H
34 GPIOBank6Pin13PinMuxSetup(); \
2 D2 ^! D9 ?# L# L 35 GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT); \% S% L/ ]& d% Q* ]( ^: E
36 GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT); \) S' b; [ Q/ Z& S
37 UARTStdioInit(); \3 u+ ]9 n* A/ I1 M) F
38 } while (0)7 r$ R0 Y$ H+ {' x! {
39 #else5 T, U6 [' c! L+ E( y& f/ Y
40 #define LOG_INIT() do { } while (0)
/ x6 q6 B: w& [& Z6 i: c5 n* V" G: ] 41 #endif
6 v. R# e! t3 Q% C7 n( A$ L! q3 U 42
! D% [& C5 @, I l6 n% [ 43 /* Log Output */ d8 {5 P% X, G
44 #define LOG_INFO(format, ...) \
1 y8 r. H5 h! Y+ G9 a 45 do { \
d# f4 @7 Y( }( C6 K {6 w 46 OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \! `$ K& l3 g9 L# x) ?( P, N
47 } while (0)
( R) @! o" c6 x) t: y 48 3 h6 E) w7 c p a# v
49 #define LOG_ERROR(format, ...) \. p) H/ i2 C$ G& F8 J! w- i
50 do { \
! P8 V2 h/ e. ~. {4 \% ~ 51 OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \4 u4 ~' F; L) r9 Z
52 } while (0)
+ i. g" c7 `5 d0 @7 a 53
. P& b9 ?! C5 \( i 54 #define LOG_DEBUG(format, ...) \
; }, v) M) F- `9 _% x' a) w 55 do { \5 F( D, y6 N: r8 I( I Y5 n+ t
56 OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
% Z' | ]* a# g$ s. @7 N& a 57 } while (0)
( D9 ?# C) p9 u: {# E$ f 58 ) H- D* D3 m! g' z5 _1 g6 L0 D
59 #define LOG_WARN(format, ...) \1 }) g$ s$ S$ J7 F, C) v6 v* G7 w
60 do { \
& \: _4 o0 {9 L: |4 x5 {# U/ F0 M3 l 61 OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \& c ^ R5 L" q1 Y" y
62 } while (0)
J/ o( P4 l$ v8 E7 R 63 ( D1 m8 a( K* D c
64 #define LOG_TRACE(format, ...) \ k0 n% t' B+ y* d' S
65 do { \' P; r" I# w0 h$ E: d- d4 A
66 OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
4 @& M$ C: G. `+ ^. F% E1 {# T 67 } while (0)
' K% F/ E5 e6 `1 E 68 k5 z0 I7 N5 g$ ^3 r- e) V
69 #define LOG_FATAL(format, ...) \$ h1 m4 }' b/ l, R& N( W
70 do { \# c( u K- ]% G% P
71 OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
1 o3 f% U: S2 G* P7 C4 ^: E 72 exit(1); \4 R b2 d+ v( X' K
73 } while (0)$ X2 T9 K0 T+ X( P1 d8 B7 q
74 & L. `7 j* y4 \9 a. y8 _" G
75 /* Assert */( u, Q' l; n# g& M
76 #define ASSERT(EXP) \0 a' C. e5 z8 Q! T, p* l- N) b$ [
77 do{ \
7 q6 \! u/ a9 W* s a& G3 N 78 if (!(EXP)) { \
. m1 V; l6 u4 I* ?+ O" x0 t0 } 79 OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ ); \( N: D( P7 d3 b+ B: K4 w
80 exit(1); \
) ]1 d3 c6 Y8 W/ u p) ]# ^$ r8 W 81 } \* K7 u8 s, N2 b6 l8 _! ~9 `
82 } while(0)
8 Y, K% ~8 j( P7 b ]& | 83 6 _3 U% n) H( ^; P& r# U$ E
84 #endif' ?6 D# n+ ^$ C! |8 _+ L% A
|
|