|
1 #ifndef _LOG_H_1 y9 Q$ f8 d( _" l
2 #define _LOG_H_) P A& L5 k' q5 G+ x1 p
3
. F4 Y. g+ |% x3 r$ g3 u/ I/ u* W9 Y' r 4 /* 0: printf; 1: UART1 */& R; n- T" K, u
5 #define OUTPUT_TO_UART1 1
: ^1 z% ?" k, Y; t 6
" M: q4 q% f) T' G$ G. k3 ^! h9 A 7 /* Switch Log Output */ s, }/ X) j3 |
8 #if OUTPUT_TO_UART1
7 Z9 n. b" n' t/ M0 } 9 /* For UART1 Initial */
, H2 ?' i+ P9 |, z 10 #include <stdlib.h>
( ^, S d' u/ n0 w* ` 11 #include "hw_types.h"
) p% }- u. G7 n# A 12 #include "hw_syscfg0_C6748.h"1 B8 w" o+ g D. T" R
13 #include "soc_C6748.h"
4 c& _ z! z( e6 u9 i( m2 C 14 #include "psc.h"
4 {. S- ^- B( e+ ~& w8 c1 [# s) s7 G 15 #include "gpio.h"
`6 ~/ \) d& ~$ U# A 16 #include "uart.h"* u- O, |5 b( L* G4 Y
17 #include "uartStdio.h"
5 s( H* z) J4 \4 Q9 S, n- r 18
, b. j& w" k' a8 \0 O 19 #define OUTPUT UARTprintf
6 {) L9 z- U! L2 Z* S 20 #else
0 ^. d: a$ U& {" l' e; H 21 #include <stdio.h>
$ i, J0 Q# u. @9 u4 B 22 #include <stdbool.h>4 J% q U; |. a$ y- g$ O2 Q3 K) d3 A
23
2 R1 L/ |4 {+ r( O: w* @+ Z9 S 24 #define OUTPUT printf4 g- n$ S0 Q# l" f
25 #endif. g, R V8 R2 t' x1 v# f
26
, I/ f" A4 T: g4 Y 27 /* Log init */- M7 @! W' k4 W4 E8 }$ G& b
28 #if OUTPUT_TO_UART1
& N1 n* ?, f0 b0 X5 t! T- a! h" u 29 #define LOG_INIT() do { \6 a7 |' U+ @7 r8 x
30 PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, \( @( q' o9 b3 [% E6 Z
31 PSC_POWERDOMAIN_ALWAYS_ON, \
. @' l* `7 m8 R0 }6 o @ 32 PSC_MDCTL_NEXT_ENABLE); \+ j h; @3 l$ L( l* A2 i. t
33 GPIOBank6Pin12PinMuxSetup(); \8 Z0 ^/ ~; ^$ t* q
34 GPIOBank6Pin13PinMuxSetup(); \
, ]2 m' }0 }/ Q 35 GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT); \, v2 ~1 [ B2 G Z
36 GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT); \
+ k+ S( J3 D/ G3 L1 J4 J+ I 37 UARTStdioInit(); \ r% I' y' Y p# c/ R
38 } while (0)& `* [! A. x# I* I M: }" ^
39 #else2 G3 [7 }4 [ }* F2 r
40 #define LOG_INIT() do { } while (0)
3 J% G) j0 {, k* M8 c! D' k ]( u. D 41 #endif: a- y5 z' M( c/ X; t
42 9 t5 b Q d/ H% z6 d' ?6 \" X
43 /* Log Output */
, m1 K. R( W6 r6 F 44 #define LOG_INFO(format, ...) \! q, i6 g" [) e0 P' u2 M" g
45 do { \5 l: W) c9 i! z' V6 I7 D
46 OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
: f% r3 a) L& Z7 |* _, t 47 } while (0)& v* f& j% r3 N4 d$ G3 w3 z
48
# S" A* l7 Z) C* A7 \/ M 49 #define LOG_ERROR(format, ...) \1 `. i- }5 d& _6 ]' v
50 do { \
! ]2 z6 q+ [& ^$ s 51 OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \! w: m4 R( p: [8 H" Q2 A% Z: B
52 } while (0)
$ Q+ |8 ]9 y& ` 53
! ]; C; w% ^+ n. I& ~+ ]4 G 54 #define LOG_DEBUG(format, ...) \* Z! L# m' B" D3 c
55 do { \
& ]* N1 c+ R$ g1 A 56 OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \. V$ v0 R" W# b( [- h% U# c* v/ ^1 S
57 } while (0)
% X; k7 A+ w4 f8 f1 P% G' G 58 2 {+ [) V# h' ~+ ?4 _
59 #define LOG_WARN(format, ...) \% K6 ^ I" e9 J! Z0 k
60 do { \7 t2 r! R- ?4 M$ q# M
61 OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
" F" S/ X6 s+ M& F' O! V# w, o; S 62 } while (0)
8 V& s& ~% W- `: I 63 9 C$ S2 J3 k5 n, s
64 #define LOG_TRACE(format, ...) \; ]6 q- C" q" Q1 _% h
65 do { \
( m( }3 A$ u2 n: I _; p 66 OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \5 { R/ V/ @! h, j9 S
67 } while (0)
+ U' O$ Q9 O5 v8 f 68
3 i$ F* |6 |& n' V 69 #define LOG_FATAL(format, ...) \, @' u! W* ^! |
70 do { \
, I" N# v0 p+ S0 p 71 OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \* O; n; K7 q# g, V
72 exit(1); \
) l; T! U2 Q+ y+ \ F( L 73 } while (0)
& ^0 a( M6 |9 U T2 Q7 r9 b7 ~ 74
* q1 L. d& m' h2 C 75 /* Assert */
8 R6 C! Q9 L/ k% h7 S" F+ A9 A) ^. Y 76 #define ASSERT(EXP) \
& E* E& r1 P3 A$ Q% G5 ?7 Q8 T 77 do{ \
& N$ \4 p' L3 j% r& t 78 if (!(EXP)) { \
3 [5 Q, c: _; M( s. v' Z2 r# ` 79 OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ ); \1 H" R: N5 F# ~& ~
80 exit(1); \1 V) C2 s1 e, `. X6 y
81 } \
) G, v# U0 z+ S 82 } while(0)
8 A# K- k, _% W3 d 83
5 U3 m6 L; F$ X" N. \4 p5 @ | 84 #endif
3 T7 a) g8 _) O. ~- a% n |
|