|
1 #ifndef _LOG_H_) _ l9 V) \- K
2 #define _LOG_H_
( X+ R# K4 {1 v5 d 3 ! }( K9 B. r2 M* w/ {0 s, W
4 /* 0: printf; 1: UART1 */
/ \# y% c9 r+ `! C: B$ {; I 5 #define OUTPUT_TO_UART1 1
1 g: h# p0 k u( [; d) O" d' ^. A 6 ; d. Y$ m; Z+ b7 }3 t1 S
7 /* Switch Log Output */( s4 y R' P& D3 p, Q
8 #if OUTPUT_TO_UART18 A+ b8 D6 i% R: t- T* Y
9 /* For UART1 Initial */
1 U3 X. J M0 Q5 @( G 10 #include <stdlib.h>
# @8 K% B" ^% E( T* d; K) H 11 #include "hw_types.h" 4 p g( S$ a/ F5 N$ w" }
12 #include "hw_syscfg0_C6748.h"+ P1 ]; z. F$ e
13 #include "soc_C6748.h"! \9 C4 u$ M1 J( f( A8 ~
14 #include "psc.h" 7 ]- w6 N& X/ z* C: z; K; j
15 #include "gpio.h"
% e9 k5 Y# i# K 16 #include "uart.h"
( Y! a7 O6 r# f& M 17 #include "uartStdio.h"
( h* \6 _' S0 y- V4 Z# B1 s 18
' J' H3 L; x p 19 #define OUTPUT UARTprintf
3 ?3 P/ u% h, j1 I9 t' D 20 #else1 M* x. {* L( g( L2 F" R9 g: z
21 #include <stdio.h>9 U# D8 a+ m; R- Z; z
22 #include <stdbool.h>
4 H/ A$ Z. L- F6 Q 23
8 o# m" P- q& ^# V4 @4 ^& x1 d7 H6 \ 24 #define OUTPUT printf
6 T: z4 f6 [. U1 N# v7 j 25 #endif
5 c r& }' K& ?5 K 26 8 p- q0 \6 L% H/ a
27 /* Log init */
/ S: h' d; e( b5 w% T; n; C- V 28 #if OUTPUT_TO_UART1
9 z. g: i6 `. V 29 #define LOG_INIT() do { \
; g: j8 B# g' F/ o7 B( t. L 30 PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, \
' Y T. z* ]8 f+ A# \8 C3 T 31 PSC_POWERDOMAIN_ALWAYS_ON, \$ i8 r3 `6 J" p% @
32 PSC_MDCTL_NEXT_ENABLE); \
5 R; l- P" k9 S+ L8 z+ C0 R 33 GPIOBank6Pin12PinMuxSetup(); \2 v5 ~% {4 S- ?: c$ a! G0 G
34 GPIOBank6Pin13PinMuxSetup(); \6 U' A' t, S2 l9 i7 [3 d1 V
35 GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT); \
7 V) f2 A m" L Q9 ]6 n 36 GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT); \0 `8 K, a! \& l% C3 i. r6 _8 S
37 UARTStdioInit(); \. ^- I& `0 G) ^/ s; \( F: Y* A
38 } while (0)
& a c' P/ p* A- u) }) C- Y6 g 39 #else
. o9 L3 n" X H8 @: [( } G 40 #define LOG_INIT() do { } while (0)
+ k+ N. }, r+ G$ j 41 #endif* R) V; B: z$ {2 x% p
42 # U9 P5 v" @0 H
43 /* Log Output */
4 ?' ?7 U k( n* r8 R 44 #define LOG_INFO(format, ...) \' u' k3 o9 @2 @( }, Y
45 do { \
6 G% K. T: Y3 B% \" C- t 46 OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
$ U( f9 s) l# w4 A# ~2 L 47 } while (0)+ `! u- i( @( z' |% h7 k( C
48
5 n5 U: r7 T9 [- c' x, g# I% M 49 #define LOG_ERROR(format, ...) \
% @- P4 Y" A% O4 w# W 50 do { \5 O( x& @& U/ W3 L0 e: p+ d
51 OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
; b4 h$ a4 B# h; S3 f6 h$ n 52 } while (0)! u- j7 B% g( |9 d
53
3 O4 f, ]0 f1 i, q @ 54 #define LOG_DEBUG(format, ...) \9 x' _; i: }3 g! S0 w- i
55 do { \
( o5 }/ t0 v) W7 O- H/ y% s 56 OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \& d0 Z- O) F' F4 _& d7 \
57 } while (0)
; D* @2 P9 ]# U$ V* ~& t% W 58
2 B3 m' X6 q2 h4 M" f 59 #define LOG_WARN(format, ...) \
6 Q6 @- ~! K6 X e6 R; _ 60 do { \
& d; L( u" V7 g6 Q+ v- N 61 OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
6 h, _3 M- F6 n5 |' U% w9 @+ e 62 } while (0)
% D4 R1 Z9 W3 W' d3 p" [ 63 6 _/ c7 E5 T. N4 o3 b, s# [
64 #define LOG_TRACE(format, ...) \6 F5 Y/ a" L8 l, Z; r
65 do { \
9 u$ G5 K, F# q* O3 g 66 OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
2 ~4 g0 _. I3 \ 67 } while (0)% F+ f3 E0 Q! |$ u3 p7 k
68 . I( B& C# O8 v# N4 M
69 #define LOG_FATAL(format, ...) \
7 j7 N! V8 z% X1 l7 A: P% x 70 do { \
7 _ u0 j2 A# }8 U8 t3 [ 71 OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \. ^, r" _6 Y9 P$ j) v4 K" K) v
72 exit(1); \) O) B% g1 E! M# ?% X
73 } while (0)
K. U4 y+ ]' z 74 8 N7 J' Y: x9 ~
75 /* Assert */: a2 P) Y2 n/ n* I/ b# G; V
76 #define ASSERT(EXP) \
; N; n0 x& P& a( ?/ _ 77 do{ \+ S8 {, ?9 s4 h8 h0 \8 a
78 if (!(EXP)) { \
3 ~$ n! `% k# [4 R8 d( O 79 OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ ); \
8 C, I/ |, d/ r+ \; R7 h6 S) ~, n 80 exit(1); \
/ u! j I# B- z) y" S$ } 81 } \
! g" { D4 Y6 d) _ 82 } while(0)+ h+ l9 @' j& K; {6 Q
83 1 Y2 n& p$ D) F# Y) x* ]2 n2 F
84 #endif/ a3 W+ G, T( v8 ?0 |/ H+ }6 x
|
|