|
1 #ifndef _LOG_H_ R9 K- ` O- n
2 #define _LOG_H_- _# _8 S, x" i9 Z1 f
3
` l$ ?/ i8 t N! }) c$ w9 d/ \ 4 /* 0: printf; 1: UART1 */% q/ f K1 n! ?/ m
5 #define OUTPUT_TO_UART1 1
8 i0 J4 x% L0 G/ k/ d 6
% D* C" U* h; U- \ A3 j 7 /* Switch Log Output */
1 Z6 ]9 s6 b1 _! k1 Z 8 #if OUTPUT_TO_UART1
6 ~0 z/ H2 w: ]# [% S$ ]# H- N; P 9 /* For UART1 Initial */
# _ ?, i% J* a' d# j 10 #include <stdlib.h>
! r0 b, b0 {6 U: w9 U 11 #include "hw_types.h" : Q" v. T% M" K/ y
12 #include "hw_syscfg0_C6748.h"
& T$ N# S* ~* o- O/ c6 k$ c% x 13 #include "soc_C6748.h": v: N" j& H+ x7 ^. x8 y: r& W5 A6 w
14 #include "psc.h" $ |& ^: L1 k) @5 [) j" t
15 #include "gpio.h" $ U; }' |: f* z- l5 }, B0 v, ]4 j- y
16 #include "uart.h"
. S+ A' A+ h4 h5 B& E# q( n' m6 t 17 #include "uartStdio.h"
" X% n/ c8 S5 F/ @* T" ?* r9 V 18
' K6 X- x: R U* g& o 19 #define OUTPUT UARTprintf A' N9 Y q+ n Y
20 #else
. t+ m2 o! K9 m, J 21 #include <stdio.h>
; s! H; T7 Q% D2 V) w4 ~+ L 22 #include <stdbool.h>1 N; {( ^2 }2 M% b0 j
23 $ a/ u3 `- w) W4 k, H% q/ ]" v
24 #define OUTPUT printf; a# W. f8 z9 g' h! x: P4 P
25 #endif: U5 b# g9 }. F$ _- p' X/ L2 ^
26 - }- ^, n6 D3 T2 I/ A" P9 w" ^1 ?
27 /* Log init */
. ?' g/ E* W8 c- |7 h$ S0 { 28 #if OUTPUT_TO_UART1; g4 }4 X. P5 ?" t: Z
29 #define LOG_INIT() do { \
6 Z$ u- F8 X0 \( _- O' \0 e- g0 i) R 30 PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, \( W4 M+ _% C) d, U) R
31 PSC_POWERDOMAIN_ALWAYS_ON, \. M7 g" {, [% j) T" j1 w2 x5 X
32 PSC_MDCTL_NEXT_ENABLE); \
2 \! g6 V& P% {9 J: J) }( T) M6 E 33 GPIOBank6Pin12PinMuxSetup(); \$ p& F) V2 u+ @1 X1 S% v
34 GPIOBank6Pin13PinMuxSetup(); \
0 n7 S& A, y# q. N t 35 GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT); \
* n, d! L4 s+ ?& {3 o) E0 a6 E5 N 36 GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT); \
& w0 z8 u2 i' e% K3 H0 q& P 37 UARTStdioInit(); \
9 d( t | r( w% X& i5 N" L$ x! y 38 } while (0)" w, q/ M6 E; I" u
39 #else6 P# u$ h z$ o6 P
40 #define LOG_INIT() do { } while (0); R! {- s% O" a
41 #endif
% R" \$ [7 j [ 42
! o! T1 ?3 H4 K: S, Y/ l6 T 43 /* Log Output */4 m) z9 _; P- w5 d% t( |( N
44 #define LOG_INFO(format, ...) \
0 s7 ^5 R, B4 {( ` 45 do { \
! ^7 I. T# u1 I' Y6 X 46 OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \+ }: u K* c3 f8 H0 r0 s- q+ V
47 } while (0)
/ V+ f' X2 H) }( b0 o" [! M' R 48 # i" m; Z7 R# @3 Y
49 #define LOG_ERROR(format, ...) \! V7 y( m: M: r' V
50 do { \
, N& I. B5 j0 r0 L7 x 51 OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
0 `* l% g& l+ s: m) q 52 } while (0)
1 o. n# S% @ J; |3 }5 r8 ]. e# [ 53
) m P2 G4 p ^, S: K/ e. J 54 #define LOG_DEBUG(format, ...) \- E/ C% @* z9 f- N$ m6 L
55 do { \" B0 X/ ?; |6 Y: b( C8 p
56 OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
! T& O, V: p5 g" H 57 } while (0); N1 h1 a2 R9 a
58
1 B# I' g& f: a1 H% G Z 59 #define LOG_WARN(format, ...) \
, w# J8 @7 L, ]# ~* r7 m 60 do { \6 z9 | Y2 ~% s+ J; V2 Y
61 OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
& r R0 s* O( ]. {2 s: Z6 X7 ?* o 62 } while (0)7 k6 k' R1 F0 r9 k
63 & q1 h0 ?. m. }6 t V
64 #define LOG_TRACE(format, ...) \
, w. ?' s8 d! `) ^+ D5 E& B 65 do { \
. H8 \- l2 w! R) Y( L4 e; q# X 66 OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
' Y' U# ?: |" ]# l# g 67 } while (0)( O5 C: L9 {; I/ h& V
68 0 t: a' n% h5 j2 I5 g( ]4 u
69 #define LOG_FATAL(format, ...) \' H. }! Y. R/ \, \2 U' U$ k
70 do { \! l% B& w/ r. z1 _; \) W- \' }
71 OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
, k5 n! ^4 C+ p V 72 exit(1); \' O0 W. G) B- f9 R K" b2 ?
73 } while (0)6 r4 f$ ^: V) z7 V- ]
74
* L2 E7 z, \- T* ~4 m/ v4 d' w 75 /* Assert */
3 c- u* W7 @$ c- a3 ?! y/ Q 76 #define ASSERT(EXP) \) V" r# P& ^, z, S! z
77 do{ \
+ _1 V9 G: H, V* z5 J+ D 78 if (!(EXP)) { \
$ |7 \ R! ]! L, M7 g5 m* q 79 OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ ); \
* G e* e; }- P, E; O, Y 80 exit(1); \
, L, M7 F, ?6 c. e I( e0 ? 81 } \" \# D. O3 ?. `( @' Z
82 } while(0)
5 r4 A7 B+ j+ b) C8 w 83 ' V7 D/ }9 h2 \# L+ L
84 #endif
Z2 f3 \2 V3 ^' G& _5 i; Y |
|