|
1 #ifndef _LOG_H_
& \/ p+ N' H' i* D. d 2 #define _LOG_H_: D1 X* E5 O- u1 X- `, u* C6 n/ k u
3 {# c* X0 l! o
4 /* 0: printf; 1: UART1 */
* s+ P- f# ^6 b 5 #define OUTPUT_TO_UART1 1
, c5 }6 ~5 h/ q5 M' r 6
' ?& N' A2 Q3 N 7 /* Switch Log Output */; z6 O0 ]9 Y% y/ q+ X* o \
8 #if OUTPUT_TO_UART1) @0 V0 k& o0 I, v$ \
9 /* For UART1 Initial */3 f8 u$ V" a" S! C# ~6 I) ~% }' G
10 #include <stdlib.h>, [+ c' j* Q! x0 W: V" m2 R9 s" g
11 #include "hw_types.h" 8 ], } Y6 i# X
12 #include "hw_syscfg0_C6748.h"" `$ d: L5 b3 ]. ]
13 #include "soc_C6748.h"4 K3 c8 F, R/ x5 _. v" t' q
14 #include "psc.h" : P |5 W5 z" {# j% H9 n
15 #include "gpio.h" 4 y1 Q6 i& O4 {/ v7 ]6 C
16 #include "uart.h"
8 [' J* r+ i# i8 a+ F; t' T 17 #include "uartStdio.h"
! w# E; c( c r+ H1 k 18 ' G# o N$ o+ f; Z- w% ~) f7 F/ ~
19 #define OUTPUT UARTprintf
U# }0 I- ^6 K( c5 ?0 N* G9 S2 r 20 #else
/ E4 s9 H$ |$ y) p$ u 21 #include <stdio.h>; e# x$ @/ C. v3 _
22 #include <stdbool.h>
( }+ h. L& f% M' j 23
F6 @, B$ m2 U6 T7 v! A8 k 24 #define OUTPUT printf" `0 ?) P- t# j. x$ i Q6 T0 x
25 #endif
; O8 g/ x6 m9 i q& y 26 4 V' y$ i f. N; F ] V- G+ M
27 /* Log init */
1 v) q% H' I1 S+ K- e0 s1 a( A; r 28 #if OUTPUT_TO_UART1
' E7 q, b4 y3 e2 V* n 29 #define LOG_INIT() do { \3 g; \& ~: f4 K* m
30 PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, \
% b. T# A$ E) j, M 31 PSC_POWERDOMAIN_ALWAYS_ON, \
& V0 o" F# ^% p5 g7 o' b- U' p 32 PSC_MDCTL_NEXT_ENABLE); \
6 B8 H: A9 s( p) [7 P+ m 33 GPIOBank6Pin12PinMuxSetup(); \1 F; e# q2 v$ q- E/ V) e
34 GPIOBank6Pin13PinMuxSetup(); \
5 r: i4 t4 ]* }" M2 U) a& x 35 GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT); \2 m9 w5 F. E/ r* L7 r6 u
36 GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT); \
& V9 Y% v2 l r t. x2 G 37 UARTStdioInit(); \/ |) A5 |. _, ?
38 } while (0)
% b4 q M4 p! E& n% J 39 #else. w: B9 A1 T& Q# n# a f
40 #define LOG_INIT() do { } while (0)
, k: f3 u/ s: y! ~+ n 41 #endif
; e$ R8 i- D3 L 42 6 Q0 V2 C* I* L5 P, O
43 /* Log Output */
5 r$ E! Q% J& }* M8 G" ~ 44 #define LOG_INFO(format, ...) \9 l; C5 |+ ^7 s- a/ q
45 do { \
2 U; z( j& C! J; D 46 OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \/ @( j4 i1 m" @) t/ A* R
47 } while (0)' n* B8 t% m3 \
48
' k3 O! i. B! W! C- a- u 49 #define LOG_ERROR(format, ...) \7 `$ W, d9 r$ `0 H% y% `
50 do { \
4 l! @8 D C: @ 51 OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \. P) K) s7 r# K+ Z7 I" ~
52 } while (0), g P/ T, g/ V/ ~ A
53 & ?. r) X1 }0 l
54 #define LOG_DEBUG(format, ...) \
8 o- Z ^1 x8 s+ X% S- o 55 do { \
! p6 Q2 e, l& D! o5 o+ E 56 OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \% g. `6 T0 @ u/ h: S. t% x
57 } while (0)* S c2 m; S, E1 T
58 , F1 r4 B3 i3 ?( C! T
59 #define LOG_WARN(format, ...) \0 G# L9 N9 `$ A: w( W5 I. [6 k
60 do { \
% }! D# @$ f. J; ^# M- c9 A, H 61 OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
( v: A6 g* x# \1 ]# O8 d 62 } while (0)
8 R7 e% I- N( _) y6 B 63
! B4 A2 K+ x+ [, P9 j7 L 64 #define LOG_TRACE(format, ...) \
0 e8 j% D$ l' M9 _ 65 do { \
. T K# _& r( w" C6 r& J$ G: } 66 OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \1 c7 `8 N g- I" ^9 [3 S
67 } while (0)1 F) s0 u9 P' T0 o, Q7 I' J5 R
68
- E' v2 g9 |1 b2 J7 | 69 #define LOG_FATAL(format, ...) \
`; f+ k3 @' n, q( ~+ z 70 do { \
$ y7 w8 |9 p! @ 71 OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
1 [. T+ O# Z" x7 d8 E6 f8 q 72 exit(1); \
& {. N" c g+ J/ L: | 73 } while (0)2 A) x) G1 |0 ]" x0 g5 V
74 ( l* t6 y3 X8 E5 ]
75 /* Assert */, z8 v* t5 D& r# x' c$ x: G
76 #define ASSERT(EXP) \
3 d; e* N3 T4 c1 Q0 J+ Q 77 do{ \ @ N( d" ?2 L: I- _6 q B
78 if (!(EXP)) { \4 h u3 z7 \# b3 S
79 OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ ); \
4 K0 T2 \% k% A$ h6 S 80 exit(1); \
( R: E& K7 h/ v4 q* _ 81 } \
1 }2 G6 H- O" O* f% n5 w 82 } while(0)
4 t; u- v/ }! g* I 83
9 ]' g) y) w, J0 y 84 #endif4 H% T" `. O7 f5 v
|
|