|
|
1 #ifndef _LOG_H_
6 U& ]5 [7 g" i 2 #define _LOG_H_5 H8 L: ^5 M+ Y0 X
3 % B$ g) t" x6 J i9 c. e% U0 i
4 /* 0: printf; 1: UART1 */& j$ O: n# Y# b: b- |
5 #define OUTPUT_TO_UART1 10 U2 R8 {- n1 E4 P4 _- ^
6
. ^$ W2 @, I9 `- j. i 7 /* Switch Log Output */- R. K [( q Q( n3 g! M" Y
8 #if OUTPUT_TO_UART1$ |3 e0 \/ K; }/ n# ^
9 /* For UART1 Initial */
3 G& }+ b8 ?$ F& l 10 #include <stdlib.h>, V! h7 x) D: {
11 #include "hw_types.h" , R: `5 A; O0 @, J6 _
12 #include "hw_syscfg0_C6748.h"0 s) S6 D' z' N; S" v2 C3 B* q u
13 #include "soc_C6748.h"7 y, S6 |( ?7 u
14 #include "psc.h"
8 Z3 l. [, L# h" \, j- a0 N# I; N 15 #include "gpio.h" ( v% H5 [; p. H! g+ ]
16 #include "uart.h"4 r' U4 c, D2 @# M5 j' }
17 #include "uartStdio.h": g" y' R9 U. Y, ^2 s0 v. p# B$ @
18
6 ]5 h3 p1 o6 n' | 19 #define OUTPUT UARTprintf) q" R1 l" z7 L" P4 G4 J5 `. H$ ~
20 #else/ u3 g3 J9 O" }0 h+ c/ L
21 #include <stdio.h>
- ?2 n2 N5 Z" F" w+ I u& t2 W 22 #include <stdbool.h>
; u: a7 g5 |4 }: c* _1 C/ c 23
; c8 K3 E+ P6 S' A; q6 T/ c, r 24 #define OUTPUT printf
# I3 F& c# `( r4 A4 _# T2 h$ @ 25 #endif
0 d+ P& S9 r, \+ \ 26 : a m y$ P; ?/ S2 H- k) I
27 /* Log init */5 e4 R$ B3 v0 f+ c& B
28 #if OUTPUT_TO_UART1
- c. J+ U$ w( \0 z 29 #define LOG_INIT() do { \
3 \9 m" ~* D9 L7 j! {# |) C7 ^ 30 PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, \3 M) H! j2 `2 F
31 PSC_POWERDOMAIN_ALWAYS_ON, \' v; S+ H. G2 d( R4 c9 q" m
32 PSC_MDCTL_NEXT_ENABLE); \8 c% Q4 D7 _$ G( u, R' x
33 GPIOBank6Pin12PinMuxSetup(); \* c: C% l3 {: ~, K @" z
34 GPIOBank6Pin13PinMuxSetup(); \
1 I3 K6 ?8 o5 y- R 35 GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT); \) \, s1 l% ?# P6 F; x z5 m
36 GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT); \
; Q0 {, D4 n8 r 37 UARTStdioInit(); \
! T2 ]$ ?9 K1 B- D* _& b 38 } while (0)8 o/ a, Z+ `; @2 k
39 #else
& c% S; R, Z. e- u' D2 V 40 #define LOG_INIT() do { } while (0), g/ o# r" f5 e$ o0 y% B9 [
41 #endif
% Q9 P" c; q# C6 ~ 42
" k/ p5 i5 d) U, _9 A: K. d 43 /* Log Output */
6 O- S; U+ U$ _- \ 44 #define LOG_INFO(format, ...) \9 Y1 O/ z' }2 T, F) [. c
45 do { \
& y. _7 V1 ~$ j 46 OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \! Z2 |' {; }" j9 u
47 } while (0)8 H! U: V1 ]" @# D5 _. H9 u( a: h
48
% u2 \5 k% Z5 V( ~$ @ ` 49 #define LOG_ERROR(format, ...) \: [" K% W' L K- k \+ L: ]
50 do { \
( y( \+ o# T1 {; g: [. ` 51 OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \( \/ P6 I0 {' [* I0 H1 Q
52 } while (0)- a. V5 I# N0 s8 F- C
53 2 |, P# E; D" f# {& y: f+ A, O
54 #define LOG_DEBUG(format, ...) \
' ^; K8 \5 N# m \ 55 do { \$ A% {& V S1 i4 V+ A4 m4 R
56 OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \" C$ [* [ v- y1 t7 e3 D
57 } while (0)
3 _) y0 G7 n; {) W( J* R6 \ 58
6 M, z8 I! W6 Y+ e! O3 }9 f 59 #define LOG_WARN(format, ...) \! r% R2 j" `4 C$ P/ H; [* I% y
60 do { \. N1 [/ _9 D& r6 t, \/ _# x1 d$ `
61 OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \4 T0 C" G8 H: f; V
62 } while (0)
( Y, l- t5 G5 s% Q. i% w: I P1 D( o 63
- [" Z- ]) L1 P. L8 p 64 #define LOG_TRACE(format, ...) \
* L' c3 u2 t8 J- ]5 @7 q/ s 65 do { \/ s4 k! l5 R. D6 P3 K, m4 V2 Q
66 OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \3 a, T0 o+ C+ @) s2 }; X, | w
67 } while (0)
6 K! J% _* S e8 D1 E8 Q' Y8 Z1 M9 M 68 5 K% h2 [; M. V; q, v' b
69 #define LOG_FATAL(format, ...) \; m# K! Z; m% J2 F } Y
70 do { \
8 I$ f0 Z) A0 b. `( W% \3 q) M 71 OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \3 X. Z& L A- _9 @2 i G$ N
72 exit(1); \! S1 A Q5 \4 r G! O. A; c
73 } while (0)
% P! s" `& o$ B. p/ k% t9 a ] 74
' E; {. q q+ D" m( e$ ? 75 /* Assert */
1 ^7 G. V2 X& E d( S 76 #define ASSERT(EXP) \0 M# D% G$ T7 G/ A
77 do{ \
9 H; Y" E9 E* ` 78 if (!(EXP)) { \
$ c# l/ X* w8 {% q% m 79 OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ ); \
6 a! Q4 J3 v& \* ]2 R0 u 80 exit(1); \: x. u2 h! [ R/ U! g {5 H% f
81 } \0 w, e' ] n: m {7 `
82 } while(0)3 q2 v) }3 c4 h7 f7 [2 Y
83
( Y! v5 v$ q* H# L, f& r$ O1 V 84 #endif
6 H9 m: ]4 o" A, {2 W. a |
|