|
|
1 #ifndef _LOG_H_
/ V) [8 e8 {; E$ a& @ 2 #define _LOG_H_
2 H% E- a: a2 r; H1 y 3 ( N$ ]. h8 x; T, K) o
4 /* 0: printf; 1: UART1 */% E) e; h7 a3 f7 \. F$ x/ j) j$ G
5 #define OUTPUT_TO_UART1 1$ F( G2 J8 W$ n0 z3 V. `
6 $ C. D& Z U# k# ~& s( Y! z
7 /* Switch Log Output */3 E) ]/ m. N) b' B
8 #if OUTPUT_TO_UART1
, V& e( U+ l! m0 g& f 9 /* For UART1 Initial */
. e6 F, a# D, E9 A2 y 10 #include <stdlib.h>6 ?6 R; J- \$ C7 B( C' `7 S
11 #include "hw_types.h"
, T2 ?3 }8 O- C/ {- T6 w; q5 \ 12 #include "hw_syscfg0_C6748.h"$ z: _( o! ~' B% i; B
13 #include "soc_C6748.h") Q, A- K, d g' ?. b/ C
14 #include "psc.h"
/ v9 j+ A& x( T' J 15 #include "gpio.h"
9 U7 L: F1 C3 y8 `7 C+ U 16 #include "uart.h"
; J- ?$ T8 T! `, k$ u2 H3 i 17 #include "uartStdio.h"
) |" r2 \" s: B5 x% M: z 18
# A% _+ _- F' [: x 19 #define OUTPUT UARTprintf
9 B2 l9 g+ r c* A+ T 20 #else
( @7 }0 X- W. Y& H7 o 21 #include <stdio.h> G5 W) X2 ]# a0 `
22 #include <stdbool.h>0 M% S8 I# S0 }
23 : e* T5 H1 ]- o" @
24 #define OUTPUT printf
' x) w0 L. l: _* p6 [% x# i( c2 c/ ]2 j* q 25 #endif: m& Z0 n* I3 [' Z( W5 J6 w- n w
26 T& Z9 Q+ t0 C$ J# J
27 /* Log init */7 ^ \# Q# b- X& n9 ]) p- R, M2 n
28 #if OUTPUT_TO_UART1! w! @ O( t2 w- Q9 D2 U$ q
29 #define LOG_INIT() do { \
- b: K- J( Q- v/ E9 s! P 30 PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, \; }9 M7 R7 N9 O$ D0 v
31 PSC_POWERDOMAIN_ALWAYS_ON, \6 ^& H5 j1 o9 a5 P/ K* M+ J
32 PSC_MDCTL_NEXT_ENABLE); \& m6 F: i. @: F. b) Y4 D
33 GPIOBank6Pin12PinMuxSetup(); \
. W" e5 V0 J8 r1 B( q+ d+ ? 34 GPIOBank6Pin13PinMuxSetup(); \
; S* d; B, S( T+ w( s, z 35 GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT); \" f6 |0 z! ]! `$ T2 A8 K& y
36 GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT); \
* v# f1 o! E: d! w& H0 A* t 37 UARTStdioInit(); \7 T4 X/ G+ o7 g' C( r- x) \( D0 y/ Z
38 } while (0)- ^- {: f8 A3 ^7 Y8 T! e. M
39 #else+ L3 ^0 U: {- J
40 #define LOG_INIT() do { } while (0)
+ l! }* i. |5 p- A( N' ] 41 #endif& G1 j3 v5 g0 g" t' i
42 7 v" C0 s) H9 I8 B* r) u
43 /* Log Output */
: w( c g) ]% P& z- `1 p4 h 44 #define LOG_INFO(format, ...) \$ g' J; Y: p% J+ q
45 do { \! T3 \( g" h# r% s* j9 s/ ?8 @( [
46 OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \0 I+ z8 p& M/ P* n* l
47 } while (0)
# L- Y- p$ }% v' ~, v# y, B* ` 48 $ c8 U8 W q4 ^* J) v
49 #define LOG_ERROR(format, ...) \
/ w' }. X3 l( ? r% Y8 i; H 50 do { \
+ {1 I8 p; V! v5 A 51 OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
* m7 y1 M0 P9 R) ?7 Q9 H+ C3 L 52 } while (0)
" N* H3 A; N2 r! i w* F& { 53 ' c8 V. L2 N1 {" D
54 #define LOG_DEBUG(format, ...) \
) j2 G. Z: |5 d8 s* a 55 do { \" l D, \. D) U8 N9 h
56 OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
% y. w p6 d# F$ v, Y+ a 57 } while (0)
; X$ x+ K9 \0 h 58
4 h, n- @8 N; D% Q" ~ 59 #define LOG_WARN(format, ...) \
3 m6 V& N- z( p3 u2 A8 a 60 do { \+ ]- n9 ^5 n2 N: k( t2 {0 s8 M
61 OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
1 ] G7 r8 }- {* J5 a 62 } while (0)' V1 q' p8 F7 J" _" I1 @
63
3 R8 N, W6 o6 |9 \ 64 #define LOG_TRACE(format, ...) \
" `1 k2 Z; N8 j' n/ s1 q 65 do { \
|0 b# a$ z% x9 ~) y% P 66 OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \4 P7 `6 d# G1 u, M; `
67 } while (0)6 ]4 q; Z( i- g _
68
8 g6 `& K0 Y6 N% A; R( C 69 #define LOG_FATAL(format, ...) \
4 c! U! \! T7 V1 U1 z 70 do { \, `! P( H* k' T
71 OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
5 t4 L0 R( ]4 g- q4 N 72 exit(1); \7 V: o2 p; V! }5 l; o
73 } while (0)! ~. h& v5 l. S% H
74 4 U3 t4 ]3 ~* `+ ^
75 /* Assert */
( f+ L, D0 V+ }* e2 I 76 #define ASSERT(EXP) \
" h$ q- d! A! R. m! D 77 do{ \
0 O5 z1 Q( Z- H% K3 d! [2 b9 r 78 if (!(EXP)) { \
( ]+ v5 w; R) w. I 79 OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ ); \. s# l! z- n4 k9 s1 V( u1 L
80 exit(1); \
: z: n0 A5 J6 N 81 } \* e1 r- v, b: F1 x
82 } while(0)9 k# A7 W$ Y( H+ h6 ^
83
/ x' B3 x. ^+ G8 E. t 84 #endif! L( x; u1 a* F; ~0 q+ l
|
|