|
|
1 #ifndef _LOG_H_' ?! }5 D- Z5 s/ b2 y6 ~$ D) {" a
2 #define _LOG_H_
/ r3 S9 Y, D% H# ] 3 : b# n4 T7 U1 o7 n
4 /* 0: printf; 1: UART1 */
6 p( [8 H+ r/ v$ ] 5 #define OUTPUT_TO_UART1 1: w& d& A3 U- L8 E, T# ]
6
# t1 l0 o, y' N4 h2 v" J. v0 ^ 7 /* Switch Log Output */# d+ ?& k: }, m x
8 #if OUTPUT_TO_UART1
- F) W& h* z" ~6 x$ q. U5 O9 F 9 /* For UART1 Initial */
+ G S6 |; v8 [+ Q 10 #include <stdlib.h>
: X3 H/ j$ g( D$ u: ~+ J2 P2 M 11 #include "hw_types.h" 8 ^% E: i7 C. f; i
12 #include "hw_syscfg0_C6748.h"0 h7 D3 C5 g ]+ l) L
13 #include "soc_C6748.h"
2 o k" Q$ o9 H; U 14 #include "psc.h"
+ C- U% v6 I- N: w" f 15 #include "gpio.h"
, n7 h2 \7 R9 L" V8 J 16 #include "uart.h"
% V( M0 @7 \( |! `+ @( g6 a 17 #include "uartStdio.h"/ r E9 y( R7 a4 m: a
18 . P" Q* T, l# R7 v+ n
19 #define OUTPUT UARTprintf
. S7 a2 ?" z5 `' v9 g 20 #else
- l7 H# N4 N3 s$ }- B" U 21 #include <stdio.h>" R4 ^& A# q l" p
22 #include <stdbool.h> m1 k1 \- y8 |5 F4 K
23
3 q: [1 Y) a5 U3 L' y! }. J! k 24 #define OUTPUT printf0 z9 u3 U1 B* J6 Y. A3 H" z/ J
25 #endif! i+ o7 v/ Q1 z/ }& e; ~2 E
26
, M5 }+ @. g' k! F1 _& Q 27 /* Log init */5 f/ L N# a& G" ~/ k$ n! h6 L
28 #if OUTPUT_TO_UART1
* R' z, p& j" I+ |/ ~# r; U 29 #define LOG_INIT() do { \% I% W1 r7 b5 m2 C; F1 c$ l* f
30 PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, \
$ [% S6 u5 F& R 31 PSC_POWERDOMAIN_ALWAYS_ON, \
7 z, ~4 q8 d# h$ {! Q 32 PSC_MDCTL_NEXT_ENABLE); \$ r: J1 f5 c) u0 m% i
33 GPIOBank6Pin12PinMuxSetup(); \* Z+ L0 T+ a6 R& M8 X$ {4 j9 V
34 GPIOBank6Pin13PinMuxSetup(); \3 z; W. u! B7 w0 |: j) M
35 GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT); \
2 g( p4 g- s* U# t* u _1 g 36 GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT); \
' W' K, Z2 D: E' G4 ] 37 UARTStdioInit(); \
! l% b: E) L. K: i: a1 n 38 } while (0)
/ i) V0 L' d/ \' h) T W" ~1 l7 o 39 #else0 R6 v1 t7 ?& H7 L }0 [4 Z ~! ]
40 #define LOG_INIT() do { } while (0)$ A/ T& |, X8 ^" s; N' |! T2 i
41 #endif3 F) L. j: ~+ _9 ~! F( [
42 ) G2 T1 E/ |/ z7 f6 K
43 /* Log Output */
9 Q3 l- p& K: E: I" d/ R 44 #define LOG_INFO(format, ...) \
2 M3 f6 j+ x3 m7 e. C/ m 45 do { \- B4 i v; F$ e' X. ^' L9 l3 A
46 OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \( \% s" @8 [) U) d2 m# W
47 } while (0)
2 q% }* ~: Q. d 48
. {4 Z* N' F: ~# S7 V: @* C 49 #define LOG_ERROR(format, ...) \
& A* E; m6 H0 T" S 50 do { \1 }- q: t) ~0 o" O2 m \
51 OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
5 g9 C2 R! b5 A4 ^, B; _+ U2 v* ^ 52 } while (0)8 m0 e2 c6 o5 x$ C
53 1 V6 p- c) M3 H8 T. p1 O
54 #define LOG_DEBUG(format, ...) \
) |% P- y# {: ]! D8 m: K 55 do { \
L1 q" j9 X+ P 56 OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
* `' e8 T& k0 `, N1 O 57 } while (0)1 z, g" i W1 X9 ^/ p
58
6 [ b: P& g& G7 D# I 59 #define LOG_WARN(format, ...) \
6 H ?0 D6 _: F+ I+ W% R 60 do { \2 m% O' L' v6 p0 p2 h+ {/ d1 u
61 OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
7 I, D$ k; ^# P 62 } while (0)- Q3 _9 g- e; r8 R8 w( G% b- V. m
63 3 M$ m' V, |6 u6 f% H9 L
64 #define LOG_TRACE(format, ...) \
+ R) D5 ]5 K* ^1 `9 B. F: z# J 65 do { \
. W* |/ @! a/ f+ L* ^ 66 OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \7 h. F% ~8 \ z9 P# n8 l( d8 T
67 } while (0)& |1 i W7 c. m
68 % R2 s/ c7 Q9 T- T
69 #define LOG_FATAL(format, ...) \
) }, s! A2 R R4 x( ~9 B7 p 70 do { \
# }5 X- ^' V$ t& B4 F4 w 71 OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
. m: E# y6 x2 g o& m9 Y, h 72 exit(1); \& w& W8 T1 `( t5 I" O
73 } while (0)
; b/ E2 a0 _, @ 74
. z9 T7 q) i0 G3 F9 W; _ 75 /* Assert */" F* V$ _0 f7 c$ E M0 n
76 #define ASSERT(EXP) \
; J/ V5 v1 E* l5 | 77 do{ \
! {" ~; Z. {3 N: A8 K+ J; H5 j 78 if (!(EXP)) { \
, d) [" n) V [( ~; s, G 79 OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ ); \- y! `& C, ^) v
80 exit(1); \. Q3 d8 k7 f& Y, p# d j1 ^
81 } \) b% p z( p6 J: X+ Z# I- Q. x
82 } while(0), l. \7 ], U8 _
83 ) J) [1 z% `+ s
84 #endif
2 Q$ ~5 z9 {7 S6 l+ y- N: ] |
|