|
1 #ifndef _LOG_H_6 Q5 X$ E& O4 h' O1 t
2 #define _LOG_H_
) \0 V- l2 U- u% S+ U 3 2 M& q1 U* Z9 W/ i: \9 G
4 /* 0: printf; 1: UART1 */
/ a; k+ b3 M+ l4 Z3 v* } 5 #define OUTPUT_TO_UART1 1
5 \; D; s) }5 X( A 6 4 |% V M$ ]0 D# R, o. Y
7 /* Switch Log Output */
( x. R0 c. u) \& x$ F' R6 \$ k 8 #if OUTPUT_TO_UART1
, p/ r5 X' A5 z 9 /* For UART1 Initial */
- b5 C0 d3 L+ x7 ^9 S 10 #include <stdlib.h>
5 }! V5 [7 J7 w0 Y 11 #include "hw_types.h"
9 v" Y0 r0 u) R( q& N 12 #include "hw_syscfg0_C6748.h"" b7 d" @8 e, x" c$ r. k. w+ U
13 #include "soc_C6748.h"
" u# ^, b; u4 S j, T. I 14 #include "psc.h" % K# E0 B0 N! c6 w) c
15 #include "gpio.h" ' Y! G3 a# B" y8 D( \: ?0 M
16 #include "uart.h"
, ^: S/ P% d+ Q [+ P" C 17 #include "uartStdio.h"' a. @& W; {' B5 O4 y/ e
18 / }4 S6 r$ j P% I) q2 k3 i
19 #define OUTPUT UARTprintf/ x' o, F6 g" G" E' \9 p6 H
20 #else
B4 h6 D6 r' E- w f: ^ 21 #include <stdio.h>) k: k' {7 k$ p0 j1 s. n8 F. x
22 #include <stdbool.h>( |4 e% {9 O0 B, v( Q! T6 S
23 9 a& }! U+ F k
24 #define OUTPUT printf
$ m0 C7 h2 {9 C. T7 Y v 25 #endif0 P2 z6 \7 k1 P
26
5 z% B8 A: r# m9 u+ U# L 27 /* Log init */
/ e& n/ x4 I% }% U 28 #if OUTPUT_TO_UART1 p8 j9 u5 I6 r5 | T
29 #define LOG_INIT() do { \8 d. P8 V* P. ?5 \
30 PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, \5 X3 o4 b6 K: M
31 PSC_POWERDOMAIN_ALWAYS_ON, \
& o. c9 T1 X" @) ?( ^7 R2 N 32 PSC_MDCTL_NEXT_ENABLE); \
, y; y. V6 A) W( c* R0 Z- p 33 GPIOBank6Pin12PinMuxSetup(); \( b; o; W6 k2 B: V, w* A [) ~7 L
34 GPIOBank6Pin13PinMuxSetup(); \
' b' k2 {+ W! P3 T1 I( o 35 GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT); \
7 A4 w1 L+ W, U 36 GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT); \
# [" Q3 b9 i2 L 37 UARTStdioInit(); \
; z3 w+ c( [% x |7 a3 p 38 } while (0)% O- N" j! X* A/ V) y3 z: V4 x
39 #else) a: Z6 F7 w! y1 k2 M$ @- N. R# f9 m
40 #define LOG_INIT() do { } while (0)
3 b0 Q& Z6 A& M7 R 41 #endif
) D% a1 l" r" x" s7 {, ~) Z* z 42
/ ]# R6 Y3 H9 S9 k" a. k 43 /* Log Output */
' N8 h% _) W5 w1 B4 _' B 44 #define LOG_INFO(format, ...) \
- `0 G C2 x) ^: d: v, f 45 do { \ F" v8 l6 S( B+ T' \. r! j
46 OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \, S/ j* }; Z( o+ j, w- }& r
47 } while (0)
8 t8 j1 K7 B# z& F. j 48
3 j a5 h$ I, L6 j1 F! k 49 #define LOG_ERROR(format, ...) \2 R- l% ~: G- ~/ C6 m7 W$ Y6 R
50 do { \; c% g: K2 R& i
51 OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \+ T0 P8 V0 y+ j8 l" E$ E' g
52 } while (0)
0 G. M& Y8 z) s3 J/ g/ C' p 53 ' h; H: l' F1 _
54 #define LOG_DEBUG(format, ...) \
% z, F# v$ g# f2 C- C) S- D 55 do { \
9 K+ ?3 ?0 L3 X5 {: Y% X 56 OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
! [2 L- m+ U: k4 j* K/ e8 I. I4 P 57 } while (0)
- u' V. ?7 H6 j+ p2 | 58 / u/ q0 q! W; p+ H8 H
59 #define LOG_WARN(format, ...) \
9 B: p0 J& v; b: K% _. ~; m 60 do { \
5 ^- n& _5 ^( K8 u! \: H 61 OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
7 z3 w6 v0 _5 O H8 u 62 } while (0)
9 M( c2 w5 L8 x/ { 63 5 T1 x6 M# Z2 T" G
64 #define LOG_TRACE(format, ...) \
8 v4 d# j& m$ B% e2 q 65 do { \
/ A% v9 o* J- E6 E. _1 n, c. ` 66 OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
1 d% Y. H) X# ?8 b; k+ M& K( |) G 67 } while (0)8 g' l* W" J6 G4 \% [. {7 O
68
, B- z+ y9 N" e3 r1 s' W 69 #define LOG_FATAL(format, ...) \
7 X- \/ Y! {6 ?/ |; M 70 do { \
% ~& J5 J7 r3 _% s* @, R8 R 71 OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \, J, @6 l# u7 J/ u
72 exit(1); \# j% y* {& `' l6 |
73 } while (0)6 c5 u% d2 h8 o1 X' T& N
74
0 i8 Q9 Y( O3 i5 ^% p 75 /* Assert */6 [2 e! r' ^6 y. U
76 #define ASSERT(EXP) \
1 T6 p8 l$ ?$ g! \+ E+ \+ j9 v1 [ 77 do{ \# h+ ]7 j. @6 A. N1 @
78 if (!(EXP)) { \0 {/ M4 v# z- W0 x' D# q
79 OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ ); \
6 E6 M$ `& p, D* m3 S* t/ [- b 80 exit(1); \
8 v5 s+ U& |/ S; A& y 81 } \$ b) g! {# S; B2 O9 X6 }: y' ?
82 } while(0)% u+ d7 ~6 w6 s6 \3 C
83
6 h. u8 N5 x. ^* _) j5 f6 G 84 #endif, k3 u' @) m3 m
|
|