|
1 #ifndef _LOG_H_
2 x% u! ^* M; w 2 #define _LOG_H_
" V! j$ O& s+ w- m& ? 3
! f: Z% b% v r" L 4 /* 0: printf; 1: UART1 */! P% l- J2 W* e# S6 \' d3 L" m
5 #define OUTPUT_TO_UART1 1
7 P3 @7 n9 v( R+ a 6
) n- ^ d4 m" J% G3 y( _! V 7 /* Switch Log Output */
' d) o) Z+ h& ^( ` 8 #if OUTPUT_TO_UART1) q: W/ ~6 e2 e$ Y
9 /* For UART1 Initial */
' \- @$ U4 m# r/ R" O1 O 10 #include <stdlib.h>
7 d+ _+ f+ r% ~+ D. I 11 #include "hw_types.h"
P; h" i& e, s, C& g. e" V 12 #include "hw_syscfg0_C6748.h"2 |5 | }* c i
13 #include "soc_C6748.h"& A5 A1 q" y# b; B# g6 b, ?
14 #include "psc.h"
4 [+ T% O- [4 y2 B$ L2 _ 15 #include "gpio.h" " v m4 Q1 A* \9 c
16 #include "uart.h"
, ^( v" E" n5 N% q2 | 17 #include "uartStdio.h"7 d q3 Q/ J# Q) i. Z
18 , G4 p' y" C5 A$ m/ c% B
19 #define OUTPUT UARTprintf" Q& U/ o+ @. H8 \
20 #else
4 r+ }/ M( ^' T/ F. z; I8 e 21 #include <stdio.h>$ g: _6 I: U) B% f" S
22 #include <stdbool.h>2 U/ g' B( O: V% x& J- q
23 1 k9 z9 m$ I9 g$ a7 h# |4 @; b
24 #define OUTPUT printf
# ^. L' V7 v5 f5 h 25 #endif. x8 v( `9 J; W. p% {& d3 w( t, N
26
; U$ y9 y1 B$ C( M J1 v/ T 27 /* Log init */3 K* I# ]( p9 d% ~
28 #if OUTPUT_TO_UART1% P8 y9 p, {- Q! g" x: F
29 #define LOG_INIT() do { \
! C% `. ?+ H0 }3 B) ?. Q$ p4 d$ S 30 PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, \
' R, b+ d: C* y1 l5 s 31 PSC_POWERDOMAIN_ALWAYS_ON, \# O. S7 e! i2 y* _4 o
32 PSC_MDCTL_NEXT_ENABLE); \
% I- i: ^1 W# d9 I# H7 ? 33 GPIOBank6Pin12PinMuxSetup(); \+ E$ k* z& m$ A" e
34 GPIOBank6Pin13PinMuxSetup(); \" _6 ] b0 B; W% P5 s3 ~% q
35 GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT); \
) h/ M3 K2 l |% @. z% f f 36 GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT); \
8 U P! W* [6 ], n) P4 a0 u2 X' N( e 37 UARTStdioInit(); \- w' s/ U* G! J3 Q
38 } while (0) ?! N$ {2 o- g
39 #else6 U0 k$ {: t4 }0 E5 y4 Y$ g
40 #define LOG_INIT() do { } while (0)/ \/ U( Z2 n/ s9 J1 y- e
41 #endif* \' K! W! h) g' j! z
42
8 c: a/ x( Y- b 43 /* Log Output */% p: Z- v3 x! S0 \: e5 d
44 #define LOG_INFO(format, ...) \
! m, g c; v/ w+ f" i 45 do { \
1 S0 \9 p8 E7 q/ _- P5 r- G+ ` 46 OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
) J- D2 a- e2 j7 E 47 } while (0)# t1 [, n; l9 v- I% p) X
48
. R" m' b- m- \0 O; O5 [* R! U, k* U 49 #define LOG_ERROR(format, ...) \4 F, ~! e" P# @% R5 ~; {
50 do { \
& v: ]- ^, A2 k0 s 51 OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
. o9 k4 ^3 r- T' M 52 } while (0)
3 j/ x% f3 y/ Y9 w/ c 53 1 Q6 G: O$ r: w' @! V- \8 R
54 #define LOG_DEBUG(format, ...) \
% h! H* D3 H- y) } 55 do { \
$ {% o' p( k- R6 J3 Y 56 OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \( ]2 a$ B4 I; B, r: V0 K
57 } while (0)
- o' w+ e$ C' d; Y 58 & o! ]/ A, Z2 X; R
59 #define LOG_WARN(format, ...) \& S( v% |* Q; Q9 w
60 do { \
2 i/ X, o( q: t% R 61 OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \! T! @2 v: G" k" N% [
62 } while (0)! s# ^* {6 O, M
63 m1 e7 E& |3 x( E
64 #define LOG_TRACE(format, ...) \0 s& _* [, ?" w& p% s
65 do { \# A% H+ f7 b' j5 V
66 OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
6 c+ S0 u1 g2 l 67 } while (0)
7 F' z c% `! J! X. T7 o& ~" s( F 68
& _( ] B, ]" s* s+ n 69 #define LOG_FATAL(format, ...) \
+ ?( o( g0 L) x q+ I; D 70 do { \
! y; [ h& B" O* [: p; A- z 71 OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \3 [1 n* c3 C. l! i+ Z8 t2 n
72 exit(1); \
6 M) ^9 R7 |% ]2 q; @% Y 73 } while (0). G/ \: q: S$ u+ w4 ^% G
74
* g; m, F. v% {9 M. C 75 /* Assert */
5 k, }* x9 f6 u5 L- T4 o- I6 T 76 #define ASSERT(EXP) \
7 E4 L' _& G3 B% T 77 do{ \
5 `+ T. }. l( _: J7 F5 [0 W 78 if (!(EXP)) { \! Q8 O- o. i4 J( g6 o
79 OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ ); \
) Y& i/ R/ ?6 X+ b( b( K2 j0 ?9 q1 S' r 80 exit(1); \
- s, M+ U( @! q! A 81 } \/ y5 T% _* F; K3 h1 @- y6 J5 e5 x
82 } while(0)
3 V8 `6 ?5 Q3 s" v 83 ! n+ d/ a$ H9 x) `3 q Z
84 #endif: P4 D7 ~# m, h( L; D- H U' R
|
|