|
1 #ifndef _LOG_H_
) i' q# S& B. o+ C 2 #define _LOG_H_5 T- g+ l4 t) l, l- g n
3 - O! X, d, L t" p+ H+ _; v
4 /* 0: printf; 1: UART1 */
8 t: J0 W# l# d+ h, d 5 #define OUTPUT_TO_UART1 1
, @* e2 k4 q/ x$ n 6
! l: A/ l h* z 7 /* Switch Log Output */1 k7 C( ^+ q4 V& a1 O; z2 D
8 #if OUTPUT_TO_UART1& Z+ i) s' z- w3 o7 C) _, I, @
9 /* For UART1 Initial */
9 M2 m1 L" I: P" w# f6 [7 d 10 #include <stdlib.h>8 [. L5 B5 L' }
11 #include "hw_types.h" 8 H, b' ~; S% v/ @/ X
12 #include "hw_syscfg0_C6748.h"
- t8 K4 m8 `4 k) o# h 13 #include "soc_C6748.h"
* @( O" d: d' a2 t% x 14 #include "psc.h"
0 }$ U* {7 O: ~* v, p- t 15 #include "gpio.h"
4 @6 E) [* V7 a) ] U/ U: h- f' A4 l 16 #include "uart.h"% k( Y- [4 B! ?2 K
17 #include "uartStdio.h"2 f, Y0 x) D# m0 x# p: R
18
7 t9 r7 o) x$ q$ T 19 #define OUTPUT UARTprintf
/ ~# A; U, G0 R; v& }2 V 20 #else
$ v: T u8 A1 {7 y) `1 p* V 21 #include <stdio.h>
( D- N3 f& M( e- u6 K8 D3 F 22 #include <stdbool.h>- G& O, H( a: E- p& v+ W; k
23
% C4 p2 z- H) L( C 24 #define OUTPUT printf2 j' C* |1 r/ M" P
25 #endif
9 X: i+ v8 `! F5 D9 r; F g 26
$ g2 X+ I b2 O& C5 { 27 /* Log init */
; @, D2 @7 g9 S4 I$ ~9 _ 28 #if OUTPUT_TO_UART1. B8 A1 b6 M. e: U \
29 #define LOG_INIT() do { \
4 v0 |$ N4 C$ K* n 30 PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, \; \5 E, g) @7 H: ~% w
31 PSC_POWERDOMAIN_ALWAYS_ON, \+ @8 T5 ^6 _! r G& G. E. H4 B4 B
32 PSC_MDCTL_NEXT_ENABLE); \; _$ {& ]! k& I. N, x3 L/ ?+ R
33 GPIOBank6Pin12PinMuxSetup(); \$ Q, c0 k1 T* g% K X& _
34 GPIOBank6Pin13PinMuxSetup(); \
# Z& S/ }5 E; o 35 GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT); \
$ `! P6 G; B) @* D; j3 V4 y Z; p 36 GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT); \
& o6 n! p2 {2 {" }; T1 w( g 37 UARTStdioInit(); \0 `4 N2 m7 x& P, ~
38 } while (0)) M Y2 R: S, } i& h- }1 a
39 #else
9 }" x9 K4 _( r0 V$ ?, W 40 #define LOG_INIT() do { } while (0)
% p; z1 H1 Y' _ Q1 P 41 #endif3 m9 [" [8 c4 Y9 v& r
42 ) }3 J/ B+ v1 A9 j- }9 P# j, P
43 /* Log Output */9 K- c3 D5 m, z; h
44 #define LOG_INFO(format, ...) \
- D2 u" t5 I1 v3 n) N7 ^# C 45 do { \5 z: I. |( S+ ]$ ]% P- o
46 OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
( p2 R. r u% r/ H3 n- F2 F0 M 47 } while (0)
1 x5 {6 a( J8 G 48
: m) U+ E, W, s( e; N; P0 K9 j 49 #define LOG_ERROR(format, ...) \0 Y8 C# ^* h V' c. F
50 do { \7 l# [* P; P' x: o
51 OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
$ m2 C, y0 u% R+ G: `3 B# w% F0 A 52 } while (0)" v" o5 v s% Q; l
53 . g3 r3 a4 i5 h: k" X5 z8 x7 s/ \
54 #define LOG_DEBUG(format, ...) \
- T* q; Y3 T2 `, m+ p 55 do { \
6 T; t% f5 Q2 t1 @ 56 OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \$ U6 O, M9 D# P% \. N6 E
57 } while (0) U4 w" X5 K6 u8 m$ h
58
R- P& L* M5 S 59 #define LOG_WARN(format, ...) \
% ]. d' F- _: B6 o/ {" ] 60 do { \
+ |0 Y1 s# \' h; {) N" s* V. h6 J 61 OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
" x) A; S5 v4 k& Q r 62 } while (0) F4 o$ R$ ]: b" P3 E" Y
63 + Q, L6 T h( Q1 w! U
64 #define LOG_TRACE(format, ...) \3 B( n6 ?9 x6 ?# S: x$ r
65 do { \
' ~* p8 n' r5 ]- F8 s3 u9 q' C( m 66 OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \/ ^$ v& C: G4 a, n; I( B% a+ m
67 } while (0)/ D( G. ~, x+ F+ V* t
68 3 p M8 o8 c& S8 t h
69 #define LOG_FATAL(format, ...) \+ Q" j1 b$ ]& j0 l
70 do { \# F! Z6 }; s4 l% \- }
71 OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
9 f/ e3 g6 T J0 F 72 exit(1); \
* g0 R3 U0 t- Y' X2 h 73 } while (0)
], W& t2 T) k 74 y3 e/ f2 T% C: ^, q3 L
75 /* Assert */
! |. ~) X% g# Q& q$ @0 `# E 76 #define ASSERT(EXP) \
. m3 I: d& S# ]/ [2 e 77 do{ \
2 v5 u- L! }% }, ` 78 if (!(EXP)) { \( N3 t3 Q! d- t9 ~
79 OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ ); \
. W, y* h9 b2 m- P3 |% P' Z 80 exit(1); \
4 O# e) A: x2 T 81 } \
% H' E1 A: m7 Q* C2 e0 J. F1 K 82 } while(0)* U* d+ F0 P, s2 x6 E; h/ J
83 ; N3 O! m9 Y/ a) j
84 #endif
, M' P) Y% u- H8 r; O |
|