|
|
1 #ifndef _LOG_H_
8 }' C+ E* R- w% \5 _) J- ] 2 #define _LOG_H_7 b" ~1 Y$ h; {4 O& p2 t
3 ! L0 _. ~ o9 I
4 /* 0: printf; 1: UART1 */3 t/ g6 h2 K% h3 Y1 C) ~6 {
5 #define OUTPUT_TO_UART1 18 Q" E O/ {/ }- Y2 N
6
N/ X0 m3 ?9 {; f 7 /* Switch Log Output */
5 b! `: \) h% q 8 #if OUTPUT_TO_UART1
( J& I- j3 S# i/ S q& F$ \" _; y 9 /* For UART1 Initial */8 a/ o: s( p* B0 A* u
10 #include <stdlib.h>6 J& \, F( Y9 y" j/ `. W4 w/ g
11 #include "hw_types.h" : U+ I% \9 v0 o+ V! v
12 #include "hw_syscfg0_C6748.h"! G3 O5 n" U. a2 h" ^1 v- b
13 #include "soc_C6748.h": @( _5 O2 i! |$ c4 `( Q
14 #include "psc.h" 2 G0 T0 b8 N" W. G3 G+ G
15 #include "gpio.h" ( D. q- z/ E! ?. O9 o, o
16 #include "uart.h"
5 w/ ]% b6 x: O3 b& [ 17 #include "uartStdio.h"
" m6 l0 G5 u9 o) g: W* _ 18
7 \. k) C$ Y5 F 19 #define OUTPUT UARTprintf
) @. K) u1 l/ u/ P" P2 i* K8 y 20 #else
& ?% ]2 l s% V1 x6 i. `+ z 21 #include <stdio.h>
9 R$ `+ K: g5 d; g+ ^4 _ 22 #include <stdbool.h>
8 W, u% L! {8 u 23 5 k8 k2 s) |6 [* t0 a
24 #define OUTPUT printf5 n7 {; v: h/ I H0 I& L
25 #endif+ k! W$ c' a% j
26
9 R% I) X4 b+ i2 _: `2 x 27 /* Log init */" }! q! _) i7 E6 _/ R
28 #if OUTPUT_TO_UART1 B5 S1 D! @" }2 @
29 #define LOG_INIT() do { \" ~! U. _: @# X* h: w
30 PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, \
- E1 F. v* i* {* U, D 31 PSC_POWERDOMAIN_ALWAYS_ON, \
( Y' t2 D1 F. G! o 32 PSC_MDCTL_NEXT_ENABLE); \1 C- Q- g4 z' s2 k% L$ v
33 GPIOBank6Pin12PinMuxSetup(); \5 f. {2 ?2 h% c. y
34 GPIOBank6Pin13PinMuxSetup(); \
5 U$ J2 ], O& i* L& _& |4 H. m) E 35 GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT); \
, d) Z9 E& \$ r+ U- A+ R& |& L 36 GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT); \0 V+ [9 h/ A) J$ o( n( L: Q4 _
37 UARTStdioInit(); \7 k) Z/ J/ k0 M% I) U. x
38 } while (0)
3 ~- t" `6 ?8 o' t' O; X 39 #else; V3 e# l Y0 k* g0 o4 B
40 #define LOG_INIT() do { } while (0)3 _, v! `5 m7 K) s4 e4 U8 r
41 #endif7 `7 T2 b g U- n7 x: `
42
, q2 ~# i+ ^; ~) j3 { 43 /* Log Output */" y5 q" s( H9 N; d7 ?7 G5 J2 o
44 #define LOG_INFO(format, ...) \4 {9 G( ]* I4 t; u4 W% u: e6 ]8 s
45 do { \# _/ ^/ Z U- R
46 OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \) y( P1 C }; Y- Q
47 } while (0)
! N. J& l0 T8 n# h, M7 K 48
4 v: _% f$ m/ q3 h$ M p0 }: b 49 #define LOG_ERROR(format, ...) \
: X+ f) [" I4 U 50 do { \
; q- s1 s& P' O$ R8 H3 T 51 OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \# z7 [' a+ Y- C* d- m8 U, x
52 } while (0)
1 ?% K* U$ J, V- m R( B- M+ \ 53 / u5 N& J5 P. I! |, F# T: I
54 #define LOG_DEBUG(format, ...) \( P5 B7 @$ ?7 S) ^" Y* j
55 do { \" P/ m: g& l9 P
56 OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
. P% @6 I) d9 b4 p( K' r 57 } while (0)1 V' n' p( ~' f6 h0 c& q
58
( Z( Y _7 D5 c. ~0 N 59 #define LOG_WARN(format, ...) \
) |1 [6 S; n7 H( B0 |* i s9 [ 60 do { \
2 D4 d d0 u" m6 n 61 OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \* f3 {3 w# y& c2 h: O5 {2 B: L+ H
62 } while (0)! m% ]7 C; C! B$ y/ w" ^
63
7 ?+ M1 V6 \) l7 ?# P# H2 } 64 #define LOG_TRACE(format, ...) \
) h! N9 Y3 m# O! a 65 do { \9 }2 b% b' a4 Q2 `. j
66 OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \! g' _ e# `& u6 g* X' z, ?
67 } while (0)
2 N! |! M1 N( `" c# b9 V' M 68
1 ~5 z2 X s6 \) B3 |7 E7 H 69 #define LOG_FATAL(format, ...) \9 B% Y* Z4 [% }) K
70 do { \. D/ q0 d6 I% y0 ], R: O
71 OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \( t' g* q: j6 U T
72 exit(1); \. b" _" J- s6 Y# d6 |6 y# r
73 } while (0)) I2 e$ _ ] j+ Q1 i
74
9 d# ]; p( x0 p: J5 F 75 /* Assert */6 q: v% T2 z6 g: P: ~. o3 {
76 #define ASSERT(EXP) \
1 X& c% D0 N) q; G; A, L0 B 77 do{ \) N& f" m, ^& y$ E( b0 {6 @. P+ K/ _# f
78 if (!(EXP)) { \
) [1 m ^8 I0 \2 S2 \) q+ Y 79 OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ ); \
3 [( \; t9 i0 v8 x 80 exit(1); \# o& N2 {2 K% m. w m
81 } \
. k k+ H* t( g* P- y 82 } while(0)
; S2 J5 P/ C. k7 R& k 83 8 `; K: E% R$ O I/ B. c
84 #endif0 j: X/ q" s( e* s
|
|