|
|
1 #ifndef _LOG_H_
! t9 o' J7 T# |2 E1 ^. G p: R 2 #define _LOG_H_
* a$ H# v- i; d0 S 3
0 B( o2 C E; _3 L3 ] 4 /* 0: printf; 1: UART1 */
1 L5 N& P: A* y1 }8 @, Q( ? 5 #define OUTPUT_TO_UART1 1
* H2 q! @" Z/ V% _8 o 6 # F8 u# F" v+ [* @
7 /* Switch Log Output */
6 A- D- h1 h7 N' ^. S; Z3 w2 [0 E 8 #if OUTPUT_TO_UART15 {7 z; y1 H- i0 O) F9 D8 t3 K
9 /* For UART1 Initial */- Y, b" c% v; N3 k
10 #include <stdlib.h>
9 f7 Z( y2 X$ E* r# y2 n3 Z 11 #include "hw_types.h"
0 v9 d/ l& | Q c6 T 12 #include "hw_syscfg0_C6748.h"1 X5 _- f: S0 j# E* B& \
13 #include "soc_C6748.h"
% i: |8 `% \: D" }" r: Q 14 #include "psc.h"
9 D4 p- R! S8 R. y8 } 15 #include "gpio.h" 9 F# ]1 D* m; u2 q& M
16 #include "uart.h"* k. _- t0 H# w W* T/ S
17 #include "uartStdio.h"2 K( ?5 F. z S! W
18 $ D, U. J7 b/ m
19 #define OUTPUT UARTprintf
' V. n" c( t1 \* g2 M 20 #else' f, X5 S! q6 p, I
21 #include <stdio.h>. i0 _2 D( [+ L+ [# V
22 #include <stdbool.h>
% b9 x' ]8 T$ n, O, r9 i 23 * B: e7 u; z' C
24 #define OUTPUT printf+ N2 I& R" f! k
25 #endif
, m( N9 s4 l) O2 i# T 26 : G* u7 P A7 ^- g R( b; g" b; Y
27 /* Log init */6 Q! k- h3 X% R, P" X7 u
28 #if OUTPUT_TO_UART12 e. }! ]6 M- U( _1 T4 W- ]
29 #define LOG_INIT() do { \0 q5 m7 {8 n# B# E Z* h, v
30 PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, \
3 G; H; ~$ D# S2 j 31 PSC_POWERDOMAIN_ALWAYS_ON, \. Y7 N# W- J& k4 X
32 PSC_MDCTL_NEXT_ENABLE); \3 N) L# W' ?' V0 G8 l
33 GPIOBank6Pin12PinMuxSetup(); \
, X4 _ d# L; C" V5 [" C8 o% k 34 GPIOBank6Pin13PinMuxSetup(); \
3 D6 E$ d! t/ ~$ C) ?: K 35 GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT); \
! S5 f, S+ Z3 ?8 j 36 GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT); \ a e: [: o3 X& `
37 UARTStdioInit(); \
: d0 e7 K, K* H2 [ 38 } while (0)
+ `( G" z" e* Q2 q" ]' y3 G& ?4 a 39 #else8 N7 T5 j" {6 l$ ?+ X
40 #define LOG_INIT() do { } while (0)) }- l, i2 L- j- w: ]
41 #endif
d5 n% b, }' ]5 o/ r 42
) t7 ~1 o( N6 _+ ], W 43 /* Log Output *// o$ ~) a& b( H! U0 h% A
44 #define LOG_INFO(format, ...) \3 I- f: k3 R+ U4 |+ v8 x P, P
45 do { \; H5 E; i% f) C! w
46 OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \4 Y0 e: _0 R8 J- e" {: _
47 } while (0)
* V& J6 t1 d& v$ R( X t 48 ; N% Y' l! A' p _
49 #define LOG_ERROR(format, ...) \
' w( R) z- ?0 \; _( R0 b5 | 50 do { \$ W) B0 r2 g, P$ V2 m3 W& ]1 L1 }
51 OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \6 Q7 a; A* P5 }- [* H1 X, f5 j
52 } while (0): D* D' N1 Y1 |; T1 `
53
- S3 W4 v$ D5 }! k9 W. p' h/ y 54 #define LOG_DEBUG(format, ...) \0 J# _0 _- g: R+ J: d5 O
55 do { \
* n. J$ M" _9 D, q: ` 56 OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \# Z O0 J7 R0 N q) S2 A
57 } while (0)
/ I% ~4 U, U' |' Q& D# [/ r 58 ! E7 ^, `0 @% _3 O. h3 b
59 #define LOG_WARN(format, ...) \
0 M ]+ r/ h/ c, H0 j; k0 W, J, @ 60 do { \
- \$ H0 |4 K2 y5 R( b) m( B 61 OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
- Y6 e. I8 R) Y; R/ \% ?0 W 62 } while (0)
w, |5 u; U' z6 A 63 & I' g- E) y! `2 s! n" @3 W
64 #define LOG_TRACE(format, ...) \
* p; V$ D9 @5 L. _3 D d; ^ 65 do { \# \, I9 O: M% c. w# I7 b
66 OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
' O8 s+ I+ F: f9 U8 h% m& ^6 p 67 } while (0)
8 F! `- h% `% D. G9 B/ h% E3 m9 ? 68 8 v2 }* V- E+ j' P+ c* {
69 #define LOG_FATAL(format, ...) \$ v! q; i, c* l9 k4 ?
70 do { \1 b5 D6 h; T% H+ U7 O2 g5 n' f' S
71 OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \8 i! \) @: U4 B/ k5 y! N/ U- s
72 exit(1); \4 W0 n- g" Q9 H2 Z( r6 T+ H \/ n
73 } while (0)
! A& m9 B% W6 N# D3 P$ A0 L( | 74
, J% T+ @' B" [ 75 /* Assert */
. v9 B1 j r, s, _/ }& Y' g 76 #define ASSERT(EXP) \
0 z! g- }8 S Y# n' I 77 do{ \
/ C1 a- ^& _6 K! y 78 if (!(EXP)) { \: r" _' A5 k- f% A& y3 t, G
79 OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ ); \, a1 ?5 T- a& k
80 exit(1); \3 G3 W+ n, H$ f
81 } \( A3 I) e! v0 B, O z) l
82 } while(0)
G# z' Z6 v0 N: l, l 83
! V# p' O% }& m) R* B7 w& q) Z 84 #endif$ k+ I0 c1 k8 |* K7 v: v2 V; H
|
|