|
1 #ifndef _LOG_H_. w" E/ B0 i" H8 @6 d! s9 C& \5 s' _
2 #define _LOG_H_# S1 |, k6 K" ?7 g% S0 b2 z
3 - ~& P" \: O/ U- V! S; k9 `/ g
4 /* 0: printf; 1: UART1 */0 F: l/ O2 M3 X% D) Y/ q
5 #define OUTPUT_TO_UART1 1+ m% i. G5 \& @
6
5 L5 c$ Y: W( L" g6 \! m" T 7 /* Switch Log Output */5 @# \1 B$ G2 c
8 #if OUTPUT_TO_UART1/ Q9 w: [: _" i8 { P' z
9 /* For UART1 Initial */
S1 [, c, V H1 M, Q 10 #include <stdlib.h>
5 x2 w. ]. ?, _7 L- C 11 #include "hw_types.h"
# ?" T) l5 y: w 12 #include "hw_syscfg0_C6748.h"+ {+ f+ g) e I$ i; W, Q
13 #include "soc_C6748.h"5 M' y3 q/ z) u: K% z8 m
14 #include "psc.h"
' D% Z% A8 [; K1 x9 {# U% \ 15 #include "gpio.h" , c% }) T/ ^& z* J& }. V
16 #include "uart.h"
: x2 Q2 n% c2 P+ v 17 #include "uartStdio.h"+ w0 L3 q) N3 Z" m3 v
18 + M) F% g- T. `. ]- U* J
19 #define OUTPUT UARTprintf
/ k H) j/ p' q7 s! i! g. j- v 20 #else
5 {+ a% Y: F8 q. C% a; J' S 21 #include <stdio.h>! C7 H' F# p2 r
22 #include <stdbool.h>
, ~/ I4 H2 C; I" [% o8 v 23
# c) f* G }4 D5 ^- H 24 #define OUTPUT printf
" {( o2 z+ M: V: D) A1 E* e 25 #endif: H4 x1 [- x/ Z- c) x; Z' w
26
* ^5 n2 n; ]% R 27 /* Log init */4 H R0 h6 K1 G& U0 D
28 #if OUTPUT_TO_UART1
, f7 r$ |& y+ t# S( o* h0 \ 29 #define LOG_INIT() do { \
; a4 B" t6 @' ]& D2 V3 o 30 PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, \
. B& w) |- I& e U: ]" o1 W 31 PSC_POWERDOMAIN_ALWAYS_ON, \6 o1 _' {6 a# R5 p3 n+ t7 K
32 PSC_MDCTL_NEXT_ENABLE); \' x% s. S) q4 o, \1 c% a
33 GPIOBank6Pin12PinMuxSetup(); \
0 M+ L. s3 F7 d5 i9 K+ G7 i3 I' O 34 GPIOBank6Pin13PinMuxSetup(); \
1 N# ~1 |. T$ F 35 GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT); \
# C. c z; _: @ 36 GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT); \
/ q' c7 y" G7 l' e% f& m ^+ ?4 g 37 UARTStdioInit(); \; m2 C. M2 R( ^4 p4 g9 h
38 } while (0)6 F0 L6 I9 A, F
39 #else9 ~; b" {0 s7 D2 V o7 r
40 #define LOG_INIT() do { } while (0)3 U" @4 Q E) D$ ]( W0 P
41 #endif
( [ D& I" [6 h D+ Y' f; i7 C 42
/ l5 X4 I( R& J 43 /* Log Output */
3 K! T; R3 d9 U( c8 m; ?, { 44 #define LOG_INFO(format, ...) \4 {& k; }: A* G& a+ q
45 do { \, X& [" r" G1 o9 e
46 OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
: _3 }0 a/ r/ A% |9 n+ V2 r 47 } while (0)
& Z& O6 k' X7 L( i, K( ? 48 1 J' ]# K! {9 Y7 c" k; D+ J1 Z7 ^
49 #define LOG_ERROR(format, ...) \
% Q4 Z. s! y4 M 50 do { \
5 Y' B) Q. r9 T4 x* L: B 51 OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \& ^. z9 k# p& \; Z% l
52 } while (0). q# H, F# C2 L2 l
53
7 ^0 I, t: p7 B% u! }( ] 54 #define LOG_DEBUG(format, ...) \/ A7 e4 X& b/ d# I5 v$ o0 x
55 do { \( F& c6 ~. O( M) [/ w
56 OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \6 U% Y& C2 h2 |
57 } while (0)
7 f" n' P+ ^" O5 V' B% s 58
0 T7 l* F' i$ w% t+ A 59 #define LOG_WARN(format, ...) \: O/ S9 X/ x; i6 K! c' E. p
60 do { \
6 S4 R. d9 m2 j* \$ \ 61 OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
- X5 v0 K2 X/ K; y0 G 62 } while (0)& A- A0 e2 g0 ?# ~- n9 ?4 r$ Q
63 1 n* z. F" S' S. ^1 b( j* j0 l$ @
64 #define LOG_TRACE(format, ...) \
) u& A; U2 h( q3 ?9 P% @/ V 65 do { \
Z) X) z& }9 X b* y 66 OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \/ R! x( z, {. H5 P1 V
67 } while (0)
9 d. h- z" C6 T9 m1 z 68 , x) j& x2 u w2 _& e
69 #define LOG_FATAL(format, ...) \3 o5 u" M: `5 o
70 do { \
1 b2 m& O7 q8 k& d2 ~ 71 OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
. K) f% i8 d/ z9 S5 j% Y 72 exit(1); \
: R" R' M6 Q: A$ N8 O& o: W* P 73 } while (0)
8 Q6 D5 G: c H) T 74 1 e- [" _) }+ X, {
75 /* Assert */1 a) K' u) ?- u9 {+ A% Y% P" o' `* t
76 #define ASSERT(EXP) \7 ~' ]0 Q) u/ ^
77 do{ \
) A% T6 w/ y3 b9 x. C" ?3 v: A1 } 78 if (!(EXP)) { \
5 ?2 t t7 ^6 ^; l 79 OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ ); \
- k3 \' {+ D+ O" F P! T 80 exit(1); \" w9 Y$ g: d* \" Y- e. {
81 } \0 Y/ [2 p1 I! |6 x `; K3 I+ D
82 } while(0)" C# K, V5 |; Q. i* V8 R1 S: \6 a" }
83
0 {" @ B/ W2 a: ~0 z 84 #endif! K" }' ]+ p3 x9 l$ m, ~
|
|