|
|
1 #ifndef _LOG_H_
2 p' j: A, X/ v5 { |- C9 W 2 #define _LOG_H_
4 d) K/ K6 I& }6 Z3 x 3
9 L/ _7 O6 b# Y- d: k& l v 4 /* 0: printf; 1: UART1 */
4 m* ~( \. T6 e; x- R+ A 5 #define OUTPUT_TO_UART1 12 z- f3 y$ O' e4 E- y# \
6
$ F; r6 Q& R$ T; g: A 7 /* Switch Log Output */# @, W: E+ [8 X* b6 R7 \) A/ t
8 #if OUTPUT_TO_UART1
) g Z7 @( y+ Y, t( k 9 /* For UART1 Initial */
# q0 o2 h$ z/ ^( g 10 #include <stdlib.h>3 _* {& h7 k5 X0 z
11 #include "hw_types.h"
! |7 u" ~( B% I( x& h! R, k2 m' x 12 #include "hw_syscfg0_C6748.h" P( O, X% Q5 W) u) C
13 #include "soc_C6748.h"
% l% t" E9 I2 o2 ~* J0 F( r6 j4 x 14 #include "psc.h"
+ j/ F3 n$ Y# [+ a0 p 15 #include "gpio.h"
* Q3 g! O. L" f$ e 16 #include "uart.h"" G$ k6 J1 k$ ^2 y9 U5 J
17 #include "uartStdio.h"
5 ]4 N0 o; T/ T) ^& L1 n 18 8 L: R# l- V" h X
19 #define OUTPUT UARTprintf
( K9 W: D, y3 i1 v! o1 @+ n( r& b 20 #else, l( S/ u9 j5 m/ S9 ^; m0 c
21 #include <stdio.h>
& R- Z% r8 z6 o8 V2 x/ L 22 #include <stdbool.h>
: E2 o$ K4 W$ L. v0 B 23
6 E; [6 R' h5 o 24 #define OUTPUT printf
/ z2 `" Z1 B& }9 c7 s 25 #endif5 D# A- @* C; ?% d* h+ I; U
26
8 P& @1 T d$ u S( S; d 27 /* Log init */
" i2 G! J E" u; g c 28 #if OUTPUT_TO_UART1
4 W; ]9 f6 _" S" y 29 #define LOG_INIT() do { \2 Z# }9 B% v, Y3 g
30 PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, \
+ O9 ?7 U& U* C2 P" t$ b/ e 31 PSC_POWERDOMAIN_ALWAYS_ON, \1 K- f- u8 I0 C0 P1 m- r3 N
32 PSC_MDCTL_NEXT_ENABLE); \( i# _, a, @- Z! C: ^. H3 A
33 GPIOBank6Pin12PinMuxSetup(); \
" \6 y8 v( R" D/ N1 ^ 34 GPIOBank6Pin13PinMuxSetup(); \
6 z# s0 R! H) I 35 GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT); \
4 V: c6 l( U' y 36 GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT); \
0 }* ~& D+ F$ t. @6 o 37 UARTStdioInit(); \. e3 Z* X8 V0 g2 Y% ~: D
38 } while (0)
9 D) t3 |' G# W4 ^, v 39 #else! a" t( A: d& D0 X
40 #define LOG_INIT() do { } while (0)
9 J, }/ j/ y- s 41 #endif
- M# K0 |. o# m/ _# r 42
& Y# N; s4 u# C( s3 E, y 43 /* Log Output */# _6 U5 c4 ~0 B# D q5 e
44 #define LOG_INFO(format, ...) \
# V3 q4 ]6 f, [7 s 45 do { \
7 Q- W. z& V& G+ |4 [0 g 46 OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \; R& ^1 Q" p9 r- P3 \
47 } while (0)$ A: m/ P& a* ?
48
/ i1 j6 f3 b: x" d2 U, u 49 #define LOG_ERROR(format, ...) \
( N& }+ t% Z/ ~3 f- k; H 50 do { \% q( U. y/ q7 a( x! v* K8 Z
51 OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
% h: d) c5 q: E& n 52 } while (0)
G+ w! n9 E# X: L3 x! r* Q 53 ! A: F8 o" u/ s' G6 \6 z
54 #define LOG_DEBUG(format, ...) \
$ b- |* t/ w1 o* j" ]9 O7 c 55 do { \
% j1 ^0 R7 f2 @# T2 ^9 O 56 OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
1 f K1 [. T3 S/ q" E 57 } while (0)
6 }1 z9 i# F6 d- S) V7 ]3 P 58
* u W- H' G' B1 e' w& {! c 59 #define LOG_WARN(format, ...) \
* ~ G- t: R/ c5 P) q. u" L 60 do { \: z$ y" j" A2 K; C, |
61 OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \* ^) u0 O( r. {
62 } while (0), u+ \1 f3 Z7 b0 z9 I4 u$ @% p
63 0 i; |; x7 o, u
64 #define LOG_TRACE(format, ...) \
! W' A7 C2 q- e4 A- ~( o5 z 65 do { \1 e1 T% b0 _' |9 z; ^" x2 ^
66 OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \; [/ ?# H3 U5 z, g+ {, |+ T" s: h0 O
67 } while (0)
4 _; @2 w p( V" e 68 # W; A6 M( f/ f' E+ B3 G
69 #define LOG_FATAL(format, ...) \& d V1 p" Z5 z5 k8 g
70 do { \" M$ z3 z5 n" l4 |
71 OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \" t8 w' Y9 S, B
72 exit(1); \ m9 u1 s2 E& e) u) q
73 } while (0)( v0 g$ a3 ^5 {3 o
74 * _& r: \% y6 e- @* t% f+ {' w8 O
75 /* Assert */6 h' k6 o1 \! f$ p; y
76 #define ASSERT(EXP) \$ A% C0 }2 r" p3 ?3 F( z; P# a
77 do{ \8 A' L5 K; @' @
78 if (!(EXP)) { \1 b5 z, i5 c* @, S9 |* G' F6 x: q3 ?
79 OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ ); \
# K- O+ w( M7 j* [- @8 V* _( M) K 80 exit(1); \
* E w$ }0 w5 n 81 } \
) s! s, L3 ^6 [( T& {% _ 82 } while(0)" p9 M0 U: g- Q3 U# v* Y
83
. }/ d- `- o( d0 S7 ^5 l% M 84 #endif
; I; _9 I4 R5 [% C: K& a! r1 @0 g |
|