|
|
1 #ifndef _LOG_H_
$ c7 C: U- S' v' z, l8 z8 R% S 2 #define _LOG_H_7 K" i2 y8 C6 t% y) e+ ~: p2 f
3
6 H' m6 T& R: L( H' N 4 /* 0: printf; 1: UART1 */% y2 \7 _6 ?) n0 `2 D
5 #define OUTPUT_TO_UART1 1
4 M7 F0 `. m' e 6 " W6 Y, e* W% s* t5 L$ C, |
7 /* Switch Log Output */% T P8 a( `" F5 J4 {
8 #if OUTPUT_TO_UART1
) k5 |" {" p' `0 I/ ^ 9 /* For UART1 Initial */
% Y( N7 C5 x1 c9 b5 V 10 #include <stdlib.h> v, t- `, F; E( }: N
11 #include "hw_types.h"
$ f7 O, f- s3 l- d) E' } 12 #include "hw_syscfg0_C6748.h"! V. s5 S7 t+ {- }8 L, f# e
13 #include "soc_C6748.h"
{9 c9 r' V" m& z( |3 \ 14 #include "psc.h"
A, W; t n: Z* y. b$ R 15 #include "gpio.h"
{! ~$ l5 B* c 16 #include "uart.h"
! Z" Q$ W0 w) s/ Q$ D' v 17 #include "uartStdio.h"
6 T6 }3 `, _ x: k' f 18
/ v4 a: \$ S3 z$ [9 x5 x& g 19 #define OUTPUT UARTprintf' \, z: T2 Z1 p+ G$ Z
20 #else
/ y6 S! P" }* H6 i 21 #include <stdio.h>( Y6 X$ r, g8 ^" |
22 #include <stdbool.h>
# }+ e% o2 B& l& l+ `' Z 23 ! X ^ K8 y& T7 T: A( @7 _
24 #define OUTPUT printf
/ Z H' C( j6 X+ e, \ 25 #endif
# l" f4 k/ v2 _/ q1 d 26 5 ?% X P) {& b% g/ ]) M
27 /* Log init */
4 |! P3 z4 P+ a, X& Z 28 #if OUTPUT_TO_UART1, L! `- ]' i' p% D
29 #define LOG_INIT() do { \. y5 G' a2 | x* Q
30 PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, \2 {8 x, A9 Z7 a5 W5 q
31 PSC_POWERDOMAIN_ALWAYS_ON, \
9 a: w$ U" n6 U/ v D' L- g 32 PSC_MDCTL_NEXT_ENABLE); \
7 \* s& b; x( n+ P) V 33 GPIOBank6Pin12PinMuxSetup(); \
# U6 q) N& @/ n. S; ?4 H 34 GPIOBank6Pin13PinMuxSetup(); \/ ?4 K' K: s' Q# I& S/ j
35 GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT); \
, N8 y0 S3 V6 f+ B& D" Z 36 GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT); \
2 E0 V# Z3 J# A A% u( r% i 37 UARTStdioInit(); \
( r* T1 F9 {9 F K 38 } while (0)7 z8 y Z! O+ e3 v- d, n- H3 N
39 #else
5 h* K+ F! x/ P* H 40 #define LOG_INIT() do { } while (0)
% ^+ J: l& ^# {1 b4 _2 r 41 #endif
2 i! y2 U: \3 ]2 j 42 9 S- b1 J. ^) ?/ ~
43 /* Log Output */; u" m; i6 N7 Z+ g9 P& H
44 #define LOG_INFO(format, ...) \
: k) U4 K6 r: o* T" ?; ^; f- | Y* I( N 45 do { \
, p V! r+ ?) K1 {9 i3 q* l$ d 46 OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
; H: @ P" t5 T4 T/ G) | 47 } while (0)
" r1 w6 A# l, z 48 # t& k/ { V0 r8 N/ a5 g
49 #define LOG_ERROR(format, ...) \2 ^$ K" C; \2 s
50 do { \7 i8 q& J. F. g2 p3 t+ ~0 e% T+ j% M
51 OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \( _: T/ t1 R6 j8 B! b" T
52 } while (0)+ K$ l2 l9 i- {: G$ z1 u% P
53 1 X4 |# a! G8 \" m4 C* d- a
54 #define LOG_DEBUG(format, ...) \) e/ K( v" p8 [0 H+ g7 t/ d9 u
55 do { \
* n3 t2 R5 c. M9 l 56 OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
* P3 z: z! J# e9 z/ a# Y* B$ X' O 57 } while (0)
+ ~& z& _5 I4 P$ J 58 ) E" k" B+ N4 t& i6 G5 j
59 #define LOG_WARN(format, ...) \% S5 d- O/ J5 }: B
60 do { \
1 @. H; l, K6 Q0 j, e 61 OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \& [3 j2 Z4 C/ ~9 T
62 } while (0) f* p+ u! q) ?3 y8 H4 Q8 u
63 " b. Z2 P) U, w7 |: y2 t/ i1 f
64 #define LOG_TRACE(format, ...) \$ J$ G5 I- K5 ~3 B8 H( V6 d
65 do { \
& F/ e Y$ e. o Q! V% S; S 66 OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
3 Z, T- @7 C: \6 I: `& L3 { 67 } while (0)
5 g8 C! c, ? D4 R0 c) f4 b7 t* M 68 `1 s: E9 D: g. i8 ?
69 #define LOG_FATAL(format, ...) \1 b+ P! ?; _* |) }
70 do { \+ o3 v- I# ^" g+ R8 T; J, L3 m
71 OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \* Y/ u8 B' z* C4 h
72 exit(1); \1 `1 B9 v6 H' L) z `
73 } while (0) S, ?/ w: i+ z+ k" Q1 u; _
74 + }* |$ J1 ?) G% q% P4 w/ Z& b! O
75 /* Assert */
1 S1 L W+ @8 k 76 #define ASSERT(EXP) \
9 E9 T' L+ C0 P- B0 o+ o. ` 77 do{ \2 \7 `3 {, E9 s8 p: B: H
78 if (!(EXP)) { \1 ^ v; Z1 I) \+ H
79 OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ ); \+ }& d8 G8 X R, B* L3 o0 c, L/ E. s+ R
80 exit(1); \
. d. h9 P B q+ P* a. F2 {# ~. d 81 } \
* ^/ K6 u& w, ] 82 } while(0)- q! s2 E7 ^) H# |- t
83 : B' O) F+ H) p& x
84 #endif
+ m' X4 p& ^. s+ Q e6 W' T |
|