|
1 #ifndef _LOG_H_% D' b* r m% c O, T b) X
2 #define _LOG_H_
; m! O7 I, a/ Z8 m- |4 R# y3 ~ 3 7 Q9 X7 T2 \, n! H/ e
4 /* 0: printf; 1: UART1 */
! y, G: u% D8 X 5 #define OUTPUT_TO_UART1 1
3 N+ o; @1 U' m) l 6 4 j K) b! D2 h1 e9 A
7 /* Switch Log Output */
' _' U+ J7 O" k5 A; A 8 #if OUTPUT_TO_UART1 f' O, X9 b" o% ~8 `4 s& C7 D' u) k
9 /* For UART1 Initial */
% o9 a O0 Q3 ], k t 10 #include <stdlib.h>
4 C! s9 o, p% \$ G3 ^ 11 #include "hw_types.h"
, A1 J1 I/ k: I A# K 12 #include "hw_syscfg0_C6748.h"
% }( @8 V) c0 x7 w b5 p S5 x 13 #include "soc_C6748.h", t& e' A3 t A/ j! p1 q0 ?
14 #include "psc.h" & c4 j5 A( c3 x. g
15 #include "gpio.h"
( Y' G- k) L0 \! }9 [ l2 {( _ 16 #include "uart.h"
' r2 C! y! E n1 m 17 #include "uartStdio.h"
% G, B5 s/ t5 e 18
8 G4 z2 S0 g$ R* [ 19 #define OUTPUT UARTprintf
# ^! e- x5 t3 c( ^* y 20 #else
8 A9 ^! l! z6 A0 `' ` 21 #include <stdio.h>
2 B! } p: t4 {$ W( S7 A 22 #include <stdbool.h>
/ N0 \4 M6 z, D& W* E; L 23 4 C; A! W* I1 E8 v7 x. q
24 #define OUTPUT printf6 Y1 n. M% l W3 H: _2 k- ?
25 #endif6 i9 X/ m, X7 m; a% y# y/ |
26 9 o; k/ c" Q/ S4 \, S( x; d
27 /* Log init */
" @3 H+ T$ I& G) Y2 R 28 #if OUTPUT_TO_UART1
5 N3 B& m) K9 R; ~ 29 #define LOG_INIT() do { \/ A+ C) k t- a {. d6 j
30 PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, \# o( X" ?3 @% J/ M% @
31 PSC_POWERDOMAIN_ALWAYS_ON, \
: c! _$ K, `* \+ q) G 32 PSC_MDCTL_NEXT_ENABLE); \; y0 k2 U/ B9 V) J; s. I
33 GPIOBank6Pin12PinMuxSetup(); \
; g/ u5 g0 Y7 W, V" u- E5 Q 34 GPIOBank6Pin13PinMuxSetup(); \7 j; f( N) _ c- X
35 GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT); \
/ Q7 f, ~: J+ v1 t% _5 Q Y: `8 W6 u 36 GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT); \
( v) c7 X& V1 ]8 i+ E- | 37 UARTStdioInit(); \4 X$ s- e, C' G
38 } while (0)
1 q9 M# i: `0 J- y, t 39 #else
1 v3 \9 m0 B7 C0 L( v. [& a 40 #define LOG_INIT() do { } while (0)9 J V* f' d* R
41 #endif5 B( s6 B: N# U; p$ z$ U% m7 [: \" v& x* t
42
4 u& ~* a' A4 Z' n$ k+ } 43 /* Log Output */
/ J$ {7 `" i! I+ Y 44 #define LOG_INFO(format, ...) \
. O! c! [% ?0 J8 K 45 do { \' ?( p$ r) `- B3 ?. h/ B" H; w
46 OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
- {5 k2 t# @. @. L8 l- V$ J6 u 47 } while (0)
, O" B: u5 g( p: }8 [ 48 & s( }5 S. K6 L4 e8 [, o6 ^ j/ A
49 #define LOG_ERROR(format, ...) \0 w7 U7 [: G- b' k
50 do { \, e+ Q, B! Y# c
51 OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
% p# f' V' v) e9 T% ~, Q2 ]* y 52 } while (0)! v! j3 ?" g- C5 Z0 ^% b- j) `
53 ! W$ s' c% n/ _" l
54 #define LOG_DEBUG(format, ...) \
# U1 k2 U, l% r0 C5 V3 C* n4 \/ Q 55 do { \
) j0 A) J* d3 X4 ` 56 OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
4 U t4 S0 q% W5 z 57 } while (0)- _7 {1 P2 @' R" Y
58 . p/ C, R4 g5 I& Z( \, z
59 #define LOG_WARN(format, ...) \
! V l8 G4 Y1 y( \3 s 60 do { \
3 Z! H3 U0 R8 { | 61 OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \) n/ M6 o- C u* d' @
62 } while (0)
1 W- O- B6 a0 W) l 63 / I( L' y. H6 z( W
64 #define LOG_TRACE(format, ...) \9 c8 X3 Z8 ] u& z$ l) m
65 do { \
& H% b6 `$ ^1 {: ?7 K 66 OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \* A) O' r; v' }! P _; r3 b$ Y& T
67 } while (0)
2 }% m7 q! \6 P9 s 68 # x9 S- H- @# Z
69 #define LOG_FATAL(format, ...) \
; c6 }3 Y* L! u& H- w 70 do { \" Z$ T- `' T+ N9 J. d2 E# B
71 OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
( Z) m1 z; t3 v& i }8 E 72 exit(1); \5 i5 M8 z& C# J5 N& G! B
73 } while (0)
" O9 P5 \( j4 f- u! e8 m 74 2 g) t0 I& \% j! z- ^" {
75 /* Assert */1 G7 S% Q. y. z, Z* S7 n' i
76 #define ASSERT(EXP) \
3 l" [2 L. B x a 77 do{ \
* Q; M% x5 Y4 y 78 if (!(EXP)) { \
& U% r5 e! C; R2 U 79 OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ ); \
, r! ?! S3 k) e O: k4 q 80 exit(1); \
/ ]1 y" ]4 |& w: U& ~2 e! A 81 } \
! Q3 f( z) v% a+ h9 C 82 } while(0)
+ y& O& Y: U, M 83 3 K8 Y( `/ `! }# X4 E/ C% E, x
84 #endif
. [6 R! }8 Z$ h+ K |
|