|
1 #ifndef _LOG_H_! J8 P" y7 j. ?" S7 l
2 #define _LOG_H_
/ o1 g- Y9 f l+ [ 3 ?& R F( w$ U# p c* {4 ]
4 /* 0: printf; 1: UART1 */
& D( O1 l% X6 d/ G& Y: l 5 #define OUTPUT_TO_UART1 1
% J- O* l3 t% N 6 0 i) ^/ q( \2 z/ X
7 /* Switch Log Output */
6 Q1 g) `) {& g/ W q) N0 [3 I1 M 8 #if OUTPUT_TO_UART1+ V" t: ?# C2 t% T( ?( \
9 /* For UART1 Initial */9 e. @5 i+ }+ y3 p" k% q
10 #include <stdlib.h>. G+ U4 J, k3 @0 K, a7 m: B/ Y
11 #include "hw_types.h" % \: w& N) ?) [. r- V
12 #include "hw_syscfg0_C6748.h"
' `" k0 J I8 ~* M7 ?, X 13 #include "soc_C6748.h"
) R( y: C- b2 t( _ 14 #include "psc.h"
$ E8 o4 ~% c, x 15 #include "gpio.h"
9 e% j) d: L4 G" f! s/ B 16 #include "uart.h"
, h( L/ n/ H/ j, ^ j 17 #include "uartStdio.h"
2 _$ V# P+ K' c# ]& D: M 18 $ m% E" E6 B; d9 g
19 #define OUTPUT UARTprintf1 G. o& O" v. |' e, ?( J& W1 s$ m
20 #else
2 q0 O" G5 h3 E. R 21 #include <stdio.h>* A" Z" R& L" g5 n* H2 a
22 #include <stdbool.h>9 i; O& z4 [# S6 @6 a4 \& q1 \
23 0 w+ b7 v# p* H6 G( ?- p1 H
24 #define OUTPUT printf
' v6 C: Q3 t( K' ?, ^' f. C/ x' E 25 #endif
( ]/ v2 O2 }& H3 z) M 26
& ^( g) Z$ q" v) J: H3 F 27 /* Log init */7 c7 C& q5 Q( Z( G
28 #if OUTPUT_TO_UART1" ^7 M; `6 L: P' O& o* y
29 #define LOG_INIT() do { \; x2 e/ g, E6 A$ D: e+ N4 i
30 PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, \! g3 S I: D7 d) K
31 PSC_POWERDOMAIN_ALWAYS_ON, \& T5 i& i% g y8 T3 E; x5 z
32 PSC_MDCTL_NEXT_ENABLE); \
( l& ?+ b4 o; ~; S9 d; j7 R0 w 33 GPIOBank6Pin12PinMuxSetup(); \1 |" m- ]+ t1 ^9 G) ?7 `
34 GPIOBank6Pin13PinMuxSetup(); \+ w8 G2 d4 A# V0 \2 m" @
35 GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT); \% a0 `6 K7 L" d( a
36 GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT); \
7 N: i" Z) x1 [1 ? 37 UARTStdioInit(); \
' `/ z$ v: C7 r; M- T; O# j, [' O8 S 38 } while (0)
/ e9 z" y% A0 e3 G5 r8 d* Z6 Q 39 #else
( s; j1 v4 n, K7 b7 V3 e ~! I- @2 f 40 #define LOG_INIT() do { } while (0)
8 {2 |. M1 e. z" ` 41 #endif
; J. X' Y( @8 y% V8 P8 S* M6 J 42 # J9 q) `/ ^& }& C$ [4 ~
43 /* Log Output */
8 ^9 P4 a! T; d7 e4 B. w1 ] 44 #define LOG_INFO(format, ...) \
8 F8 R j# \7 E4 P7 ^ 45 do { \6 J: B& m2 |: F5 L8 y% u
46 OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \: L% x7 _) Q* O: Z$ A$ o
47 } while (0)- @: K. @! O8 i$ w# ^& E5 V( p
48 9 J8 n" [0 _; m7 i8 y* I
49 #define LOG_ERROR(format, ...) \
* v& G$ J( n0 d: L- L/ z0 [, N 50 do { \# X& ]: _; E# p- U% k$ G+ E
51 OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
- S0 l: {- t" [" s s5 z; F 52 } while (0)
2 J6 e& Z6 h1 [ O 53 . A0 f: O5 |# Z, H( g
54 #define LOG_DEBUG(format, ...) \
, z8 Y: C. a& f9 }2 d. f 55 do { \) D) D# I1 s5 E6 Y. O |* t
56 OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \: D7 [( H2 Y+ V! k& b- r5 d
57 } while (0)0 J# m" i2 K3 R: E
58
$ q$ i H! `8 u0 A 59 #define LOG_WARN(format, ...) \4 g. E) @4 |; n$ p9 ]
60 do { \) t- t9 @- B) o
61 OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
0 l- S3 `- Y9 G3 t 62 } while (0)
7 l- }+ T$ a% H) I& y 63
' W0 E( R$ a! P% g: m 64 #define LOG_TRACE(format, ...) \
; e/ U- u( H/ }9 ?5 [ 65 do { \
% K7 m' A) p, S% ^' P 66 OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \# q, M. K" `0 q0 l
67 } while (0): E% x$ a0 n9 d2 ]
68 % |& e( m) o2 y
69 #define LOG_FATAL(format, ...) \
+ `, E- E: n& f H: s! c6 z 70 do { \+ P2 e0 c( q7 U4 B3 L! @
71 OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \6 N: `& h- b$ M
72 exit(1); \! ~) w7 R) \1 s3 Z( M+ D- A
73 } while (0)% [% S* Q0 B/ z% e
74 $ A u! ~! E6 e Z% m/ m" ^
75 /* Assert */
^0 P) ^0 T# F/ D, x 76 #define ASSERT(EXP) \
" _- x4 P1 R( J- \ 77 do{ \
1 S+ N9 H: v5 c' c( L2 u2 H% M 78 if (!(EXP)) { \6 E9 {9 b4 I, k# k& ^" T
79 OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ ); \
8 b/ e$ {7 J0 B$ p7 _; T: l 80 exit(1); \6 v8 y/ X r5 r6 [ F) I/ y; w9 e
81 } \
- r% \" K5 K0 k+ N3 Q- R! ^9 @& r& A( `- | 82 } while(0)
) A: @6 h- G r0 i6 b 83
' D- J) b W3 o) K% P6 P* z1 @9 z" M 84 #endif2 d" C9 }/ S0 m2 i! o+ y" \
|
|