|
|
1 #ifndef _LOG_H_) ]3 `( l$ x: D$ Q' j6 I/ Y
2 #define _LOG_H_: d0 N( \- ^4 U, A% c1 G3 @
3
( x% S. ^% I! Y' [ 4 /* 0: printf; 1: UART1 */& l# K; I8 v1 e! k/ k' O( D8 J
5 #define OUTPUT_TO_UART1 1
5 @1 g- }* y3 l( n* f 6 $ e2 T# s8 _1 g
7 /* Switch Log Output */- L: C4 x1 `; k' m* w6 P6 [, C+ _
8 #if OUTPUT_TO_UART1
7 N/ c# j3 k% \5 D1 F 9 /* For UART1 Initial */
: x) @! a& G5 o4 l$ W 10 #include <stdlib.h>
; y' n/ u9 ? H% o* G( G; E 11 #include "hw_types.h"
& d5 \! c; o7 \$ {4 \6 A 12 #include "hw_syscfg0_C6748.h"+ X) G6 r+ Y/ J
13 #include "soc_C6748.h"
' u9 v$ O5 z$ |% p' S }& p 14 #include "psc.h" 0 M" ^( c' `1 i+ w& x( G# ]4 s% e
15 #include "gpio.h" 3 ^4 v7 M T% j0 U7 L- F
16 #include "uart.h"
! m/ W5 g; f' e9 a( \' j 17 #include "uartStdio.h"+ T) g5 h& [% P$ c8 o
18 / f& r$ O& L0 l
19 #define OUTPUT UARTprintf
o* ~1 P# N O6 F6 B& u 20 #else
. f( W& Q/ B; y( I5 w 21 #include <stdio.h>
3 j, w" `) y- h5 _! P# G 22 #include <stdbool.h>6 O K, A+ U0 f4 q1 {
23
! ^0 U1 G% f0 X! s2 M 24 #define OUTPUT printf& B/ |! |# N) W7 g3 Y
25 #endif
6 t) _" p5 f* A- @8 |- d9 A7 w 26 c4 N, h( ~7 \
27 /* Log init */
, a% U" Y9 ~# v7 @0 j! t+ j D 28 #if OUTPUT_TO_UART1( o. f) N* c. U' y" R
29 #define LOG_INIT() do { \% B' d+ \) z% T( w
30 PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, \$ o' q5 ]9 q$ \& Q
31 PSC_POWERDOMAIN_ALWAYS_ON, \
* n2 }# m& L( c, _- l 32 PSC_MDCTL_NEXT_ENABLE); \
% J8 P( T$ [; _" g+ z8 k U( { 33 GPIOBank6Pin12PinMuxSetup(); \5 I- s" n R# C$ S$ H' E- O* U& P0 R
34 GPIOBank6Pin13PinMuxSetup(); \) R6 `) ^: {: l3 ]* k! {' q
35 GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT); \- R2 P" J5 Q$ m+ m3 W- J7 v
36 GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT); \7 p' }2 e8 l8 D) ~: c" {
37 UARTStdioInit(); \
) a0 o3 h9 P W/ Z; O( X 38 } while (0)& h' [9 D) t3 u: ?
39 #else* L! q) c# r8 J: y1 w, R; ^" u
40 #define LOG_INIT() do { } while (0)2 ?/ g9 ~8 ]; Y" _4 w
41 #endif
6 y, T! L% y* Q 42 $ \. f4 X( F- `) w/ A! J
43 /* Log Output */
. ^$ x4 \8 W: p/ y3 }& l1 m' I 44 #define LOG_INFO(format, ...) \4 [- ~9 F2 D# e% \+ w% M
45 do { \
3 M' M* l; O3 U 46 OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \0 \+ M5 C5 f+ _( {
47 } while (0)
9 i' ] }) b# I 48
7 G$ |# j% ^( X# _! h 49 #define LOG_ERROR(format, ...) \
9 B% E6 R- b& K# {* m/ P 50 do { \
! d9 [5 d' l- {5 Z' C; F 51 OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \& J3 }' }8 q1 @- n7 J5 E
52 } while (0)0 r) h! n- ^% ^0 m( R' e& X
53 / _/ s9 s. c1 f4 M5 S; c1 F4 }3 }
54 #define LOG_DEBUG(format, ...) \
* I) E6 j( \* ? 55 do { \. J/ w, d2 y7 X
56 OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
7 e Y4 q* M+ e/ W v% \7 {: L3 Z* Q 57 } while (0)5 R$ J5 g2 ?" T: `7 W
58
0 c$ s+ l7 c e8 ^" c+ v 59 #define LOG_WARN(format, ...) \3 g( x( s5 r! I
60 do { \- \. ]: s1 a1 t
61 OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
' L9 @* C8 `4 M' U/ ]$ y% ~: q% p 62 } while (0)
" t( O) }3 h2 z, X" r 63 9 C6 B9 U+ A; e4 f5 L* i/ {
64 #define LOG_TRACE(format, ...) \% f8 c0 D! i+ [3 T' i. @# V6 n5 h
65 do { \5 l" A( i, \' e9 |! V4 Z6 Z
66 OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
+ n- G' c0 p7 _7 _" C3 V! j# i 67 } while (0)
* ]% m+ e% m; b1 @& l 68
6 B- o8 k, R2 H 69 #define LOG_FATAL(format, ...) \! c8 ?" T/ e9 N' x% v- T
70 do { \) v, a8 `4 {) i! J# T. @ J
71 OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
9 S5 g2 `' S# y3 s# i2 C9 S 72 exit(1); \( k5 Y7 q8 M1 w: v3 T0 b' K
73 } while (0)
4 B) W& p2 K' d6 r( p/ i! `0 a 74 ' W, e1 F' k) q7 I0 v
75 /* Assert */
. y9 Z8 L' A" v h6 R 76 #define ASSERT(EXP) \
) Q5 A0 V3 x* ^( r 77 do{ \
) v3 L- Q8 \7 A ?* F/ x 78 if (!(EXP)) { \2 d, }& c3 N% s7 Z! N' m* ]1 o+ c
79 OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ ); \
8 j F% m* |$ [2 w& [6 q. g; | 80 exit(1); \' J( a9 l# u& w0 w! P. c7 p
81 } \/ G$ ^- S5 D3 b4 i, p6 t
82 } while(0)
. P. Q( q3 \1 S: P# g9 o; N 83 * A' z |5 U& p
84 #endif* C$ t' X" D5 m" V
|
|