|
|
1 #ifndef _LOG_H_
5 I. }1 D* B9 C6 [9 \1 l2 x 2 #define _LOG_H_
+ U% P3 ^% g% ~/ S; ^7 b 3
4 n2 o* ]5 F6 o* V& S" m o 4 /* 0: printf; 1: UART1 */+ r9 T& P6 R X* \1 T
5 #define OUTPUT_TO_UART1 1
* H2 u2 ?% H J4 o3 e3 [ 6
, |3 i# h* I% u0 r8 w! I# y 7 /* Switch Log Output */
+ }# F$ N( R @/ {1 @, ^# b' v: @ 8 #if OUTPUT_TO_UART1
- I; a$ |3 F, Z- \ 9 /* For UART1 Initial */# f1 d* ]3 e% N. X- V9 s; s
10 #include <stdlib.h>7 Q1 k0 }0 l6 t0 x1 _
11 #include "hw_types.h"
6 c" l+ V; y3 }: S 12 #include "hw_syscfg0_C6748.h"$ C f, x1 `/ G4 A( C! T7 [
13 #include "soc_C6748.h"
: ]5 D! A) X9 H* c+ ?) K 14 #include "psc.h"
9 B; }+ O; g4 V, B$ M5 |" n 15 #include "gpio.h" ; `# G2 p; m, ~; Z4 t
16 #include "uart.h"
4 V: l5 }$ L' s2 T5 T# [$ ?1 _ 17 #include "uartStdio.h"- o! [/ D3 g3 g0 S( ?! f/ [
18
1 o$ P2 b) t0 B/ h; [0 ^ 19 #define OUTPUT UARTprintf
2 v! D% o1 v2 K: F- O 20 #else$ g7 t9 M6 C; p) a9 G
21 #include <stdio.h>
' I2 r, J) b( P0 y3 \ 22 #include <stdbool.h>1 R- f; S, ]( X1 x5 B6 F1 ~: b
23 ; j! f0 I5 _% K8 y- Z8 m
24 #define OUTPUT printf
+ _/ ?9 R% D. K2 Q9 X( ] 25 #endif
! R( E7 _% L" l* ~3 T 26
' A+ Y/ W# Y& f; D 27 /* Log init */
3 J6 d( N8 ] N& x 28 #if OUTPUT_TO_UART1; f) s: Z# Y$ K1 F( l, E2 F0 d
29 #define LOG_INIT() do { \
6 k8 z# X$ y6 ]' F 30 PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, \2 p% V) ?" j( P% p" O
31 PSC_POWERDOMAIN_ALWAYS_ON, \( i* i; Q* q; }. V
32 PSC_MDCTL_NEXT_ENABLE); \1 z) t A7 N' `( d6 B
33 GPIOBank6Pin12PinMuxSetup(); \3 j" O, f! I. z6 u
34 GPIOBank6Pin13PinMuxSetup(); \4 [/ c- F" D1 Z4 ]) ~) i( C9 `5 \$ [
35 GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT); \
) e k0 j) g( B 36 GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT); \
. d! k/ ~& A8 O 37 UARTStdioInit(); \
- d: u1 j6 f; Y1 C/ N! W/ F 38 } while (0)
1 G& W& J) O* u+ l 39 #else
# U% z W% f W 40 #define LOG_INIT() do { } while (0). ^: Y% E& Q' g
41 #endif. |3 A: W$ d7 \9 Y" ?2 y7 @
42 ) c6 y& ?. E/ L% H+ b
43 /* Log Output */
( j, |+ V- Y" R9 E- D3 ^: q 44 #define LOG_INFO(format, ...) \
" O8 s( h4 ]5 r# ]8 } 45 do { \" m* v5 Q2 b3 e# f# a# a# p! B* Q
46 OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \. A% o. a L/ c2 L% C, I( r- l
47 } while (0)
`$ [5 T- j1 \- r( H' h( G) I/ S" L' z 48
2 f( d4 \. I8 m 49 #define LOG_ERROR(format, ...) \
$ g, [7 d$ I A# d: o. y 50 do { \+ e! L! ?! ?- A0 d. M$ n& _
51 OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \6 O- o1 p& I( V, S
52 } while (0)
+ ?1 `4 a1 d6 _6 I" Q6 Q 53
1 q6 ]) a! p& Z3 g0 C! i2 X 54 #define LOG_DEBUG(format, ...) \
- B! v( i! a4 L 55 do { \
" j2 B9 Z* n; h5 W5 u 56 OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \/ L# u7 w1 i5 r$ s
57 } while (0), G. {/ }3 [) d
58 - E7 H1 [" S+ {9 U( x; g$ M
59 #define LOG_WARN(format, ...) \
4 }3 {3 X: l4 N' n& e0 O 60 do { \& T: q9 Z9 M% T* e# s0 I
61 OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \6 {* B# K7 _! f9 O( }% o9 b3 ]
62 } while (0)
; c: y$ x; g# p u# d: x 63
4 m6 F- C: o6 ~ 64 #define LOG_TRACE(format, ...) \
2 x8 y( |( L$ r1 {) ` 65 do { \2 @3 D' l/ W0 c9 G( q# J, o4 c) Y
66 OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
8 N' f3 A4 H- j2 S 67 } while (0)) p- X$ }( C0 O) w H% U& M
68 0 h- i0 h/ F7 c' V2 h) ~
69 #define LOG_FATAL(format, ...) \' E( v4 I5 f' U) O# x; U
70 do { \" l8 U" _# N T u' h
71 OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
" o9 x$ ?4 W$ A2 x6 F; X9 L( ?2 O 72 exit(1); \
3 C. k- j; q: ?4 }- r8 l 73 } while (0)+ g; r, D+ r% u, L, Y" @
74
9 x2 g/ s0 W5 ? 75 /* Assert *// U5 x0 m$ A7 q$ J- H
76 #define ASSERT(EXP) \8 z, j) f$ k) o- T& B/ ?: T
77 do{ \% j( D7 L" r& K" a; [
78 if (!(EXP)) { \* m" c, D* u% E3 _* E: C2 _/ a
79 OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ ); \
9 Y6 X7 x) Y- C$ M 80 exit(1); \
, I* `, T) a0 A A9 e! G- C s 81 } \
. @$ ]3 D1 W- w# \+ } 82 } while(0)
. L4 J2 g9 T7 _, w 83
" o- w; n5 M' I 84 #endif
1 |0 C% T* E: n* U |
|