|
|
1 #ifndef _LOG_H_% l7 n9 \1 |' _2 \
2 #define _LOG_H_
9 ~9 B0 t; ]/ h j& R 3
, M) f7 O2 Y+ U. x c e 4 /* 0: printf; 1: UART1 */
" u+ F8 @/ v1 H3 Y/ i 5 #define OUTPUT_TO_UART1 1
, }" p# a. Y# U8 x 6 5 C- ?% A: b: b F( o1 t
7 /* Switch Log Output */
& p, l2 c/ `5 u+ m: }+ G) }1 b9 [ 8 #if OUTPUT_TO_UART1% r3 R% w, X" b' C$ u' u& H
9 /* For UART1 Initial */
$ Q2 n3 N7 x' L4 ]4 A, R0 e 10 #include <stdlib.h>
! Z: N0 z( ]9 |+ ^ 11 #include "hw_types.h"
H; t5 A; ^' ^. g% X; [ 12 #include "hw_syscfg0_C6748.h"' \; L# X, p. G/ I2 A4 d) t
13 #include "soc_C6748.h"
2 r& G9 [0 }9 B/ w# \! p 14 #include "psc.h"
% u2 r% T# C6 Z q1 z8 ^7 m 15 #include "gpio.h"
7 |8 Q) ?5 {) J, W# t6 {/ U 16 #include "uart.h"3 V- ]2 q' M2 f1 A* u" i# u: d6 }/ @
17 #include "uartStdio.h"
, R' F" s- @+ T 18 ( h: b; z, e1 E* f+ W
19 #define OUTPUT UARTprintf
, x; v0 Y2 ^% R% q1 F% w7 `/ o$ g 20 #else
* o# z5 \2 {" K7 y$ y+ G 21 #include <stdio.h>, C. p/ h/ Q0 J2 ]0 j n
22 #include <stdbool.h>( _- q5 Q0 g* R0 F* P5 x; @+ a
23 ! h! c. u2 h b
24 #define OUTPUT printf% S" y3 E2 e: }) h8 w
25 #endif
8 X, u3 Y$ R2 i8 G1 A2 U 26 3 J' L9 p) {: A# d" c
27 /* Log init */
7 I5 \ `" E/ x9 ]) r0 V. \5 L 28 #if OUTPUT_TO_UART1
' _% w. ]1 |2 L- j 29 #define LOG_INIT() do { \
, K0 i) M, Z. A w. i" F7 S: U 30 PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, \
, E n* X4 p1 H% i9 n 31 PSC_POWERDOMAIN_ALWAYS_ON, \8 \# [9 K7 Z6 Q5 X- ?" w7 P+ y: R
32 PSC_MDCTL_NEXT_ENABLE); \
7 Y8 f" A0 f6 y: N6 _! s 33 GPIOBank6Pin12PinMuxSetup(); \
& R7 v2 N2 @) O. G 34 GPIOBank6Pin13PinMuxSetup(); \
a6 y. |6 }$ Y% Y+ P2 } 35 GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT); \- d: b4 u2 N( f5 a6 ]
36 GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT); \
) X7 J. s; k- K% z8 k" s% |8 O* ]3 [. d 37 UARTStdioInit(); \: \: t2 p0 K# U$ \9 [
38 } while (0)
4 y6 h, r* i6 [3 q, L8 _ 39 #else
; M/ W/ t- _0 \* c, j3 H 40 #define LOG_INIT() do { } while (0)( p7 ?+ z6 ?# m4 t+ K! V; g6 b& M
41 #endif& y5 k, e! q7 S# M7 o
42
9 K! s) q- R, W4 p5 C4 z2 o: p6 I 43 /* Log Output */
. }/ h, X$ w- E% } o9 d 44 #define LOG_INFO(format, ...) \' u' R# o9 W1 _- u5 P# ~
45 do { \
- q) V6 h+ ~% { 46 OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
( c. h& x4 Z c( z- t) t 47 } while (0)
1 M. Y* Y, K! I* V. B/ G3 u0 N* @ 48
) S% Q& N* s) x# O: F 49 #define LOG_ERROR(format, ...) \9 _# U. M' |: ]& U
50 do { \4 p# i' h9 U4 E0 X% L5 U. G5 i
51 OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
* F, B6 O( o1 p# V4 N# f8 ~ 52 } while (0)
, G; r8 X4 v* h4 v2 F4 h 53
. q) p- P( ?: _. m8 u; \( w$ j 54 #define LOG_DEBUG(format, ...) \0 Q+ i" a& f3 m# W3 o
55 do { \
5 E4 I% R8 r, }* t! G* i9 c 56 OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
( n, e W {# d' \ 57 } while (0)
1 q* g3 s/ j0 _4 Z# G, N 58 ! d* ~' M0 l9 q4 ~
59 #define LOG_WARN(format, ...) \( m" R1 ~$ @$ F, B. u q$ l" p
60 do { \
9 @! D( ~' W3 e! U 61 OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
0 o/ E+ {! e5 D- K* N8 ?" p4 P0 d 62 } while (0)6 w* A/ w3 W1 I4 d& Y
63 , v/ K8 S, ~+ `9 m0 S
64 #define LOG_TRACE(format, ...) \
" J* A6 s4 \$ `( R 65 do { \; A' A! E5 x5 a3 W! w
66 OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
% \7 B& Q' y" O. D2 G' E, m: P 67 } while (0)
# Y$ h i% R: E; w 68 0 _+ E' D) G, i) R' t5 ?
69 #define LOG_FATAL(format, ...) \
/ H' R; r. B8 ?) r" Q 70 do { \" b0 G% n: c. i
71 OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \6 `7 Z5 P& [+ D
72 exit(1); \
; v) F$ e/ L8 C2 B& V 73 } while (0)
+ [( q- N* m! s" t 74 9 j4 T9 C! b3 {8 Y1 [! ^3 s
75 /* Assert */7 w9 h* H- F, v/ z) @* Q* o w
76 #define ASSERT(EXP) \9 `6 U4 F* A9 R
77 do{ \
2 a: a6 N" A% m/ l# v3 `) e( N0 g 78 if (!(EXP)) { \; L8 v+ ^1 y! o, [
79 OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ ); \
# t* _9 I) d1 q 80 exit(1); \
5 ?4 {" ?" o' R) H 81 } \
: V( |: Q* X. \6 x: h 82 } while(0)
5 m4 o0 l$ M' C- j# h6 {* C4 f 83 7 a+ |% Q- K& Q
84 #endif
( s/ I @. i! f |
|