|
1 #ifndef _LOG_H_
! G( w$ }% C( d+ f# e3 G! Z/ M 2 #define _LOG_H_
9 r4 O* H7 I' J7 O 3 # D$ ?/ F( M0 f2 E! [
4 /* 0: printf; 1: UART1 */
- P: q( |, M! B" O; n8 s% y, S 5 #define OUTPUT_TO_UART1 1. D. K8 n3 l5 F. z
6
9 I* [& U5 T0 o/ ?5 S$ ^ 7 /* Switch Log Output */
( a$ Y, n2 P9 s+ q6 T 8 #if OUTPUT_TO_UART1
1 {$ X- O: B2 v# L 9 /* For UART1 Initial */
G2 F' `1 Q0 x. Q X 10 #include <stdlib.h>
& k1 M- y: B1 t0 T- ^5 c4 { 11 #include "hw_types.h"
' e- Q0 ]. ]# A2 n4 h" ]9 ^( M 12 #include "hw_syscfg0_C6748.h"
" w9 A6 @' K, H6 o6 r- N 13 #include "soc_C6748.h"
8 h" B3 N+ x% d9 r( I 14 #include "psc.h"
+ U( Z% u# j( _3 p 15 #include "gpio.h"
, i2 J8 {8 J% C5 O+ d: _ 16 #include "uart.h"
. _% H" `/ S/ X2 s# w* M 17 #include "uartStdio.h"+ _% t$ f) k2 h7 X* W
18 / F$ [6 z, G' r% Y- ?1 M. u. h
19 #define OUTPUT UARTprintf
7 ]" S: ]/ G8 V# B- {9 s 20 #else; z- A) p% ~4 K6 k
21 #include <stdio.h>, D8 n, `% q( V$ _1 s
22 #include <stdbool.h>
# T, F" z- J |# s- p0 A# K 23
& M* b" S& A" B1 V5 ?3 t$ B 24 #define OUTPUT printf
+ a6 ], Z" O4 X! X. l7 K7 v 25 #endif
7 D \; \- T$ o& H 26 8 E0 h9 q+ e+ x$ |
27 /* Log init */
/ X1 T3 L2 l* u 28 #if OUTPUT_TO_UART1
' h: d/ h0 W3 x" S/ |5 v: K- b' m 29 #define LOG_INIT() do { \
' ~2 e) @1 `+ K. m; d 30 PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, \
& k( T8 L" Q- _ 31 PSC_POWERDOMAIN_ALWAYS_ON, \7 C+ @5 q; d P3 x0 s! y
32 PSC_MDCTL_NEXT_ENABLE); \/ N. [# J4 s& q
33 GPIOBank6Pin12PinMuxSetup(); \% z: x6 ?, _4 g- [ }- s
34 GPIOBank6Pin13PinMuxSetup(); \
+ u) g4 h. T/ J0 d- v 35 GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT); \
, T0 M/ o2 t; g. K( n7 m7 g 36 GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT); \, M& x+ D- O0 ~: W( F# a
37 UARTStdioInit(); \
! ~$ R7 p( H( {- \/ f 38 } while (0)& O2 z" l+ G: w) Y$ v1 h' o
39 #else
K% B) B* @* s3 m 40 #define LOG_INIT() do { } while (0). E' T: J/ Z! T& A, \2 ]8 v
41 #endif
1 n9 B8 @0 R) [. {# Y 42
7 i; i2 K. p C, ~ 43 /* Log Output */
% U: {7 Y. E0 O3 c% G; v 44 #define LOG_INFO(format, ...) \
$ o5 C1 [+ P' B8 |* O) c8 q% j9 ^ 45 do { \
; U0 @0 G1 n" j$ p 46 OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \% _! x* k1 [* `) B
47 } while (0)
/ Q: O7 ?2 s# s* Y* ?7 q/ _ 48 $ W) V( G- l t
49 #define LOG_ERROR(format, ...) \' w2 f0 @1 o8 X8 N+ L0 x
50 do { \
8 o0 W6 R5 ~ f; o1 j3 ^) ~7 r 51 OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
# K# z, o( f$ d; @8 c* O- { 52 } while (0)
- b4 l: F3 {) u# T7 R2 I* D6 B9 R 53 ; J- O# f0 {) L( C( g
54 #define LOG_DEBUG(format, ...) \
# I6 l# `& H# v- o7 n% X 55 do { \
! v" {- S) B" Y9 k" X! j 56 OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
6 E. @8 Y3 U$ w: P- ^9 c' x& B: e 57 } while (0)
9 A8 _/ r4 q( ^8 r0 t4 ~' b( x. S3 @ 58 ; L" e$ R# j0 g+ n' y' c, t* N
59 #define LOG_WARN(format, ...) \
4 L2 g( c! Q- y8 a. ~/ r 60 do { \' D) H- ~. L' j# M( d2 P
61 OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
+ \, V* m3 S5 N: N( W 62 } while (0)1 i/ E* z( e: ~' }+ M" Q# a# r
63 ) O8 H. R6 S( u1 D1 U$ J
64 #define LOG_TRACE(format, ...) \' T J, P; C- q0 b L
65 do { \
1 b3 h! K% D. U' n+ h 66 OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \5 J8 n+ [5 [, l6 L
67 } while (0)
0 ?% O+ C7 z3 T 68
- ], i3 {( c2 V0 y 69 #define LOG_FATAL(format, ...) \4 \/ ~6 z: I" X4 m* n
70 do { \
2 W! t# e+ I0 ~1 W0 B 71 OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \" T8 y/ t: @+ ?, D& x
72 exit(1); \
: V4 Y# G' _/ D0 N* T4 _$ J$ I 73 } while (0)
* T6 F2 d0 S4 u" q) G+ |( j 74
" t) o9 L, E) s- \& y 75 /* Assert */: h; h. c" B( i' K9 p# e @8 W1 {- F
76 #define ASSERT(EXP) \
) d, E. G& i- c4 T 77 do{ \+ Y) n- Q- X3 `* F9 x
78 if (!(EXP)) { \& b7 ]& G# M, `' c$ ]! y! L7 I
79 OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ ); \/ w4 O* D! |3 r
80 exit(1); \1 m4 N3 ^, c* {8 \: {6 ]2 C
81 } \
- h4 [" @7 E$ O2 X 82 } while(0)! P2 l* E; U M9 b) i% g: q( V
83 ' N: k; d, K" W! _* G9 d8 V" d
84 #endif% c; }9 O3 P2 P! d) z5 L8 ]- x9 R3 K
|
|