|
1 #ifndef _LOG_H_1 `: E1 U: |5 y3 k6 p$ B8 `1 z
2 #define _LOG_H_
6 {! ]1 c) ^# a } 3 ( `+ G5 n& O- l T" ]
4 /* 0: printf; 1: UART1 */5 A- d) O4 z3 g1 T% T0 |; G# ~
5 #define OUTPUT_TO_UART1 1' e; _' e/ V. `$ K: B+ \
6
/ q, W# V! `5 S9 j" b! n 7 /* Switch Log Output */8 Q* V5 C4 }6 m
8 #if OUTPUT_TO_UART1
% F3 Z6 \$ M0 Z: D4 P' r- O9 { 9 /* For UART1 Initial */
; L4 ~( f4 j# F6 U6 U 10 #include <stdlib.h> } j, u0 \3 ]" a* C. Y" r
11 #include "hw_types.h" 6 p; g# @' e# D8 a4 ~4 o' O9 j
12 #include "hw_syscfg0_C6748.h"2 f$ V" ^# @, M% x o# c
13 #include "soc_C6748.h"
0 q$ D7 g0 ^# J q; A& a 14 #include "psc.h" / a9 G" [& j( P$ d0 ?
15 #include "gpio.h"
% [1 Z% O, |* ` 16 #include "uart.h") d* C) `" C: e9 Y( w7 a4 |
17 #include "uartStdio.h"5 v& C9 K8 A# h& y [$ x
18
7 L: p4 x& j( u6 \; { w 19 #define OUTPUT UARTprintf! W/ J; S/ x9 `7 X
20 #else
$ h. L4 b a: F8 G* L 21 #include <stdio.h>: l1 w6 D' C( P2 O3 U' o' R
22 #include <stdbool.h>6 I4 d) @3 X/ O1 g1 W
23
" ?, A, z: {6 _; }+ K 24 #define OUTPUT printf! {7 M8 [ ^5 u, y( v4 _' F3 M
25 #endif
( `, D% j7 b" I, V: b 26 2 B3 L% D" H4 U
27 /* Log init */
2 \* ]/ l) C& u( W 28 #if OUTPUT_TO_UART1/ M8 M1 P1 A, `' d: e" X
29 #define LOG_INIT() do { \% [$ ?4 p& J- M( [4 J
30 PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, \; P K# @9 A7 m5 d8 X3 t( u
31 PSC_POWERDOMAIN_ALWAYS_ON, \
6 U/ {5 I0 g: [ 32 PSC_MDCTL_NEXT_ENABLE); \" \; D5 ]) ]) T& S0 y5 W0 y
33 GPIOBank6Pin12PinMuxSetup(); \ X' n% e' @$ F- x$ F! P6 G: I# X
34 GPIOBank6Pin13PinMuxSetup(); \- n D& E9 W- s$ U* g! Z) f
35 GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT); \" K* i" K4 X* F1 D. P8 J3 g; L9 L3 }) v
36 GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT); \7 l9 k$ j6 Q+ l F; E; A& _
37 UARTStdioInit(); \5 s5 N1 S! {# {7 k2 }8 O+ U- p
38 } while (0): ~1 e" ~4 _7 p9 Q
39 #else
& N! U" l6 \8 A 40 #define LOG_INIT() do { } while (0)1 f0 G l8 Q! f
41 #endif
# `7 U R+ ]9 F 42
1 z: L% V* z |( ]8 r 43 /* Log Output */
$ o% m: |! i; k O9 v& ? 44 #define LOG_INFO(format, ...) \
+ a, Y" P% ]3 J Z: f 45 do { \, _5 j# O. b* V" k1 L
46 OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
" r. w5 c" n5 b2 r# f* J 47 } while (0)9 K" f' |4 P9 L! X, @5 J
48
& j) G/ ?) A4 F8 S 49 #define LOG_ERROR(format, ...) \
( r# y" I: o8 A; Q' b 50 do { \
; \0 \- u3 w$ ]+ |, v 51 OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \8 ~! S) z5 n) G6 G' m ^
52 } while (0). G8 ]6 @! Q. J# c2 X2 ~
53
" G7 Z' J' J* r) t 54 #define LOG_DEBUG(format, ...) \. M" u! a- ^" [
55 do { \
3 v7 K9 [; `) S( A3 j 56 OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
6 c3 K, X0 N/ Y& ]1 M 57 } while (0)% }1 M: _" t. b3 R0 U* T3 F! n# r
58
0 r" Z6 j- l: f0 s$ O9 [ 59 #define LOG_WARN(format, ...) \, _9 a( ]8 L- d3 Q2 \% S
60 do { \1 q% Y! q& H/ [4 U" H! b" v+ N& e
61 OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
" C# v4 s( S& t; b- M 62 } while (0)5 e1 b$ a9 N' H# D. [. s! J& C" x8 D
63 2 r' y p# b+ e
64 #define LOG_TRACE(format, ...) \
" c+ G5 v1 ?: |) a 65 do { \& R; D: S3 R9 b& g
66 OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \7 e: p' K2 E, O- C4 e: p
67 } while (0)
! k; K" m5 E6 S; U 68 6 O* x5 z- k Y& d9 V9 n6 b6 A
69 #define LOG_FATAL(format, ...) \
5 v' }% r. o- @ 70 do { \, P9 u# Z& s# [/ y' c3 P: Z
71 OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \7 p, H* A( b9 P* K0 a( G: S, z9 b
72 exit(1); \$ ~. e" j% {1 _7 _, \8 [4 A' `$ j0 v
73 } while (0)
* F1 u8 A/ m; V; [2 \% f8 w 74 / g- Q" K* b3 r- A2 X
75 /* Assert */
& p" x, Q2 X& J1 b7 P |" { 76 #define ASSERT(EXP) \; [( |, v% ?, ]' l' x
77 do{ \# V& }0 v" Z) J* P! e
78 if (!(EXP)) { \/ A! [6 e. q/ j3 z# \/ O% b- U1 B$ ?2 w
79 OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ ); \
1 i9 K- D& W* N7 U# r# Y 80 exit(1); \6 B0 m1 U* N4 i, P) ^/ }: |
81 } \
6 H3 ^1 m4 W8 d+ G 82 } while(0)
7 x& I9 d& ?. R5 z 83 " `# H& f. T2 [. S7 q
84 #endif
+ e/ b, r0 Q" V' H/ C$ g. U |
|