|
1 #ifndef _LOG_H_" f( G4 {- h9 s# C3 e" h' t
2 #define _LOG_H_
n6 n" K8 \+ o' [ L 3 ! Y+ B( c6 U* w, J m5 }
4 /* 0: printf; 1: UART1 */7 |! _8 _: q) Q
5 #define OUTPUT_TO_UART1 1
2 p+ q+ m$ S( K o0 v 6 7 x) x( h4 t& n1 V/ K6 G
7 /* Switch Log Output */9 ^- \$ [; ~ R2 H# i4 O
8 #if OUTPUT_TO_UART10 z5 ^' i# c2 C! e" {
9 /* For UART1 Initial */& u) Z: P" n7 x- Q R0 z( b) N
10 #include <stdlib.h>
! z: R4 P r b: B& k 11 #include "hw_types.h"
/ M6 N G- u* l- s6 U' _( H+ h* d 12 #include "hw_syscfg0_C6748.h"& y9 Y% w# ~; H( L
13 #include "soc_C6748.h"
: t' g: P1 o( L: R4 v, ^ 14 #include "psc.h" ! e) x. u6 [7 i: g& E
15 #include "gpio.h" & `$ r. {# f% q8 }; o
16 #include "uart.h"
9 f, R3 E( P" p( T; n: T 17 #include "uartStdio.h"
e1 U# P* M7 S* R9 y% G4 h 18
! F' T5 k8 [6 R0 y 19 #define OUTPUT UARTprintf
: v1 J, R; j8 q/ o1 G 20 #else
, O- d" |3 f. V! ~5 c& X 21 #include <stdio.h>2 `' i2 c9 Z" V
22 #include <stdbool.h>
" N# o' M8 y6 s4 a: [" q 23
* m6 R$ o& M8 D4 y# Z 24 #define OUTPUT printf, Y! N4 i* u( B/ ^2 d& `' a& ?
25 #endif
1 C# Q: \8 K7 h. q: Z2 h1 B 26
+ m0 g* j x* v 27 /* Log init */1 b* P. b* X8 T" W$ A
28 #if OUTPUT_TO_UART1
. T" s2 ] g8 S6 ~( a; p% |1 }% Y8 V 29 #define LOG_INIT() do { \
. i& p" r9 z1 G' v6 r+ U: U c 30 PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, \
7 v O2 B7 k/ P/ D [3 Z 31 PSC_POWERDOMAIN_ALWAYS_ON, \$ ?8 ?+ f& q9 s# @: J/ J# e
32 PSC_MDCTL_NEXT_ENABLE); \
2 c# ~2 l3 I6 [8 W6 N8 ~1 k 33 GPIOBank6Pin12PinMuxSetup(); \1 _# ]! v# i# _. i$ c
34 GPIOBank6Pin13PinMuxSetup(); \
. m- n& r- b! n9 q" d. t* M% _9 A 35 GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT); \
! F9 z# z0 X5 \9 ?- O0 V5 Z 36 GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT); \
, f, G+ }9 @$ E3 i: J; l 37 UARTStdioInit(); \
1 U. s( @0 |4 s& t 38 } while (0); E, R+ {( k! x: _
39 #else: w% F8 J" z: ^- s5 ~# p# B
40 #define LOG_INIT() do { } while (0)
2 S0 C/ }+ S5 n- z8 F- \ 41 #endif! a6 V/ D2 j$ f+ i7 E1 \
42 + H/ [" z& L2 S# N: w. I
43 /* Log Output */
( W4 W) p7 k7 I 44 #define LOG_INFO(format, ...) \
% }8 V y( ~, w+ |+ [; X 45 do { \. [3 H8 N3 v2 R1 C- |3 h" [+ T
46 OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
. b8 [/ F$ H, M/ V 47 } while (0)9 b$ L) @- j0 g
48
& Q" V0 W a/ p0 Y2 k 49 #define LOG_ERROR(format, ...) \
. S0 {+ c5 L% U3 F 50 do { \
" w0 J/ e) d$ X/ p1 `& }7 E6 i 51 OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \5 y& z+ A6 Z; j* y
52 } while (0)
1 V$ d2 ^6 c$ A9 n X u5 n) ^ 53
, Y( a, i( S* F r 54 #define LOG_DEBUG(format, ...) \
" ^3 J! n- w* V( C 55 do { \; H5 @3 ^, B# A' a7 F" E: X
56 OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
. N3 X B+ x2 K6 ?% W& l: p 57 } while (0)
* I' _) ^! a# g& m* ?$ h4 @ x& z( w 58 / `1 Z( R9 r2 a* t3 P! t; m
59 #define LOG_WARN(format, ...) \' w2 ^& C0 ~, `" N
60 do { \6 C# j; ]5 g/ `
61 OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \; M/ q. @" T! [0 ?9 J1 g8 Q
62 } while (0)' q4 E( y+ u, h7 ` v+ ?
63
) F0 \3 X% G8 z8 r 64 #define LOG_TRACE(format, ...) \3 G* j+ ?# K; w
65 do { \/ G3 M- _! f" |8 Y
66 OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
+ f( H: s/ I6 y+ l3 J 67 } while (0)
) r/ F0 s, `0 Q' z 68 / p2 b4 }* A" N N3 }* I* Q
69 #define LOG_FATAL(format, ...) \2 V' o6 i) `, _, Z) B/ A
70 do { \
3 j% [# e" j3 C: g |8 \+ V 71 OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
! o' b& X0 H( B* n 72 exit(1); \8 U$ A, h/ b3 Y' S3 C2 ~2 @0 T+ }2 L
73 } while (0)
& a/ U) p: p3 m( s+ G0 E 74 & [3 C: |. s* X& ^5 U; E) q3 i L
75 /* Assert */' b( }, d2 }4 J( c
76 #define ASSERT(EXP) \
" D9 {' w* Z6 E6 E6 g) O 77 do{ \/ m$ ] l( a1 i7 F, W- |6 d% J$ F
78 if (!(EXP)) { \
! C1 P1 v8 I8 t 79 OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ ); \ k! @2 _) `* V7 U. b. H
80 exit(1); \
4 C* ^6 `8 |" L: Q' u: ` 81 } \
! H& i0 r. }8 M+ w 82 } while(0)5 z' H5 S7 m. l% v; n5 @
83
- Q# j. G( S; S1 e, N$ v& P 84 #endif
0 T1 u4 l' q' y2 A9 s {2 f# ] |
|