|
|
1 #ifndef _LOG_H_3 L+ y w7 k# p2 d. K, i h1 P
2 #define _LOG_H_
) P- |+ ]# n& _. B 3
! f6 i1 T, I" ?7 R! S" {/ X 4 /* 0: printf; 1: UART1 */
- |% A9 x) _; D( }7 ~+ v) ?$ v 5 #define OUTPUT_TO_UART1 1
2 J! ?7 ~( W% r D. i: G) o+ q 6 " f' }- R8 }+ `4 a/ o' ?
7 /* Switch Log Output */
^4 w" m! w# v' c3 s 8 #if OUTPUT_TO_UART19 Q6 N+ h! o7 m. V% E. x* n
9 /* For UART1 Initial */+ o: D$ R4 V b" n- Y
10 #include <stdlib.h>
% M" p( C! q4 u. l1 [4 ?6 e8 p" r 11 #include "hw_types.h"
7 e. u: W0 l3 M+ c) y b, H H3 { 12 #include "hw_syscfg0_C6748.h"
' H( V; E: b* @7 G 13 #include "soc_C6748.h" I0 X5 d- |% |2 a% u, u2 ^# B0 e
14 #include "psc.h" " d# f, f* m! c6 f
15 #include "gpio.h"
/ J% a9 e1 F! g; M 16 #include "uart.h". ]" i# o# |' |2 Q# f; d
17 #include "uartStdio.h"" O- z9 ~) z v' a! }0 F! M
18 0 U1 d, e B4 w$ A% j; U1 i) ]
19 #define OUTPUT UARTprintf
B5 r6 \- a% `3 i5 I1 ? 20 #else( c2 r7 s5 l* I! [
21 #include <stdio.h>* x1 X2 s( ~8 A, D+ M6 u, f4 K
22 #include <stdbool.h>
- X/ x1 `) x3 X. Y3 U# R- T* ~ 23 ) p: y6 K9 u$ m6 [# Y( W
24 #define OUTPUT printf# V9 f' Y5 P& \7 I+ u1 a0 T
25 #endif6 Y: n, l& Q. ]8 x. f8 g
26 |; f$ j# Y. F9 h: S
27 /* Log init */2 k7 ]6 @ V) \
28 #if OUTPUT_TO_UART18 \# H' F' ~. I/ i
29 #define LOG_INIT() do { \3 H! ^5 S0 e" V* }! C3 a
30 PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, \
: A) w5 X) n+ Q* U$ i4 J 31 PSC_POWERDOMAIN_ALWAYS_ON, \
?1 H, i, ]3 l1 x' N 32 PSC_MDCTL_NEXT_ENABLE); \; P* O5 E/ t$ A7 b
33 GPIOBank6Pin12PinMuxSetup(); \
9 H6 s: l/ k6 ]( a4 R& \ 34 GPIOBank6Pin13PinMuxSetup(); \' e0 j J' S8 a
35 GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT); \* |; |8 b+ F M
36 GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT); \' E* _# ?8 [. s) v! W" ? S
37 UARTStdioInit(); \6 u9 \$ n1 c9 u! F* C9 O
38 } while (0)
% P3 E( [6 r! E& L 39 #else1 Z; _( B: r6 c1 a0 g7 ]
40 #define LOG_INIT() do { } while (0)8 `, o: w. Z% L M
41 #endif) M( B4 ^: e; ^& v- p9 A. |) S
42
. q+ f! a' A: T! U# F 43 /* Log Output *// B* Y: X Q- b$ H
44 #define LOG_INFO(format, ...) \
! p0 q* k2 p8 n5 M 45 do { \
, U7 W) g# j8 z, _ V# v 46 OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \1 R9 k2 O% ^8 i' B# i/ |* B! s
47 } while (0)- t$ u1 B( R6 t3 V; x- @$ s- n
48 9 `% T# j- d! X6 H: U/ j
49 #define LOG_ERROR(format, ...) \
" @# g+ E& u0 H; V& S+ n 50 do { \; S4 g$ A9 F C3 z
51 OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \5 n% }9 P4 k: H) }3 i
52 } while (0)
% t# P2 G! V: g8 V 53
. J! { U8 s5 ^5 t& Y& _: @ 54 #define LOG_DEBUG(format, ...) \
! S: ? c, T6 @2 g1 u5 F9 ~ 55 do { \8 {2 e, |) c5 P, T _6 ?0 J
56 OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
: O( v: C5 b: m 57 } while (0)# a: U# L% t4 Z% l
58
; `% v/ l4 E1 ?' v B 59 #define LOG_WARN(format, ...) \
% r# _! r% k- ?/ `9 _' e" I+ ? 60 do { \3 M3 O" A8 p$ t1 N8 k
61 OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
k( @. g( n8 g2 I# E* d+ t 62 } while (0)
7 R/ y4 h8 b# F; ` 63 9 ^: F' p7 h, |5 E7 F& r
64 #define LOG_TRACE(format, ...) \' r! ~. D& z# U6 U2 R
65 do { \
5 l# g: K: G8 E 66 OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
# s5 y8 Z# Q8 S1 r% ~3 `# w" I 67 } while (0)
" V! w' F8 U# s! ]7 _1 f 68 " M2 N6 j! Y7 |9 t
69 #define LOG_FATAL(format, ...) \; ?, c. b# J* }" b
70 do { \4 T4 F- [2 l, Z1 j1 i, B9 V
71 OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \# v( W$ O0 b0 O$ m9 E, @! `
72 exit(1); \$ B* y* f: N3 [, P6 {
73 } while (0)
8 A8 `. t9 K! N; s/ W5 n% d 74
+ q8 m' D1 X2 E- c 75 /* Assert */
5 M9 m% W' A! K2 k 76 #define ASSERT(EXP) \
7 X Y; z* ^) P O& |+ e+ {* O 77 do{ \
1 @& L# d! Q3 ^$ K- u 78 if (!(EXP)) { \9 p* C6 }3 U' {- d5 U1 ^/ n1 A
79 OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ ); \
! `# U( R* F1 j8 b% R0 ]+ h 80 exit(1); \. O7 x7 Q- F2 y' O/ ^" o
81 } \$ F( Q/ R- M, @- W! f# E$ p4 g
82 } while(0)
: B1 ~( N' o+ ~+ q9 @6 _ 83 " V( K: `* d2 ~* u6 X
84 #endif5 _6 ^4 d5 U4 D* K; g) r
|
|