|
|
1 #ifndef _LOG_H_6 m& Z" X: q" `1 ~. w
2 #define _LOG_H_* k0 T0 o! b8 `% k# ^3 g
3
5 ]" P1 ?6 c. G( i 4 /* 0: printf; 1: UART1 */& r% e0 d" t" n: a, w) ~8 p3 i
5 #define OUTPUT_TO_UART1 10 ^: d9 m; ?2 C0 e% I3 z
6 2 s! P9 t) O) g1 {5 I
7 /* Switch Log Output */% {+ m- Q& R' A7 l7 p5 U/ `1 h- h( t/ X
8 #if OUTPUT_TO_UART12 i$ b N, y9 m5 M7 M3 n) k' X
9 /* For UART1 Initial */6 j8 ?1 O* _- `
10 #include <stdlib.h>6 N/ K9 V3 C6 z9 q: }2 Z9 S4 b2 T
11 #include "hw_types.h" ; W9 M/ U+ G. Y9 }7 z
12 #include "hw_syscfg0_C6748.h" l1 @. y8 j0 s) S
13 #include "soc_C6748.h"9 O3 }$ K1 j- x6 i
14 #include "psc.h"
2 z L/ x9 q" z3 L 15 #include "gpio.h" - L v; U9 c9 }6 E) k- Y% |
16 #include "uart.h"# C* q/ j; r! U
17 #include "uartStdio.h"
: H; z1 J" r+ g% A( r: `" t, U 18 & D/ p/ [: M& q
19 #define OUTPUT UARTprintf& h; M2 M4 g4 B7 E! a
20 #else
2 k- D# e* _0 i2 O 21 #include <stdio.h>% q6 H* w9 Y1 \3 `1 G
22 #include <stdbool.h>( H' \9 ~% |- e; |, M
23 # }2 o: T- S' [7 C% x
24 #define OUTPUT printf6 ]6 t( C, X( @ F# Q
25 #endif6 N% a3 l5 ?/ N3 T6 s1 k( R+ P
26 : s, ~# _. d- `. |7 z
27 /* Log init */+ n) Z6 ^) ]6 \9 S& p7 y! W
28 #if OUTPUT_TO_UART1
- S( B8 w. B9 L 29 #define LOG_INIT() do { \6 d, n5 e$ @5 H4 l, g1 g% h" Q S& z' z
30 PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, \
# [, g1 \! i1 G" |, ?0 S 31 PSC_POWERDOMAIN_ALWAYS_ON, \" B) P2 Y- M2 B4 z& o4 ~
32 PSC_MDCTL_NEXT_ENABLE); \) P( `+ R5 B, w- g* e- C% b# g
33 GPIOBank6Pin12PinMuxSetup(); \
) [& V6 \4 W3 @3 {5 g" X 34 GPIOBank6Pin13PinMuxSetup(); \
/ ^: l3 e0 V) C8 m7 L5 b7 K9 } 35 GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT); \
* S2 R3 m ]# h- U9 a4 \9 f 36 GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT); \
# A O J5 z" g 37 UARTStdioInit(); \
8 U/ U4 \" |0 e 38 } while (0)
! m, R& [8 K# E9 ^. ]- I" O s 39 #else- t* t1 R% V0 s
40 #define LOG_INIT() do { } while (0)
4 A! P/ I5 W2 B/ v9 A" N% K! ~ 41 #endif( g" Q3 Y- A! P* S2 u
42
" S% ?) q y+ i 43 /* Log Output */
; x" ]8 ]; z& n 44 #define LOG_INFO(format, ...) \0 ^9 R' x$ Z; c. y- O
45 do { \
: V# f2 _, I& i E/ u9 j 46 OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
" V E/ j" d7 g6 R/ _5 Z 47 } while (0)
2 r; h8 V1 w; w3 ^9 P- | 48 7 p' ^" w5 D3 t5 g: ^( {
49 #define LOG_ERROR(format, ...) \$ `3 W+ Q6 G( e# {% R: [ ~
50 do { \9 e+ d8 J' P' }6 H2 X
51 OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
% K* s; O n U, E$ B 52 } while (0)- r- V0 ]$ m8 _9 h' @+ E* D
53
4 q8 D! |" A6 \ ~) A 54 #define LOG_DEBUG(format, ...) \4 }- P& x5 C' @
55 do { \
. _+ t8 M* O9 h 56 OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \) h6 r4 m% x0 N: x! w) O. ^; O
57 } while (0)/ W! i: _& C5 @: b" n- a
58 ; L6 M1 @! I0 @0 k/ Q6 h
59 #define LOG_WARN(format, ...) \
7 E9 G% v6 h6 T- f% l% O& [ 60 do { \
/ N9 H& Z6 Z; z 61 OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \4 }, F% R4 l: T, V) h( V7 r
62 } while (0)
/ O% r @, i7 P7 ^ 63
. K" E3 G: e# E) f& f 64 #define LOG_TRACE(format, ...) \3 b3 v3 q3 i* @
65 do { \( t1 Z. Y" V$ z3 i8 o
66 OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \) s& h4 ^' L$ N
67 } while (0)" m# t6 s' P/ [4 y" e" i9 o
68 # S! B; j& D& `" [
69 #define LOG_FATAL(format, ...) \
9 B% s* L% }/ H- V0 ~ 70 do { \
1 Z' I5 @" o1 L. | 71 OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \; I4 I2 w/ l, @2 e% v2 ^& n0 m
72 exit(1); \6 Q8 b! ~$ g* Z' s" S
73 } while (0)' B# o- O% E/ W+ v
74
4 Y8 z4 F! q6 i7 ^8 H2 i. }, M 75 /* Assert */$ f3 V! \9 B0 G9 `7 ?
76 #define ASSERT(EXP) \) \$ b R2 c% G+ e( o" o% q
77 do{ \# Q" f9 d# p6 t% X9 @
78 if (!(EXP)) { \
l7 c. ~1 v8 B1 V: | 79 OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ ); \: Q/ `6 k" t5 d' }" C; B8 O" M" T
80 exit(1); \* z1 |- A5 C+ K; ?" U ?$ F
81 } \5 j/ D, o8 S: v( X7 Y0 n% R4 I
82 } while(0)
$ J7 \$ o. q3 z, R; l! O5 Q* j 83 ; J+ } z- R H
84 #endif
J* [# |+ j8 V5 u8 U! v |
|