|
|
1 #ifndef _LOG_H_
( ~5 G+ N' U, ^( L. \( w 2 #define _LOG_H_
- A0 y/ C! m9 V6 M 3 5 Q4 d- [3 i1 w7 W! ~5 P6 h
4 /* 0: printf; 1: UART1 */. r3 A c: n# e5 ^: \$ k3 u
5 #define OUTPUT_TO_UART1 1
( i% C0 ` Q' S! O! n 6 5 _3 Y" K# {) a, Z# \) `
7 /* Switch Log Output */
0 ~9 z% l Z6 p$ F! C. H 8 #if OUTPUT_TO_UART1
2 }0 Z0 z! ~, b* f 9 /* For UART1 Initial */. n# [' i2 _$ q& v( [' z( v; X
10 #include <stdlib.h>
. ?, {2 N4 m% m; i1 Q 11 #include "hw_types.h"
% F5 ~& F# A9 q; E9 y, H2 u 12 #include "hw_syscfg0_C6748.h"
8 |+ Q# @8 m) |: s% l5 q 13 #include "soc_C6748.h"
C! k- I& l; y7 R1 V. C' e 14 #include "psc.h" ! E7 S) u8 v2 J5 @, P, @
15 #include "gpio.h" 4 y/ u6 w# L) M5 t1 M E1 p- L4 c/ f
16 #include "uart.h"' f, ?' Y/ A& m
17 #include "uartStdio.h"
2 P" t( b7 ], f5 N s6 M 18 ' L7 f$ U a% J/ |6 s
19 #define OUTPUT UARTprintf% O1 ?& V: O. u4 `
20 #else
; @% k" m0 @6 l 21 #include <stdio.h>5 y' s g! }* k! b& S% ]
22 #include <stdbool.h>$ t: I _- i0 k3 ?# ?( b! P6 E% c. u
23 6 l7 d& H' c5 D% B- ?
24 #define OUTPUT printf$ g2 c# q0 O" V& M
25 #endif- b1 H9 y% ^4 ?7 I7 i
26 3 r: W c5 ~3 f3 Z. b
27 /* Log init */0 _0 V. b2 ?* p
28 #if OUTPUT_TO_UART1! b% {. ?# O2 Z+ \3 O( A
29 #define LOG_INIT() do { \
& M' B0 Z( `8 B! r. ~( c 30 PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, \
5 O# |0 E. Z) F3 E" N 31 PSC_POWERDOMAIN_ALWAYS_ON, \* S! d* C3 K/ W( Q8 r3 D: P
32 PSC_MDCTL_NEXT_ENABLE); \
% {3 s9 K: I/ A& V1 ~# i4 e 33 GPIOBank6Pin12PinMuxSetup(); \ S1 c- s4 D7 k9 l
34 GPIOBank6Pin13PinMuxSetup(); \) J: I" F; S! R8 W' n+ i8 z
35 GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT); \+ _' y4 j" b# g8 W; b
36 GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT); \
9 Y+ p* r4 i P2 j" H% F/ o 37 UARTStdioInit(); \
" W" @6 p" Y2 A+ i+ I0 J1 P+ @ 38 } while (0)
( V C1 C$ ]" o m' [ 39 #else
8 A4 ?) R: j" x/ R 40 #define LOG_INIT() do { } while (0)
* o, E6 a9 _, n1 m7 U. v" { 41 #endif" m) c; q7 D& u+ o
42 & W: K# E. B8 S! C' Z6 H6 Y
43 /* Log Output */* b. @0 D4 x8 F3 t2 B# X9 H
44 #define LOG_INFO(format, ...) \
6 F" v" Q6 S) e 45 do { \' @! z, A& }# J& Y& P! n
46 OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \ ^6 U7 w6 N, [0 B) M
47 } while (0), O Z7 `9 y2 Y. C
48 g5 u+ F! K- }6 U1 I0 v+ y( V
49 #define LOG_ERROR(format, ...) \# R) A1 [: h+ A( X# I
50 do { \
) J) d2 q; y* [. u 51 OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
7 D1 w9 |1 G+ y0 J7 a 52 } while (0): b; a1 p: _! H1 @
53 j! e* L& L, o3 y
54 #define LOG_DEBUG(format, ...) \
! N, J4 U. @+ m% @ r 55 do { \- H& u' F) Z# K/ h7 ^: j: M
56 OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \: R# y; [! p) _6 N# c% b9 |% o
57 } while (0)7 k2 h1 }7 Z! V0 Q: e# _* ^& H: a
58
! n* g; X1 @: K `, \ 59 #define LOG_WARN(format, ...) \
6 q/ A( n7 M2 p) j, W5 w/ _; z 60 do { \
0 s3 G l0 I+ j6 I% g+ g 61 OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
# Q( d* v* t5 k$ _1 g 62 } while (0)0 g9 o/ D6 w- E% [
63 8 `+ f7 m/ |- ]: h2 f
64 #define LOG_TRACE(format, ...) \. [: p0 j- ^' L9 k
65 do { \* R5 `& E1 v# ^' o) d9 {
66 OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
1 _6 {. r" b& M1 g8 x; C% {( [ 67 } while (0)( R% d; a% h' F( N
68
' k' b6 U8 e& H, I% P 69 #define LOG_FATAL(format, ...) \0 V E4 r% A, W7 W1 n# i6 G
70 do { \
! J7 H* O# y7 f7 B6 w" K 71 OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
) ^! P1 n5 r( H7 m 72 exit(1); \" {0 x6 J1 W: s9 o
73 } while (0)
( u7 m! E, n) W4 @- v! C+ i2 q 74 0 P8 G: a" M9 m6 D; ~, m
75 /* Assert */$ @ y/ m. Y0 }2 M/ x
76 #define ASSERT(EXP) \6 A; Q3 T! d0 ~3 |0 e
77 do{ \
+ M3 o- x, m7 R3 w( l% t 78 if (!(EXP)) { \' ^! E! r+ I! F( B" e! ]
79 OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ ); \
2 i. O' F5 K3 M2 V8 R 80 exit(1); \- S+ r' m& ?% f
81 } \# k; C& v) R; \- u6 l
82 } while(0)9 q* V% ~7 I0 M5 D9 S
83
6 t h a2 g, d5 _% L 84 #endif
' p$ B! e* C! V6 V+ |( m ` |
|