|
|
1 #ifndef _LOG_H_
0 @& ~' X( t( I- U7 D" A 2 #define _LOG_H_
4 ?$ V1 u8 `! f+ {6 i) I 3
' E9 |2 V+ K. ^6 z: \% p# w* O 4 /* 0: printf; 1: UART1 */
% {; n* C5 n6 s3 d2 { 5 #define OUTPUT_TO_UART1 1
2 V0 I4 E- e- ]8 S- J* C& ^# q 6
% ^/ p/ S2 _; b/ e! g 7 /* Switch Log Output */
( t6 I( `0 y0 j6 Y/ f 8 #if OUTPUT_TO_UART1: b O2 ^" V# E6 ?5 t
9 /* For UART1 Initial */ o3 j# y. Z7 f" m
10 #include <stdlib.h>/ u# g2 @/ A3 u
11 #include "hw_types.h" % Y) S& x9 G3 n* \
12 #include "hw_syscfg0_C6748.h"; V( M+ Y! E1 ~2 B" `% E
13 #include "soc_C6748.h"
; B) Y& @: L! q 14 #include "psc.h"
1 S( U' m" `. d" I, U 15 #include "gpio.h"
/ ~+ X6 I, W* N* [ 16 #include "uart.h"
% \* M* H: I/ a9 p+ v 17 #include "uartStdio.h"
" k3 C/ O; ^, H ^ 18 3 y2 U8 H g0 D' I6 ?
19 #define OUTPUT UARTprintf, u) D! m1 a# e% {
20 #else
/ b/ P, b, ? D0 U5 p3 e4 s 21 #include <stdio.h>
: ?9 B; m/ j* K$ W! j7 Z8 r 22 #include <stdbool.h>
3 I8 [+ v: F; S2 Y+ W 23
# T6 ~9 ^6 a3 a* c! h& V" b% H 24 #define OUTPUT printf
; z* K" d) \0 Y _! a/ L 25 #endif. y! r, d; C$ o
26
+ p" t$ D/ ]" _, t$ [ 27 /* Log init */4 r4 K3 Z, H7 L
28 #if OUTPUT_TO_UART1
" G* Y+ D2 G& Q8 J) O 29 #define LOG_INIT() do { \
: W1 I: W9 P+ w8 m V$ |# v 30 PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, \7 R T5 Q/ L% T0 Y$ `" ]& a
31 PSC_POWERDOMAIN_ALWAYS_ON, \
; ~" t7 `- C( W- m' Y( @' y 32 PSC_MDCTL_NEXT_ENABLE); \3 w, H4 u7 c" M" O1 k# F
33 GPIOBank6Pin12PinMuxSetup(); \3 @' u) k* n1 e9 v/ g
34 GPIOBank6Pin13PinMuxSetup(); \
( K! T3 ~( ~, F0 d3 h, \2 A7 s6 z+ ] 35 GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT); \
1 O+ q* U7 i9 I& ~/ M8 L8 o- m 36 GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT); \- F; q$ ]( { M) @! J. G; \
37 UARTStdioInit(); \) \% f6 a4 G3 }* s2 b: u2 E3 v) _7 C
38 } while (0)
% h+ | _3 a- Y7 y 39 #else- [0 a3 a( H) G: O& r
40 #define LOG_INIT() do { } while (0)
* u) g8 u; P4 C* S; | 41 #endif, g O7 ]5 ?- h7 `+ b" z* c5 T
42 , i3 R0 g0 f: q6 b- B
43 /* Log Output */
V4 s' g. V. y 44 #define LOG_INFO(format, ...) \8 A: d Y6 N' Z% k f6 i S
45 do { \, H8 G3 ~% O4 i- {
46 OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \1 i% k5 k' k9 Y5 D
47 } while (0)0 ^0 h' p$ _. t$ k0 ^# H" z
48 ( ]) C$ B8 g! }
49 #define LOG_ERROR(format, ...) \% m t" X' w) }: n/ e! d+ |5 Y/ @
50 do { \8 v2 _8 f5 }7 S* T, b. P
51 OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \$ T! c, j9 G4 w) R' V O. i3 {: V, M
52 } while (0)- g# |, Y2 F. I1 g. `& S6 V
53 2 b7 X2 \6 H3 H: l
54 #define LOG_DEBUG(format, ...) \
& Z7 w2 Z Y6 w h) r 55 do { \9 X. r0 W" k) t/ O. @
56 OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
! i$ N I# }$ R# F& f 57 } while (0)( a+ @# X! e2 s6 ^- ^9 r7 V" _0 e
58
) v# A, ^+ f2 o: B 59 #define LOG_WARN(format, ...) \) r# v |2 o: r0 R& f
60 do { \* Y5 s8 L. ?8 L) r9 {& X; x
61 OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
& o6 r% d0 g5 O# e 62 } while (0)2 t1 L m! h! b4 D
63 ; ^! \. r3 k! ]4 H2 N ]& ]
64 #define LOG_TRACE(format, ...) \" x9 p% S& q- E
65 do { \1 j) @7 L2 g% D {& V( ~
66 OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \ b2 x+ R. T( u1 `* }6 F
67 } while (0)
' u/ i, P" N5 ^+ j# g 68
3 _: t3 ^. d/ e 69 #define LOG_FATAL(format, ...) \
9 M' z: R$ g' d3 [2 C' K 70 do { \
' o! W5 H" l3 H( j% x, R5 F+ v 71 OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
1 t6 c/ o. D5 Z/ y! L; R% P 72 exit(1); \
, i2 n5 J4 I: e6 O 73 } while (0)
- I4 T. X' d! j) q; N. p, q 74 4 f) _, z& W: w; [
75 /* Assert */
8 n5 q. D7 F8 \1 j% a( N 76 #define ASSERT(EXP) \
/ S$ r( Y( l" X# ^1 ~9 _ 77 do{ \
5 Z0 R9 W& K8 R1 x9 N, G 78 if (!(EXP)) { \
/ Q8 B) G/ [9 b9 v' I% H 79 OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ ); \
( X* T7 q+ _/ C8 E* S, i 80 exit(1); \! u& v# V, g2 n5 @* k
81 } \
# P! ]' J- ~ A9 M, F 82 } while(0)
/ }' w9 B- Z( K7 |' U- }; J 83 " z; A# @; }5 x5 x1 d ?
84 #endif
, u. J, v4 i, Z; k |
|