|
1 #ifndef _LOG_H_
; N/ ?( M6 `* e% T8 i0 z 2 #define _LOG_H_
, e3 f) m% P% V& V; l- w 3
6 ~$ Y: l. n* P 4 /* 0: printf; 1: UART1 */( G- A& ] c" U% W, Z* X$ x
5 #define OUTPUT_TO_UART1 1
, {- v( ]1 E! K* C1 w4 ~, J; r) E7 [, a 6
- }2 @. ^% g0 ]7 l5 ` 7 /* Switch Log Output */
6 h5 |2 v4 s# W; I& ] 8 #if OUTPUT_TO_UART19 t8 B1 @) ^7 @
9 /* For UART1 Initial */: F( z s, W( o8 Q( L7 l
10 #include <stdlib.h>
) r0 z) N9 N1 J4 J; ~& I 11 #include "hw_types.h"
# ?+ P+ d# L$ l( ]; n; t& l6 ^0 [! H 12 #include "hw_syscfg0_C6748.h"
8 E% ^1 o* \: S' v' I 13 #include "soc_C6748.h"
$ W6 c: X% Y" X! N/ q 14 #include "psc.h"
7 T$ _% w$ T% Z$ T6 ~ 15 #include "gpio.h"
' L3 ?( R) s+ i/ J 16 #include "uart.h"
1 d; k8 ]0 i. [" C, Y1 T 17 #include "uartStdio.h"
% M+ ^3 @/ M* l 18 9 V0 Z+ f# e( \4 v8 h
19 #define OUTPUT UARTprintf
$ q/ @- C. r, C0 v3 S% | 20 #else
v$ N* z2 i$ V$ r k 21 #include <stdio.h>( o7 n) U8 k" K) n' Z
22 #include <stdbool.h>
4 @1 I) p' ]. U( P, L 23 * ?) w3 A+ I+ i: t
24 #define OUTPUT printf
/ T6 ^8 p/ u' B$ M* I# ~ 25 #endif7 x* ~1 G/ b. |3 w$ o6 S4 P! W! w3 [9 |
26 % _ @, I1 y p% {( L
27 /* Log init */
( V2 j5 x* n% z, F1 B! u 28 #if OUTPUT_TO_UART1
6 } P. D+ t4 E 29 #define LOG_INIT() do { \
2 O9 K2 x# X% U4 P" e) G( e 30 PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, \
2 }1 R; h2 a" p, Z, O2 N6 R 31 PSC_POWERDOMAIN_ALWAYS_ON, \
$ B) E0 i1 u1 N9 v- a 32 PSC_MDCTL_NEXT_ENABLE); \
* _. q/ Q/ K* w" R7 }3 w2 V 33 GPIOBank6Pin12PinMuxSetup(); \0 U! |" M/ w- g
34 GPIOBank6Pin13PinMuxSetup(); \: [9 Y6 y" f( u# U
35 GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT); \9 a1 D& d9 i/ _2 R7 w- ]( l4 E
36 GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT); \$ ]# H) e2 j; X6 s
37 UARTStdioInit(); \6 B9 J- f; W2 c* \* _
38 } while (0)
1 N0 x( L' M" v0 x6 |" B 39 #else
. V$ {8 M( N; z4 f' e 40 #define LOG_INIT() do { } while (0)
/ o- j& x, ~) f, f0 P) S. J 41 #endif
& A: U' ~# r5 f5 Y 42
6 e. z& j: w% t' G 43 /* Log Output */1 ?7 s- a( r, p$ |
44 #define LOG_INFO(format, ...) \
# R- v$ S; i: _6 k" k& U0 n5 X 45 do { \
, a; l! B8 ?7 ~! r8 |6 Y: |0 ]6 K 46 OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
) s: r4 |' C( ~! }$ p9 |1 W( Z 47 } while (0)9 C, m) Q* }+ I% h. Y
48
5 b0 H% {/ t: t: m! D 49 #define LOG_ERROR(format, ...) \
5 J( c7 f% U8 Y- X& [+ v' S" b 50 do { \; Q! O# |/ E G D. }# c
51 OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
) O$ z: p5 N5 g, G) R( k3 J% G* M 52 } while (0); T9 M, H- U- d1 Q( ]& L
53 ! ^" i6 G! `2 y$ b0 h; y, n
54 #define LOG_DEBUG(format, ...) \* A9 P. z/ \4 @+ v: {" T
55 do { \' |# b y# Q7 l5 [& A: @) |
56 OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \) B3 \! f# M/ y; l. s
57 } while (0)
8 x# G& T& B7 Y5 Y, S$ h 58 6 m8 S, x$ A; {1 u( u
59 #define LOG_WARN(format, ...) \0 H6 u& W: s+ n0 r% [! i
60 do { \1 ~8 f3 D) X, q/ t$ }
61 OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
; C" F- Y& [ x, J 62 } while (0)6 u0 }5 @' X' X( F4 P3 Y- c( l, F
63 # Q0 Q; f/ N. F/ J5 |9 j7 x' s' U1 _8 Z
64 #define LOG_TRACE(format, ...) \
& h( f/ E3 M1 G6 q: r4 p 65 do { \. n$ X c) H$ \
66 OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
" _6 ^3 s' F0 X2 c$ j+ T 67 } while (0)
) w2 r1 V% b/ ]% U. x 68 . i8 |* D3 B& J5 `" ?
69 #define LOG_FATAL(format, ...) \
- W L p3 `3 Y+ s 70 do { \: k! J( M6 R3 B2 o$ l: L; o
71 OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
; Z8 I2 K8 ~% ~4 _0 J 72 exit(1); \% e! F9 G: L8 V) {7 E
73 } while (0)7 Q& X }5 V' _: }
74 ) u: p0 ]8 S, N
75 /* Assert */; G: V5 t+ U/ W; d6 h9 J
76 #define ASSERT(EXP) \
$ {% Y( ^( M9 x- c3 N 77 do{ \- n( Y3 g; ^9 j. b& ?2 N# U
78 if (!(EXP)) { \$ l4 W: D( p7 k4 g3 p) l
79 OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ ); \
- w" s7 ]0 M6 ~+ Z Y 80 exit(1); \
# h- j3 Y6 C3 q( E9 u. v. V 81 } \
* z6 D7 N% m. Q0 e6 Z 82 } while(0)
6 ]% p$ u+ E. i: Z5 o# _' S 83
/ F; m1 I/ j$ H+ M; v 84 #endif$ y7 X1 }% D/ G' |5 C
|
|