|
|
1 #ifndef _LOG_H_ s# W+ q' V y
2 #define _LOG_H_
: e7 D7 g) }$ O& d 3
" N$ W# _9 ]7 h' O2 ^7 z0 ~ 4 /* 0: printf; 1: UART1 */
I8 x" B1 U5 N" }# H 5 #define OUTPUT_TO_UART1 1
/ h2 c8 Y; @$ u) |' i+ b3 `; U' w 6 Z6 l; S/ l" J. v
7 /* Switch Log Output */
`) J9 U$ M+ E# I/ P2 ` 8 #if OUTPUT_TO_UART1
+ a" z( {( b5 a* `' M& _" _ 9 /* For UART1 Initial */
, U: u y, q! y/ G& w/ ? 10 #include <stdlib.h>! |6 C& a3 ^- G: `
11 #include "hw_types.h"
& D5 E2 Y: W/ \- G7 H 12 #include "hw_syscfg0_C6748.h"
( ^1 c* q7 M# S5 \8 Q8 k& i0 U) u 13 #include "soc_C6748.h"
* K) O/ q/ L4 ?' v4 X 14 #include "psc.h"
! U0 s) k+ E' A& C2 k. f1 \ 15 #include "gpio.h" 7 m2 m( m' S1 p3 x
16 #include "uart.h"" X& D1 W) ?9 [
17 #include "uartStdio.h"
4 C# V6 y. c; O2 w 18
& B# f/ f7 Q6 i3 s 19 #define OUTPUT UARTprintf
. O( Q% b, o6 g1 g6 e* `4 I 20 #else% S2 ], S/ `# O' B. N+ Y4 [
21 #include <stdio.h>4 S, E7 q) d$ G; p+ r( v
22 #include <stdbool.h>
+ w( l/ h- {6 e4 g, e7 l# I9 N1 \ 23 6 h6 S7 u- n. r6 x. U! ?( b
24 #define OUTPUT printf
7 C! P8 u" G# B0 ]$ w9 ^/ P 25 #endif
4 k' M% I/ r/ r7 ]+ l5 b 26
3 B6 ^# k6 j0 }. E, Y! i 27 /* Log init */5 F/ a, V W. \( M3 x
28 #if OUTPUT_TO_UART1: Z' L6 a* x0 }* B' \% s7 a9 t5 c
29 #define LOG_INIT() do { \* r5 D2 w, n" _4 G# D! k. M
30 PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, \
7 Z/ ?- Y' i3 R! A' P/ n z 31 PSC_POWERDOMAIN_ALWAYS_ON, \
; @! H: L5 X# X0 |) Q3 O. M; @ 32 PSC_MDCTL_NEXT_ENABLE); \8 i0 V5 f- J! j) s4 F. A
33 GPIOBank6Pin12PinMuxSetup(); \
, W5 B5 I. h2 [0 U; C2 n 34 GPIOBank6Pin13PinMuxSetup(); \
' @1 @/ ~' { S) _9 \% [ 35 GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT); \
# ]" P0 v% I+ U$ |7 Q 36 GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT); \
% g9 e- f* I+ q0 Y 37 UARTStdioInit(); \. X5 L: }0 q0 i1 k) {, l6 f) E
38 } while (0)& d6 S$ E! v7 E! i# g9 [
39 #else
8 m* @' }9 M8 S; J 40 #define LOG_INIT() do { } while (0) \1 W+ ~: q9 L7 j0 l2 G
41 #endif
) g, b' H" \2 K) C6 f: Y 42
+ I. d7 x. D( N" N! B3 g! `1 [- P 43 /* Log Output */: }$ P. J6 Q6 O2 ?0 D' Q9 v1 A! I
44 #define LOG_INFO(format, ...) \
! u! R0 J% T, U 45 do { \+ q! p' C4 n" k: | a( ]. j! y
46 OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \+ Y" e+ _; y$ x! n
47 } while (0)
% M, `1 u; G# `' Y, n* o; |' v4 J 48 6 y9 v/ b* ]4 J
49 #define LOG_ERROR(format, ...) \
' s Q/ D, H/ i' H& w* h# p- {9 J 50 do { \
+ }; B' y$ S5 {( J0 | S$ R 51 OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
* T0 b% }7 U Q7 Z; E. H2 c 52 } while (0)4 G/ A" Q# M& J8 {5 y
53
7 ?( T) T; V- z6 n' I5 `) ~" L+ ?, u 54 #define LOG_DEBUG(format, ...) \
$ x j3 q# s5 d8 g 55 do { \2 Y) l8 n2 a3 d# X
56 OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \9 @. ?6 N) k7 E
57 } while (0)5 n7 q/ x- I$ S7 _( U+ n& S
58
' J8 m8 x$ w1 l/ n' e% J5 n 59 #define LOG_WARN(format, ...) \
8 M; F+ c' V) U3 V7 @) l5 l0 T 60 do { \ g+ Y+ J' o) Z
61 OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \' e# x% c' Y( j8 I
62 } while (0)
+ K( h" D9 S2 E( o* q 63
* x5 a+ w" n6 e4 V: M b. b5 R0 E 64 #define LOG_TRACE(format, ...) \3 X7 X/ }/ C5 Z7 n+ H
65 do { \" o7 `. R) V2 g S( ]7 w$ u9 A0 i
66 OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \- z1 I! C% E3 X1 q
67 } while (0)
% W% W8 W z, M J! V- H0 x1 ?, v, D 68
* S& E' y; e" d% C! m 69 #define LOG_FATAL(format, ...) \+ r' O1 j) L- n: F
70 do { \; i: i% L8 y& d. z( l9 S Q
71 OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \- z: W/ I: \) z9 q2 z. X
72 exit(1); \
, {( ^/ D0 d {6 w 73 } while (0): S) I% }' c+ S! C0 \
74 . l8 \' c2 a1 o* P) Z6 \7 H" `
75 /* Assert */% n* T: I9 ?/ W* [
76 #define ASSERT(EXP) \3 ^4 ^) b; H- o, _4 x
77 do{ \
) g9 ?2 j0 k8 g/ J% O 78 if (!(EXP)) { \, r6 X) p, L- i2 W. M' Y- N0 \
79 OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ ); \
/ Z8 s9 D5 _6 g$ @2 r# N) [ 80 exit(1); \
9 [* {$ C) t( c* r 81 } \
# P2 G+ j- Y# X G _! T 82 } while(0)
9 v, I" {6 `9 @. a- V5 L- S 83
4 \9 P N6 Y. V( J: p1 V 84 #endif
& {7 Y+ d# Z: D g3 ^6 F" J3 e# e |
|