|
|
1 #ifndef _LOG_H_ w' x# \; c5 J% Y7 T; h
2 #define _LOG_H_
: R/ D& u9 ?9 n1 _% g 3
" r0 S6 G; m4 q 4 /* 0: printf; 1: UART1 */5 Z2 B% n8 m4 W* G" @6 @; V3 n/ }
5 #define OUTPUT_TO_UART1 1/ t x# N; X7 N: H/ w- r
6
( f6 X$ a2 M' ~" k. t, M5 z. x+ A 7 /* Switch Log Output */
+ Q" ?) l& T/ ]5 ] g 8 #if OUTPUT_TO_UART1
+ V% d5 E2 H+ X) k 9 /* For UART1 Initial */6 M$ Y. H# M! q7 G
10 #include <stdlib.h>6 t) N$ Q E2 j6 k) ^) H$ T
11 #include "hw_types.h" # j7 M- \4 E' \! q3 w! l3 m
12 #include "hw_syscfg0_C6748.h"7 g8 j" s) E. P; f# {: f
13 #include "soc_C6748.h"
% _. X# k) D& S( a2 c* j( S- G 14 #include "psc.h"
# k' o: u# v( T9 F* }5 S6 g 15 #include "gpio.h" 0 G' d/ ^$ g3 N9 B7 ]3 Q
16 #include "uart.h"
: l$ P1 a7 E6 w& p0 z 17 #include "uartStdio.h"0 }/ I5 f1 I$ s; j( r! Z
18
4 y9 R) ?9 d5 b. S1 m6 B 19 #define OUTPUT UARTprintf2 N% j# d/ C+ W( F
20 #else
0 A, _ [9 B) n# _2 F f- z" j 21 #include <stdio.h>
& x# u2 z& Q/ `3 W$ h1 o 22 #include <stdbool.h>
5 P/ ?- z# E1 |; K, n& ?/ z1 a 23 # N9 \) c* O) N+ ^! f5 n! Q
24 #define OUTPUT printf6 ~# D8 P7 a- k
25 #endif. u' g; i% t4 G; P% o' A2 I
26 2 a0 e C- M2 `# L; V% j' @- F0 \+ ^3 Z
27 /* Log init */
' k, V7 k3 c, C; Y" h) J, o- [ 28 #if OUTPUT_TO_UART1
/ |) O, R2 j0 r 29 #define LOG_INIT() do { \
- o/ e) h, h- n% e6 _1 I) [: @! [ 30 PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, \" j! E& z0 U% o* F7 v; m% j' t$ ?6 N
31 PSC_POWERDOMAIN_ALWAYS_ON, \, Q8 @' L$ y/ K2 G% F
32 PSC_MDCTL_NEXT_ENABLE); \
* U* G7 _6 m% T6 L1 d& K 33 GPIOBank6Pin12PinMuxSetup(); \
: O4 J# ^& @) T1 p% [" ] 34 GPIOBank6Pin13PinMuxSetup(); \7 a, F) @9 D+ v% e6 o
35 GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT); \
5 I( U" T, _$ ?9 ?9 a+ T' z% K$ @5 x 36 GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT); \3 Y& Z; f0 h. u4 Q0 B# G. Y4 @
37 UARTStdioInit(); \
- ~; O( ~) \4 x" G1 c 38 } while (0)
+ A6 D$ @9 o u) Y% [ 39 #else) E# q2 E4 o$ F6 f- ^3 L
40 #define LOG_INIT() do { } while (0)( Z+ r' q: G' M( y+ @0 V
41 #endif% r- ~/ F* z" [0 Y& f
42 h1 M' q6 o! t
43 /* Log Output */. d; O- z; Q$ q: K& _
44 #define LOG_INFO(format, ...) \
" X! X! {. m5 `8 f, S3 C 45 do { \$ g) G- A1 B' v0 u+ K; K% j
46 OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \5 n. a, T& E5 R
47 } while (0)
( O6 |1 `9 t9 ?* e 48
8 N' F# s) B8 D: r9 d2 Q$ E/ m$ ` 49 #define LOG_ERROR(format, ...) \$ C9 J. g0 \1 B* i2 {: k
50 do { \% A" K' b! O* X1 v* L5 X' `
51 OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \9 p3 [* b. i t6 l: }
52 } while (0)
" L: G1 [3 n9 P, z5 P2 Y: m 53
5 `6 W( G: C+ R, _' f 54 #define LOG_DEBUG(format, ...) \
" R, j+ d, w% N+ n 55 do { \$ z' j5 N+ S5 y' s3 t# W! E4 I
56 OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
) n5 {0 k. ]4 Q5 l U6 L7 O 57 } while (0)
5 u2 g" ^7 x# Z 58 4 H; l" N7 _* ^5 @1 M( V
59 #define LOG_WARN(format, ...) \
4 u9 ^% r$ T4 J4 y$ x8 l8 E2 ^ 60 do { \
# C$ b$ V z6 [# |# x2 n1 e- N 61 OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \, y- E8 D* M6 z
62 } while (0)) r0 {: O4 [# U2 F3 p
63 & j' t) u2 K0 x5 h3 ]! G5 c
64 #define LOG_TRACE(format, ...) \
( ]1 F t6 b' @" M# I* P7 k 65 do { \. |! v2 w, A7 t5 h5 p, x" u0 P
66 OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
) e7 S- ?$ X \1 T6 e 67 } while (0)
5 }7 ~: k5 p/ m/ q( k 68 . n: f' E. M% {! o7 _' E
69 #define LOG_FATAL(format, ...) \6 Y+ d3 d6 P- y' M, r; V# ~
70 do { \
! I% [8 d! P) V1 U! y: ` 71 OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
$ A7 x1 P2 z h- `5 b7 W 72 exit(1); \
' Q; o/ j; H2 a 73 } while (0)
: T; d& o+ m0 ^: p! ?0 X: W 74
) \4 ]2 S8 S0 ~0 V' R& f 75 /* Assert */8 r' g& b! }& f& v8 k7 f
76 #define ASSERT(EXP) \
9 J B3 M6 |) b& q 77 do{ \
1 E( @5 o. \9 A T 78 if (!(EXP)) { \$ }. X, I* _4 E7 O8 s
79 OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ ); \# q m+ d: {0 ~( Y
80 exit(1); \$ ~7 q1 P4 @$ g# n4 e
81 } \3 I( v8 k' ]( F7 M/ H% J
82 } while(0)
( ~ `9 |1 a! x; H& a3 u 83
8 I% ?+ y. e a4 ?6 P 84 #endif
5 s7 S- j! q, w7 j8 y |
|