|
1 #ifndef _LOG_H_* u6 B1 A& x# [" r: D
2 #define _LOG_H_& v, h% o/ z Y
3
; n) A* O- o0 y6 e 4 /* 0: printf; 1: UART1 */( j& @8 l4 o: \+ {$ F: W, l
5 #define OUTPUT_TO_UART1 18 t8 y2 |( h# f5 r
6 7 o0 l: c2 m6 C5 X9 Z) O
7 /* Switch Log Output */+ I0 U }/ i1 v0 M+ H8 p3 t3 I ]
8 #if OUTPUT_TO_UART1/ Y( a7 b' _) C) x {
9 /* For UART1 Initial */0 t5 `# V5 n9 a' }! g E
10 #include <stdlib.h>0 O V" N: Z: }& }/ Q- T4 ]
11 #include "hw_types.h"
# z. p5 B/ u- e* _9 P f7 Z$ ~ 12 #include "hw_syscfg0_C6748.h"* m( [* n/ c' \
13 #include "soc_C6748.h"
. |7 k# l- N1 u+ ~2 r$ @ D 14 #include "psc.h"
4 i% t& f5 l+ r9 t! [- J 15 #include "gpio.h"
o8 c9 l2 ], y) V7 m 16 #include "uart.h"5 k: E' m7 u' l8 `) R, F p
17 #include "uartStdio.h"
) a( `+ O. e7 F. B* \ W3 X; d 18 ! Y2 S8 C( r+ J2 P0 z. L2 F
19 #define OUTPUT UARTprintf( X: B: W2 f' h% ]' s$ s0 d$ |
20 #else
8 @5 ]0 B( W: I2 J- t0 D 21 #include <stdio.h>
8 f: U9 ^4 V3 C2 B 22 #include <stdbool.h>
: J% N2 {" |" x. |3 P 23 " h. d1 I' V% W/ A& b) e* _9 _" x
24 #define OUTPUT printf
. n6 d; ]) T+ v5 t5 G4 c' o; Q 25 #endif. W! i6 C3 I* l. j, z+ Z0 Y. U
26 $ \) e3 m& h8 s, _2 I
27 /* Log init */3 j [ Y) w1 Q6 c
28 #if OUTPUT_TO_UART1
" K$ O. |2 X4 l: z7 B0 G. S 29 #define LOG_INIT() do { \
" Y2 t2 b8 N4 R9 X 30 PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, \1 O4 s X- H+ u- ^ ~4 b, T6 d
31 PSC_POWERDOMAIN_ALWAYS_ON, \
3 H8 Z- y9 ?6 w4 R3 F 32 PSC_MDCTL_NEXT_ENABLE); \
( ~2 J8 D* W# ~& I$ T0 u1 R6 _& P 33 GPIOBank6Pin12PinMuxSetup(); \
" T8 Z, d9 [4 L% F; ]6 F3 C 34 GPIOBank6Pin13PinMuxSetup(); \! H# K6 Z' R/ h5 t0 Z: P) e
35 GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT); \
) |- I' O2 s& e4 A4 K 36 GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT); \2 v ]! H0 E( ]8 q! p, Q
37 UARTStdioInit(); \/ o& o# C4 ]4 M0 a* Q. W: L9 [( k
38 } while (0); |/ p6 p$ y/ \# {+ v
39 #else1 w# M4 [# v' ^( C& d0 [, B" O
40 #define LOG_INIT() do { } while (0)
% _& X& D6 n# `6 A9 |+ G3 L* V" f 41 #endif
* Y! r& ~& N4 A- j: L 42
; Y5 i, n" Q( Y4 v, l0 r 43 /* Log Output */3 b0 _, s8 c: U1 Y' g! W0 T" u: O1 J
44 #define LOG_INFO(format, ...) \) z0 V0 U. \/ P u; B* n
45 do { \* E9 x# A9 A5 h
46 OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \) @$ c; @1 e/ t. I, i; F& W
47 } while (0)* F) z4 K: |* H9 Q" A" z
48
3 t1 U9 W+ z: L, x/ u 49 #define LOG_ERROR(format, ...) \
7 e8 L4 v ^; C$ `" Z y5 g; L' H 50 do { \
* N5 j3 g3 U6 r' B% E7 X V6 H; n 51 OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
: m6 I1 t4 v3 _" g/ J+ W. i1 m 52 } while (0). W* h6 C6 Y8 O- {4 d! Z7 U* h
53
% I$ M. l: O; W9 ~" b6 o0 R 54 #define LOG_DEBUG(format, ...) \# O' e+ d7 A- W i
55 do { \8 C9 i1 K' _8 l6 E' r& p$ O- |
56 OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \; d$ j8 W2 O5 e( [
57 } while (0)
0 E }$ N1 \/ E- d$ h; Q! C 58
1 f3 _5 W. e: T" J) A) p2 q0 t 59 #define LOG_WARN(format, ...) \
$ x$ t$ X9 _5 ~, o7 w- T) E 60 do { \
. m6 X6 p' f7 E. }/ d1 h2 c 61 OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \: }8 b- a/ w1 c4 O& d
62 } while (0)
! D, x& G" O) _7 v" g 63
# v/ }: r( t* W* x! y' j, \ 64 #define LOG_TRACE(format, ...) \ F. z5 w* J2 P4 k* c4 H
65 do { \
2 M5 W2 Y, _/ p 66 OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \. @) d0 g3 X' R; @
67 } while (0)
# F1 N( P: Y4 }9 Z 68 # y+ _1 a) V: U- A0 z) N1 e
69 #define LOG_FATAL(format, ...) \. N% ~! d1 F$ ~9 |/ f& J- K
70 do { \. x& p. U, S3 ]' M; z
71 OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
9 ]) H7 V: D' ?% d! J 72 exit(1); \
0 u/ ^) F8 u# I0 Y. f1 _ 73 } while (0). r" b% b5 \1 H4 a, g8 v/ E; e
74
( D; H: Q& U+ A+ k x 75 /* Assert */- ?9 x0 ^- r+ w9 o6 M- B! _
76 #define ASSERT(EXP) \0 G, s! I2 A$ X* v0 a5 n
77 do{ \
; y+ S4 d7 G; l7 y 78 if (!(EXP)) { \
" ^1 h2 J7 w1 O! l) v 79 OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ ); \
1 W2 V" o( T. u 80 exit(1); \7 Y e6 q8 W4 N( z
81 } \
/ w7 v$ u# d1 ~8 J8 H- P! c 82 } while(0)
" \5 |9 V1 D1 X 83 / \ F! U5 O5 U' B9 V4 b, v% U5 e
84 #endif
. w% Q0 R. s7 X3 [' [0 T: l0 M |
|