|
1 #ifndef _LOG_H_3 E2 h, c2 a: L: }5 i4 N0 E( s
2 #define _LOG_H_- P2 E& L" q2 l* q) X3 t
3
! Z* i7 L9 b" G, a: \: F 4 /* 0: printf; 1: UART1 */9 }% X. l( D4 a
5 #define OUTPUT_TO_UART1 1
" K7 m" {' m y# K& B4 }' j, | 6 ) S5 p% s$ ~# n1 K" P/ c
7 /* Switch Log Output */
) E/ T8 y6 B- {# C! F8 V 8 #if OUTPUT_TO_UART1
# y% N9 p4 o, c. o8 z 9 /* For UART1 Initial */
^7 B4 f4 t$ X/ C' @ 10 #include <stdlib.h>9 X# B, Q& M) P Y5 E; u; r
11 #include "hw_types.h"
0 d* l- o8 H0 \' L 12 #include "hw_syscfg0_C6748.h"9 i/ [* ?, |: {# _4 n+ F7 H+ C
13 #include "soc_C6748.h"# M+ S9 d3 i& ~
14 #include "psc.h" 3 p, X; O5 c% e/ \. h T
15 #include "gpio.h" 0 i0 {2 n: K! [: _- ^4 ^7 l# n$ z
16 #include "uart.h"
5 [- g5 Z( n) W0 T9 K4 u* u 17 #include "uartStdio.h"
' b" \0 u( F1 H9 k F% _% I 18
' g3 Z0 X$ \0 K8 `3 o. Q, m6 f6 ^" H 19 #define OUTPUT UARTprintf; C; S" j+ ^$ u A6 X3 u' j% U
20 #else
; ?4 Q6 r5 W. j/ Q) h0 e 21 #include <stdio.h>+ H: S. q+ ^+ s9 {
22 #include <stdbool.h>
5 Z# y2 P* z8 l& b 23 * W9 a3 A4 i) h* ~- L
24 #define OUTPUT printf
. X6 r4 h& f/ D6 C; B 25 #endif/ N4 X) d! R7 Y' Y* x$ U. ]
26
U* }) Y5 y8 m# m# E3 h9 s 27 /* Log init */
: {; k+ Q3 B# C7 D2 l/ a 28 #if OUTPUT_TO_UART1' n- R+ t4 k N# P0 f( K
29 #define LOG_INIT() do { \
9 M: }/ |' z9 b- q4 y 30 PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, \: n r: k' G6 K4 c# D. o2 v! N$ N
31 PSC_POWERDOMAIN_ALWAYS_ON, \) T: p& W" b' V2 h& P
32 PSC_MDCTL_NEXT_ENABLE); \
% y8 c& G% {& H' V3 J# ?+ o4 `# T 33 GPIOBank6Pin12PinMuxSetup(); \
; J$ Y( q- X0 s' q$ _ 34 GPIOBank6Pin13PinMuxSetup(); \
5 t7 X. W' h3 O) k9 ?: h3 t3 | 35 GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT); \
( | d5 \7 w8 o( @( Z 36 GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT); \
$ k$ U/ O7 m; B8 H |7 J 37 UARTStdioInit(); \
! z" q/ _9 q1 o3 s" q$ ^( b5 e 38 } while (0)
" \4 H) Y, |4 |9 s! `3 L 39 #else
. }( w+ g9 g% N 40 #define LOG_INIT() do { } while (0)% @9 n3 G! w7 l7 L* f
41 #endif C* H: z0 s1 U* b: l
42 ! y5 q5 Z5 R3 t8 C7 b+ t) W% G
43 /* Log Output */$ l0 g! Y, S' @& K0 z8 E! l
44 #define LOG_INFO(format, ...) \
7 Z6 F* {) x7 Y+ X" V4 g9 s" y 45 do { \
9 }" l) D8 O: q+ f. w 46 OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
" a. V& |. T. V$ C 47 } while (0), u: {$ l! X2 p4 |' [7 G! l
48 ) ]. }1 J$ Q( S$ w1 U/ |
49 #define LOG_ERROR(format, ...) \. E7 P; p: c* {
50 do { \6 G6 o" ?1 X9 Y" p+ g( {( f
51 OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \8 W% ~9 x6 [% [. d
52 } while (0)
5 X0 m2 m! r2 Y+ L% ]$ K3 t 53 ; O( K7 K3 j# x7 e, O
54 #define LOG_DEBUG(format, ...) \' D( E3 Z0 r& L
55 do { \
3 V6 \/ k; b- Q' \) ` 56 OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
* g+ q' a/ K- ^* l 57 } while (0)
, V0 o) P0 C! x) U8 n& |7 a6 G 58
. x# M# w4 C% j2 A5 m4 s- k( V* d 59 #define LOG_WARN(format, ...) \3 t$ A% ^; ]# Z2 h! x+ S b
60 do { \
9 J. R9 A/ g7 x% N1 t% ~4 [ 61 OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \. n P- W" n2 U
62 } while (0)
7 ]" K' g+ F9 D2 P 63
- r9 |; L# z7 @- s 64 #define LOG_TRACE(format, ...) \8 y% K/ U3 l; h" A' q
65 do { \
# y5 x6 i" _" g/ _ 66 OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \; D: X2 D: d5 ], K
67 } while (0)
+ X- Q2 ^. Q" L3 J C 68
& k6 j( N( {4 ^# Z 69 #define LOG_FATAL(format, ...) \' s! K2 E1 O0 z3 E
70 do { \
. U# I# v+ R# ?6 A$ a: u 71 OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
+ j0 V: } t$ z0 m 72 exit(1); \0 Y& k% e% I5 b: C5 J. ]: h
73 } while (0)
0 `: U0 i7 ~/ o% e. n 74
3 {, c$ P4 l- J" J 75 /* Assert */
3 X2 {; S7 J/ h 76 #define ASSERT(EXP) \
* r' _/ N. y. _# ` 77 do{ \1 h/ E( q2 u; \1 _5 E
78 if (!(EXP)) { \4 V7 r4 N* G7 X+ N, F9 ?: F7 i
79 OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ ); \# N# k# @) i3 p; O7 F6 f, g7 C
80 exit(1); \
, [' W7 c1 K/ h3 c% E; _* ~ 81 } \
. P. N0 C+ E* j6 ~& D* t5 s 82 } while(0)* |1 \0 N$ ~2 ^) w! [- \, m2 m
83
1 M' w1 x5 Y* d! e 84 #endif: x: @+ t9 C4 P3 S
|
|