|
1 #ifndef _LOG_H_' u; Z5 T- y2 m, P; B% R8 o
2 #define _LOG_H_" D( ^4 b" Q9 F4 ]
3 ; L/ `- j& J# G q, V4 d0 K
4 /* 0: printf; 1: UART1 */: t2 [5 p# x6 s8 N* O @$ a- K4 J
5 #define OUTPUT_TO_UART1 1; `* g( A1 G6 m3 i4 _* }; Y
6
9 L4 h+ M9 u, f% G% j; s8 s 7 /* Switch Log Output */
/ T, C, R; g, z' u 8 #if OUTPUT_TO_UART15 ]6 w% X: u5 A; I5 G( h" ?
9 /* For UART1 Initial */: ]! C ]* s" q5 R& [; G" F' ^
10 #include <stdlib.h>
3 C* R1 u3 P! m 11 #include "hw_types.h"
) r O" M: P: I: ]% K2 a1 u 12 #include "hw_syscfg0_C6748.h"
& V [3 ~# e7 Z) i0 r3 {+ v 13 #include "soc_C6748.h"
6 g, S) K3 }, P5 W- G! ~! O 14 #include "psc.h" J0 n' t$ M2 [
15 #include "gpio.h"
9 t2 i. ]5 y. N+ H0 v: V5 n/ v& H 16 #include "uart.h"7 R, y9 X3 A) `& E; [' P
17 #include "uartStdio.h"8 p2 B7 o0 q4 t# Q: r4 H6 z
18 7 U1 G: l7 t$ T) O+ u
19 #define OUTPUT UARTprintf
8 F5 z- I1 L5 ` U5 y/ l 20 #else; ?- }& y: q4 D5 v6 u* p
21 #include <stdio.h>
( g% R2 ~6 X, v0 S& C9 j 22 #include <stdbool.h>
/ n p3 f( J" ^7 R 23
& f0 e8 {9 h6 u2 ?5 T, [ 24 #define OUTPUT printf3 r: a; X+ m) f+ J2 L
25 #endif6 g* X, w+ {( k- \. y
26
3 p4 Z! v% a- U% f( D8 u3 R0 D 27 /* Log init */( R. K4 o( f. C! R
28 #if OUTPUT_TO_UART1" A# c+ c% X+ v6 x w4 w+ L; \
29 #define LOG_INIT() do { \* k2 i% S- v% [; ]7 C8 P
30 PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, \& Q3 j" s* z9 k' I: x0 Z
31 PSC_POWERDOMAIN_ALWAYS_ON, \
W3 g! _# T4 u! I) M0 A. a1 g7 n 32 PSC_MDCTL_NEXT_ENABLE); \/ p: Y: U( e' ~- a% V/ a4 C- T
33 GPIOBank6Pin12PinMuxSetup(); \
6 n M5 i. r6 m, o 34 GPIOBank6Pin13PinMuxSetup(); \& e4 P2 e/ d2 K6 _
35 GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT); \
% ?9 A) h! R! G& f- X+ j 36 GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT); \
- s1 J: C3 A( p/ p D' X 37 UARTStdioInit(); \7 p1 `& w e. c' V) [" P
38 } while (0) c: P0 Y7 z3 N9 f: o
39 #else
# X2 @ ~) V2 ~8 j! ?) ~ 40 #define LOG_INIT() do { } while (0)
# f# k) U. E. E/ Z4 w4 m/ X% I 41 #endif
2 S/ s, R& q5 G V1 I 42
1 b( O: {1 R+ S- ^. @/ f2 H 43 /* Log Output */3 a3 w: d6 Q0 N( }& S5 P8 v3 y2 t
44 #define LOG_INFO(format, ...) \- w7 r6 X; Z- l8 s# Y# l
45 do { \* c3 E5 {. a. w, n/ T
46 OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
1 U* D: ~9 i# f 47 } while (0)
: F) B' H' Q9 \& [. {6 Z 48
, n+ \0 I' n+ d5 K1 M7 h 49 #define LOG_ERROR(format, ...) \2 u" E! y7 I7 o& H
50 do { \
! n- [# W3 D! @5 t+ C/ r5 C* B 51 OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \! z1 c, U! f+ A- }+ X
52 } while (0)5 f }( R# P: ~# @3 R6 q8 V
53 \, P: i! ^/ _; Z. O0 O* a2 p
54 #define LOG_DEBUG(format, ...) \6 S3 s Q4 s Y* c) u: [
55 do { \5 @/ q# d Z* Q( f) t& I; Z8 R
56 OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \* P2 @/ N' I7 U6 k
57 } while (0)
- ]" u2 U" h* ~8 Q+ P 58 3 V8 L) Z- M2 d2 \5 L
59 #define LOG_WARN(format, ...) \. y3 ]! k$ \, I: ]+ ~" B" Y/ c
60 do { \: \4 H. ]6 Z+ e! C& d
61 OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
& b. }3 s: r" b 62 } while (0)5 S" Z1 Q+ j8 l$ E% U0 c* r: c/ M
63
6 Z7 S+ z7 C2 \! V9 o: i0 X" W0 l' i 64 #define LOG_TRACE(format, ...) \5 g$ ~8 m. r7 R- e8 N
65 do { \1 i ]0 j) A% I: [: d2 W
66 OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
/ Y9 ]% h3 B6 r/ g s 67 } while (0)
$ w4 I6 y( N r4 P 68
4 O1 C) p- s1 _' n 69 #define LOG_FATAL(format, ...) \) F8 e: W7 u$ e4 W0 _
70 do { \
: o8 ~ j! a, H9 _+ X 71 OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \0 Y5 ^0 R- [. s. s4 s- Z6 ]
72 exit(1); \
; G" Q* k0 i5 `* f 73 } while (0)
: n' ~4 D* u) t+ `( Y 74 7 I) `/ r( \4 ?5 H( t/ ~
75 /* Assert */
) G2 F! f. U, w) w1 t 76 #define ASSERT(EXP) \" |3 b. r5 }$ k$ J
77 do{ \
S" u# ]$ s" M: w 78 if (!(EXP)) { \
3 A4 y' ]* h& i9 z. [ 79 OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ ); \
. y1 W% @9 m! U+ D% p2 i. L! g x3 d 80 exit(1); \
0 ]: [% G# a' q0 I" C6 s 81 } \4 I( h6 r2 W$ ^5 |. W2 w. ~+ ^
82 } while(0)
$ Q8 N6 I7 E1 R: z) x4 R/ G! v 83 % F" W/ O9 f# [- j0 ]& X
84 #endif% r$ J Z0 m1 y$ \- ?( m
|
|