|
1 #ifndef _LOG_H_& M! s X- F6 ~ g
2 #define _LOG_H_
' Q3 A9 t3 u- \( l 3 " f* Q2 Z" c0 }, ]: J2 C+ Y8 C
4 /* 0: printf; 1: UART1 */, S, E3 ^0 T% Y O
5 #define OUTPUT_TO_UART1 14 K4 ~; I1 l$ b1 b$ D
6
' _! o( O: k! H+ {& @ 7 /* Switch Log Output */7 ^$ \9 H7 |$ ~" k1 N) {: \& ^
8 #if OUTPUT_TO_UART1; u" ] X* y3 {( v
9 /* For UART1 Initial */5 A+ Z9 h# Q. q5 J4 D1 P: T/ Q
10 #include <stdlib.h>
8 j5 P' W) P+ I/ k 11 #include "hw_types.h" 6 R$ ~, `$ t: G; c, M
12 #include "hw_syscfg0_C6748.h"
6 L7 C9 f b* J* i" q' Y ~/ V 13 #include "soc_C6748.h"
% b( Q, v& l; U, L" `5 I2 U6 R' a/ v 14 #include "psc.h"
) ]2 s, x z$ C6 G 15 #include "gpio.h" 6 [$ F: V- ]/ t7 H
16 #include "uart.h"
2 O; [( q# h6 Q9 m g3 Y 17 #include "uartStdio.h"
) p0 _' t- i' w4 k5 `" r/ B' Y 18
) ?! m& U) J4 v. p+ v+ g 19 #define OUTPUT UARTprintf
( ^- G" T8 Y, w2 B: ^ 20 #else: |( v3 a. }" I6 q
21 #include <stdio.h>
% d) a; V r: M. |$ {4 p/ W 22 #include <stdbool.h>
2 R9 }- `1 y* Q 23
% R" l* r# i6 x6 { 24 #define OUTPUT printf
2 [6 a% n- D+ W 25 #endif0 C/ T8 w. y: W; E
26
' r7 L4 P5 [" m% W* `% V 27 /* Log init */2 z4 A7 |% K8 o. i- S- d. S6 S
28 #if OUTPUT_TO_UART1
2 Z3 ]: b: \0 e. T/ u/ P6 t 29 #define LOG_INIT() do { \: |' y2 _! ^% ^: N9 T9 W: d
30 PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, \ W) P' e; s, f/ J/ w2 |& j+ J
31 PSC_POWERDOMAIN_ALWAYS_ON, \
- a/ W3 ]# t4 c& ?* X 32 PSC_MDCTL_NEXT_ENABLE); \- Y+ U( Y9 |/ ]* K) R6 z( p6 r9 K
33 GPIOBank6Pin12PinMuxSetup(); \
% p$ E/ j' Z% }" S) S- P 34 GPIOBank6Pin13PinMuxSetup(); \& T w- L7 |/ w ]& U7 f) v- \! X
35 GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT); \
( _% Z6 @6 O4 j 36 GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT); \! ^% E) F/ ?# u( J8 `- }
37 UARTStdioInit(); \
1 k4 F+ V) ]- V4 X! Z+ k 38 } while (0)
8 A- v: x% |( V- }" o+ Y; K 39 #else
0 b0 }5 @1 Y. y. K K1 x. h 40 #define LOG_INIT() do { } while (0)6 W5 [7 ]0 w7 d7 E
41 #endif" g* p; l, M/ X: o
42
- r5 v0 M% d: i) I- i- C 43 /* Log Output */7 ?" u6 b1 }8 p$ Z- h: L
44 #define LOG_INFO(format, ...) \' ~: K4 k" I1 c* C( Z' {) z4 u
45 do { \
1 k$ Y6 u9 Q$ J 46 OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
# o# p% d/ u- d) l8 s 47 } while (0)
- T( z& _6 U8 y% U' J' a 48
. ]; |8 L3 C, U" F* A 49 #define LOG_ERROR(format, ...) \
: v" X) W9 n8 }# ?* ` 50 do { \ Z, P( K, I$ y0 ~' E' q
51 OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \: X u2 @4 \1 N" t; G) J' W
52 } while (0)
0 O% [, }3 `# E* q; T 53 % Y/ D+ @# j+ j% H% j
54 #define LOG_DEBUG(format, ...) \# ~# d& u' [, B
55 do { \3 b2 F: H' m' q/ r) z) ]
56 OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \/ {- V# g! P7 X( P
57 } while (0); d/ t/ R7 ~% x3 J
58 2 W) h; ~1 X& p9 X' n5 o: d1 B6 O' e
59 #define LOG_WARN(format, ...) \+ H9 Q+ d1 O6 j
60 do { \
# D7 \* Z. V8 W" r 61 OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
/ p% d; W; B+ o 62 } while (0)" h" a2 n! z* _( z; L- K
63
: }3 H3 T4 _- d8 i4 O; P0 y 64 #define LOG_TRACE(format, ...) \
0 ?7 d8 E' o& _4 r8 J4 ]. |; |2 m 65 do { \
$ o4 V! X# K0 a6 p 66 OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \; p" i' F) o# E$ Q( V
67 } while (0)
8 H( L; j1 m! |! }/ ~8 R 68
% w& Z) P3 T3 v9 u, t* Y4 w3 T/ i 69 #define LOG_FATAL(format, ...) \
' d$ ^4 B& A/ ~: H1 _ _2 b 70 do { \( h; [' x1 w% Q9 a9 Z
71 OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \* [0 k4 [% H8 J; l# X# T( W
72 exit(1); \* F( w' {+ F; J2 v: q6 i
73 } while (0)
+ I8 p, \" g# L8 N 74 : a4 u; j+ B$ K T( @) B1 h4 `9 k; J
75 /* Assert */, n6 d8 k8 h6 a
76 #define ASSERT(EXP) \$ Z% V5 g* o* C3 t E4 @
77 do{ \
- R+ u) Y5 f. _7 Z 78 if (!(EXP)) { \
6 V! }+ B; z6 `+ l 79 OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ ); \! r7 f8 [; S+ z& p+ h$ U! M! j
80 exit(1); \9 _5 O8 [+ |" L6 h, D. f# t9 I l
81 } \2 x: c+ Q* U1 i8 U3 I; N- g
82 } while(0)
/ Y0 G9 O6 [1 n+ h 83 8 c2 d, _# ~: a$ b, d
84 #endif
+ P: t: F2 Y7 |- y7 r |
|