|
|
1 #ifndef _LOG_H_
6 Z8 |( T* g! \, ^ 2 #define _LOG_H_
+ G* _; I( ^2 j; l 3
6 W/ V* _1 @7 x 4 /* 0: printf; 1: UART1 */
[+ N7 |+ X2 k1 r2 ` 5 #define OUTPUT_TO_UART1 1
* l7 N* ~ M( V! y/ _$ a, Q 6
- P3 i* z1 ]: n! x 7 /* Switch Log Output */; S+ o4 J: D! |9 z7 q2 U$ s! l+ }
8 #if OUTPUT_TO_UART1( V. j! r7 j, u4 J1 w1 i$ n
9 /* For UART1 Initial *// R z& X! p, [
10 #include <stdlib.h>
4 \4 y4 T) y# X" Z1 k 11 #include "hw_types.h"
$ r% K) A0 J) T& y' S 12 #include "hw_syscfg0_C6748.h"
) X! j, @: b* G 13 #include "soc_C6748.h"
: c) _' r" Q2 N6 \: y$ h1 N% T 14 #include "psc.h"
( l) N4 A$ ]( w* _. Q' W# D 15 #include "gpio.h" / T! j' q) ]/ L8 w- b, C# e
16 #include "uart.h": Q9 q5 s* ~' W: ]& S% n8 o6 q
17 #include "uartStdio.h"! {4 a$ O8 w- L% R1 K! [! g: j
18 $ o) g. D: N4 F0 H$ W1 M
19 #define OUTPUT UARTprintf
' K4 n' h9 l1 J/ ^% {6 Y, x 20 #else
# x6 j5 k8 F- f+ x1 ]# Q 21 #include <stdio.h>9 p- h7 `; b. C$ ?2 R+ Y( u
22 #include <stdbool.h>
/ h& a% e! v: j) P$ A/ r/ g1 b 23 S; H9 y1 o1 W0 c7 E, d
24 #define OUTPUT printf
% X6 y; F+ W' J6 H) i+ s 25 #endif
1 a$ {1 V% Y! F$ Z 26 7 Z9 o3 L3 f1 s4 ^; I
27 /* Log init */
s) {2 T) M$ U. F2 M$ R 28 #if OUTPUT_TO_UART1
& n) ?5 s' T! X1 h# T' X- o 29 #define LOG_INIT() do { \3 r7 r6 f8 ]9 S- I7 q& x) g
30 PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, \4 W. t/ Z8 f; Y0 J2 T! B$ ^$ F
31 PSC_POWERDOMAIN_ALWAYS_ON, \
# r& c, W( x" `; t8 }( Y 32 PSC_MDCTL_NEXT_ENABLE); \+ p% z, L( L0 @: ?5 r; r) a
33 GPIOBank6Pin12PinMuxSetup(); \
% c& u/ H- `$ V0 O/ `$ f8 r 34 GPIOBank6Pin13PinMuxSetup(); \2 a- I3 x( y7 f, M' z, `8 I
35 GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT); \4 Z$ L0 S3 r- A2 g1 i8 [
36 GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT); \$ K7 {6 N3 p8 J& T0 y# a0 ~' I
37 UARTStdioInit(); \
+ E; m+ B5 l6 a 38 } while (0)
H( E; F# K3 J/ s! S 39 #else
* D' w& ~( }$ a4 ~6 ] 40 #define LOG_INIT() do { } while (0): F# C: X' o/ A3 }$ K- [- {
41 #endif
7 I+ `7 z+ l8 J3 w6 v' ?, c* V6 } 42
3 D% D0 \; _; y# ]8 p 43 /* Log Output */
* L8 X& Y* w: V$ \, \+ ? 44 #define LOG_INFO(format, ...) \* D5 k- ^5 a, s( \; L' F
45 do { \
* J; t p. E$ f& V" C- k/ D 46 OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \8 u9 P$ B+ d" ^
47 } while (0)
3 w- Y+ ^; I: s! c& Y. A/ S/ x/ t 48 5 e3 D* C5 u7 J$ R9 C
49 #define LOG_ERROR(format, ...) \
% c& |5 J! N) |8 y# _% n! E 50 do { \: O2 ], T# |- G9 |: q2 m, u1 f
51 OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \1 z* i s) [+ N9 b
52 } while (0)8 n+ v% g3 `& g; a8 }3 G6 E
53 9 E! Q! t& G3 Z/ Y8 c' P) I; T
54 #define LOG_DEBUG(format, ...) \# a! }* j* c0 J, v2 ^
55 do { \# I, K) K1 M8 y. n2 D! E
56 OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
9 X$ e) K. P; h- {# s 57 } while (0)
8 g0 Q2 D5 T& N# |9 Z 58
) s- t4 |5 `1 _ 59 #define LOG_WARN(format, ...) \; q8 Y; [% Q, t' S9 R# k3 o
60 do { \
' J8 ~' M/ }. j 61 OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \! h, \) p/ y% u1 Y5 I
62 } while (0)
1 {- G4 r* g9 m. E 63 Z5 V$ W9 K# X; N5 r" i O& [
64 #define LOG_TRACE(format, ...) \% B( @) a6 `1 u2 R, }: \
65 do { \2 |; B9 ~* Q) `# N0 [
66 OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
3 i$ F8 v2 W$ ` 67 } while (0)2 C4 {5 M8 m- J' q& D7 ]( d+ m
68 # J# O& j$ ]1 v6 s. P2 b
69 #define LOG_FATAL(format, ...) \
2 s$ J7 _3 k% D 70 do { \
/ V* Y7 H. H' U( t# Y7 ?/ u" t 71 OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
2 X* K4 D+ \' t4 Z' `; k 72 exit(1); \( f& x1 a% } Y9 o) h+ L( `
73 } while (0). T) W+ A( _" L6 [' I3 {( X
74
8 N0 l7 p! [- z0 B3 _ 75 /* Assert */) t. u4 B; R$ P! K% w+ o7 X. P
76 #define ASSERT(EXP) \; l3 [* c- h9 |/ \
77 do{ \6 p1 N% z! R* v6 q# Y
78 if (!(EXP)) { \
+ h* t9 ?- v; P X% V) D3 J) W 79 OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ ); \
5 D' I% `5 u! {# v4 \7 V 80 exit(1); \
7 h. c7 [5 g) v* A" p/ S1 f# o 81 } \
) N% K( c7 V7 e$ B 82 } while(0)) h' l) H- Z: l' T( p- J0 \& }
83 0 d! e) X+ M7 V2 w9 k; t
84 #endif
0 R9 K/ Z/ Z% ]7 S* B# [ |
|