|
|
1 #ifndef _LOG_H_; L6 l1 U) A2 o& R6 k. P
2 #define _LOG_H_7 N6 \/ J6 J x
3 : K8 W5 k- C& y# N! i' z
4 /* 0: printf; 1: UART1 */
4 i7 c* O5 q |' ^) L, v! g: @ 5 #define OUTPUT_TO_UART1 1. Y1 A$ k8 n1 Q3 V3 ] ^$ D
6
) G. w5 Q# u- R( ` 7 /* Switch Log Output */
$ c' O& E- l* o4 z1 f1 r 8 #if OUTPUT_TO_UART1, S4 u) @/ h/ y
9 /* For UART1 Initial */
& L5 x" s5 N, M$ O 10 #include <stdlib.h>
( q7 ?' l( ~9 Y$ l/ ^. Y4 i6 z& f 11 #include "hw_types.h" 1 X4 Y! S% w" c/ s' L9 [4 K
12 #include "hw_syscfg0_C6748.h" \9 S, l8 S( h" P+ p3 l% r
13 #include "soc_C6748.h"
2 |4 t) c' l5 N. @7 E 14 #include "psc.h" : G% W0 C. f% p6 A! U% W5 ?
15 #include "gpio.h" : v: U0 C+ F3 f5 s
16 #include "uart.h"
" A1 Z `, `9 `/ o# z9 P4 M 17 #include "uartStdio.h"
$ _) N8 A& P* ~# p" u 18 9 z. D" s% t$ [/ O: i
19 #define OUTPUT UARTprintf1 ?5 h6 x1 R+ ]! O
20 #else8 ~0 R. r, X' h% `2 S
21 #include <stdio.h>! x5 s7 L& C& \
22 #include <stdbool.h>
& u5 r6 l% C" n 23 ! I4 K8 b8 _2 {9 a6 v2 {2 Q
24 #define OUTPUT printf4 u h9 ^. b% g" F- m2 V4 Y; J0 g
25 #endif0 e4 M$ n* x. B& l- M
26 ( y/ w5 |9 C/ Y& A0 N
27 /* Log init */ j, E g: m1 k( a
28 #if OUTPUT_TO_UART10 {' a+ j# \ R
29 #define LOG_INIT() do { \
) H& v! g* c2 v% {# Y 30 PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, \
' Q' E+ P' K# @ 31 PSC_POWERDOMAIN_ALWAYS_ON, \# n* q$ w' p2 }% |
32 PSC_MDCTL_NEXT_ENABLE); \
/ x7 l- S5 Y3 e5 K 33 GPIOBank6Pin12PinMuxSetup(); \
7 j6 I# E6 @3 u/ \! |. t 34 GPIOBank6Pin13PinMuxSetup(); \1 S5 g/ ^+ k& z+ t F3 r; j5 n
35 GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT); \0 k. d7 L4 F( d4 G
36 GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT); \
% i q7 }% Y$ q 37 UARTStdioInit(); \
* E) ], b, E0 t* i 38 } while (0)5 \$ ]! m' ^8 D1 C
39 #else
4 D; T* Y, D" a4 J5 P 40 #define LOG_INIT() do { } while (0)
- J! ~0 m2 N; U$ A- { 41 #endif" {& N' @/ ]/ O) k
42
' J& S' E* [* F, D3 S4 C9 s7 f 43 /* Log Output */
) @6 s! G& T$ l: ^" u$ ] 44 #define LOG_INFO(format, ...) \
. W; b0 _( @" o" ]9 N 45 do { \
3 n4 {) g' T- o, { 46 OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
7 s% y# r @; ~3 T* v' L 47 } while (0)1 p) S& ~$ R `# I `
48 ; }: J) m3 b" z
49 #define LOG_ERROR(format, ...) \% ~1 I% n7 y0 l3 h# R3 R/ [
50 do { \
3 `* S+ R5 s: j7 x; u0 S 51 OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \. E+ r9 n! x7 n3 {
52 } while (0)
9 {1 d% b8 n) d 53
" g$ t; | ~ Z" a 54 #define LOG_DEBUG(format, ...) \
' H v8 y- S4 X; d6 _ A2 L 55 do { \8 e, y% s$ V$ X
56 OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
% a+ R9 z# ^ r- v9 D6 z 57 } while (0)! y. K2 E; p* y ~1 r1 E
58 g* ?2 Q* N' Y
59 #define LOG_WARN(format, ...) \0 r5 A0 W7 B; K4 i- }1 Z
60 do { \$ a- D- o8 H: }( z6 A
61 OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \6 \/ t5 j! i" n7 g. P
62 } while (0)
& H8 ~4 k j; X7 L% a 63
0 f( z6 t& J+ x/ F: y& e2 P 64 #define LOG_TRACE(format, ...) \
# b& U2 G) E+ q0 i' c 65 do { \
5 r! v v( Y+ u6 `# Q# W* R 66 OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
7 f9 u# b6 A, @7 W9 g2 W 67 } while (0)( X, a3 C3 T( P9 a! [$ `+ I
68
* v. M7 ~$ V( d7 _ 69 #define LOG_FATAL(format, ...) \! Y2 p% |- q3 o/ }$ {: t
70 do { \% \3 g$ N1 C3 I6 {# I( A8 |
71 OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \# ^7 t B& r! `6 M3 i
72 exit(1); \
. q$ X6 L( S3 L7 M0 h0 x0 L9 U 73 } while (0)' z) A2 L4 ]9 Y' M
74 3 E% B0 E! k0 w6 k8 r
75 /* Assert */
" o. o% x" M$ w6 o# k 76 #define ASSERT(EXP) \& Q% z2 I, m2 l/ b! F: V) [; l
77 do{ \
' { O7 m! V% l' j/ p 78 if (!(EXP)) { \
* w# ~# Y/ W+ m 79 OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ ); \
6 U+ n1 W$ L6 a" o, p% q% N1 ~ 80 exit(1); \* q6 {7 Q8 j9 H% F9 c# t" c
81 } \
) ]+ R5 S. Y: O, J 82 } while(0)
Z4 x' I! S2 R; {- z; o 83
4 a0 a. J0 M* C, u 84 #endif( X" G4 k9 i' G+ |5 d& y2 l
|
|