|
|
1 #ifndef _LOG_H_ R: O. e: G$ e# ]" y
2 #define _LOG_H_6 S# T0 j# _/ [3 q7 L/ {
3
! i0 ?$ c* L2 @1 V" k 4 /* 0: printf; 1: UART1 */2 I$ O+ J$ M) L U( K8 }: ^& r
5 #define OUTPUT_TO_UART1 1
# i9 r8 j6 z9 B0 f' h2 z6 U! W 6 8 r/ P. W2 k v6 K' }% q: Y
7 /* Switch Log Output */
0 U+ O( A3 o6 g) I9 A$ ~$ w 8 #if OUTPUT_TO_UART1+ j. v* G R, |9 k2 V6 _
9 /* For UART1 Initial */ h5 |/ V, x: R
10 #include <stdlib.h>, g$ }! {6 c' `, p+ m6 w' X
11 #include "hw_types.h" " w& L3 t$ s/ W" g# G8 C/ M
12 #include "hw_syscfg0_C6748.h"
* R3 r& Q/ L) O2 [; p+ u; \3 K* { 13 #include "soc_C6748.h"+ Y) d" V) T, R
14 #include "psc.h"
1 a7 f% q P6 M+ i 15 #include "gpio.h"
& a' r2 |4 c5 M3 j7 f0 ?4 g' H1 p" N 16 #include "uart.h"
! z, v6 v9 G w4 x9 ~/ b9 M 17 #include "uartStdio.h"7 T# O/ d6 W; V" x3 |
18 / [' S7 i# E% B" K0 ?( f* b$ F2 J" v
19 #define OUTPUT UARTprintf: |' H& h7 \; _& J( v3 X
20 #else' c2 v% W+ j& v$ S
21 #include <stdio.h>
3 H* P3 ]6 E- e5 k/ v4 b9 K2 F5 E+ { 22 #include <stdbool.h>
$ r' y: |; g! L: U6 X& Z: J 23
6 { q9 x; x; s 24 #define OUTPUT printf
- Q/ [$ h/ s% M9 | 25 #endif6 B& x Y/ i% i1 B2 M
26 ' o" D+ h5 f' y/ o
27 /* Log init */$ d+ K! h$ a" R" S& B1 @
28 #if OUTPUT_TO_UART1
5 V N5 R8 i) a) H3 m5 P 29 #define LOG_INIT() do { \. q9 u& F5 n3 I+ o* Z
30 PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, \
# E1 f% i: X& b. D/ m/ ]/ [/ `5 p 31 PSC_POWERDOMAIN_ALWAYS_ON, \
' x* R8 n8 O5 n2 F 32 PSC_MDCTL_NEXT_ENABLE); \
+ b$ O. R9 |( u% @' M* w+ {0 I$ p 33 GPIOBank6Pin12PinMuxSetup(); \0 ]2 M0 _ a0 ~' b# Z/ S
34 GPIOBank6Pin13PinMuxSetup(); \
5 n8 o g/ Y P, ?9 Z 35 GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT); \
4 J M( d( d* _3 I& v 36 GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT); \
" D* z* t0 o! |; J( M1 d 37 UARTStdioInit(); \7 f: F# n' z/ P" A
38 } while (0)
' \# f0 i% V: @3 b 39 #else
+ c$ ~9 V- e: _& v1 y9 y 40 #define LOG_INIT() do { } while (0), h! D# Y6 }. w J" }2 G0 ~: `' C9 y* ~) P
41 #endif# [2 {6 x1 ^ y; @9 @$ y1 A
42
7 s# p+ s" O7 C2 q! n* w 43 /* Log Output */: D: o% O; m* T" i. {
44 #define LOG_INFO(format, ...) \0 D; P8 L; x2 [1 [/ {
45 do { \
9 e b) n [! n% F" Q% K 46 OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
2 h' Z( R3 s8 ]6 J0 J. F0 V8 e$ }& X 47 } while (0)
, {/ O- J% w3 r- l 48
* f$ X3 {2 Q) r* G. f 49 #define LOG_ERROR(format, ...) \0 l+ \1 |% |/ h
50 do { \
4 g7 {: H- Z. m7 v& | 51 OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \9 `$ A# K1 ~5 i6 Y0 @
52 } while (0)
/ n% Z, n* d: Q9 D% q8 a1 C 53
3 U8 {+ i) c+ @( `# o% d) U- G 54 #define LOG_DEBUG(format, ...) \* b4 v1 L7 r* t0 q, v
55 do { \
! M7 ~% B, j( U 56 OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
+ k3 R- H; e& ?8 j$ h; e 57 } while (0): D( s Z4 n5 e& J, b8 C) u
58
- Y+ [- k3 \- I h' E2 ] 59 #define LOG_WARN(format, ...) \( p8 [: K+ e, d4 x7 b3 b
60 do { \
, w* T' g7 J2 ~: f 61 OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \3 H. D8 p- [% r3 @; h% `! `
62 } while (0)1 G+ h% J% e! E; R( J$ J* O
63 3 H- S* B$ l' Q4 n
64 #define LOG_TRACE(format, ...) \' H9 U+ b8 Y8 X7 I' I1 s
65 do { \$ `6 o8 s& M, m& i0 ~) r
66 OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \# x, S, {& S5 H/ f
67 } while (0)5 G' e" m/ T$ @$ D
68
/ `+ W! G6 M6 `1 K, j 69 #define LOG_FATAL(format, ...) \0 Q3 a* i, q; ^8 Y$ l/ |, T' \
70 do { \
/ _1 T9 Q; `/ N) M' ]" E+ g4 z% K3 g 71 OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \" y. z# s0 o: n# E a
72 exit(1); \
E0 T* l, V& v- O) I$ Y 73 } while (0)
- M5 A9 D; o% a/ T( W% Q0 n 74
8 N& ?$ Y, W9 o& w: N" j 75 /* Assert */. B, r/ G8 [9 U$ y
76 #define ASSERT(EXP) \% l" N- j; F N1 W) g( j j
77 do{ \
! |' @0 |, t) h# U9 w 78 if (!(EXP)) { \
" p* J: n" a8 p5 ? 79 OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ ); \
3 [* B, }0 D( `6 B 80 exit(1); \
& h$ [3 M& z0 \; J4 u% y2 ] 81 } \! P2 v1 {! ?# j2 J4 ` Y
82 } while(0)
8 i' }2 M1 p; x1 Q6 S2 X 83
1 h& ^: k& Q; e; ~/ U5 Q 84 #endif9 P( ~& ]$ W8 k Y9 A' A
|
|