|
|
1 #ifndef _LOG_H_1 E- ~" i/ E% [0 {! F: u2 U! J1 k
2 #define _LOG_H_
! e3 Y+ ?6 i* {8 g 3
& \, A) n" Y% O3 T, f 4 /* 0: printf; 1: UART1 */
& P- U8 _) @+ D( T4 F2 d+ B 5 #define OUTPUT_TO_UART1 1' ?7 x+ C9 K' E5 _ o- u; m
6 - L/ ~2 E5 a1 M" ~
7 /* Switch Log Output */
9 j! `9 {6 L1 A 8 #if OUTPUT_TO_UART19 G$ x( Z1 z2 ^; T; ]
9 /* For UART1 Initial */
/ }4 T" [( [. Y 10 #include <stdlib.h>
9 }( |* T3 K8 O3 C8 ?( D4 S 11 #include "hw_types.h"
# S" q+ z2 w; h5 W2 ]1 r 12 #include "hw_syscfg0_C6748.h"
2 X+ R0 H! p, Z9 ^+ ]4 U7 U 13 #include "soc_C6748.h"9 k0 T0 X! l. g" `" ~' `
14 #include "psc.h" $ C- L- L, |& b& } O6 D5 v
15 #include "gpio.h" , ~0 B7 b/ S) [9 n% L
16 #include "uart.h"* j+ I9 G4 g. m( A7 E* H! ^: {
17 #include "uartStdio.h"
/ Q- e+ e& R$ u" w- ^6 R 18
$ i+ O& J* J4 | 19 #define OUTPUT UARTprintf9 |1 C6 ~! q2 X0 V: [
20 #else
2 U9 v' S2 b* b# ]4 e( K 21 #include <stdio.h>
/ Y3 q* ?* O5 o. [3 ?0 i3 O- b7 V. I1 Q 22 #include <stdbool.h>
/ S: @1 B1 E- P V T 23
: p% _$ O/ @/ m/ y& [ 24 #define OUTPUT printf
! a' h; G- M0 r" L* a; Q! B 25 #endif, \1 o2 p( h; U* Z+ T0 |$ g+ X
26
' T3 L+ N! S* g$ M 27 /* Log init */* E9 P1 k8 k; |, @' A+ P$ p: @
28 #if OUTPUT_TO_UART1
' v5 q9 G; \8 y* O! E, U7 H 29 #define LOG_INIT() do { \
$ p) Z, U2 _4 T3 M5 Z4 T+ A 30 PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, \ A4 ?; [2 l4 M
31 PSC_POWERDOMAIN_ALWAYS_ON, \! [& W& |" V% p" o1 I; G; G1 N& W
32 PSC_MDCTL_NEXT_ENABLE); \
( f3 b0 _/ w, H' g! P9 b 33 GPIOBank6Pin12PinMuxSetup(); \6 m% t0 o5 }2 }7 L$ I( d
34 GPIOBank6Pin13PinMuxSetup(); \+ r) T' v& l% b8 `
35 GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT); \! S/ @! T# v. }7 z
36 GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT); \
8 r/ B: X- D% v. s 37 UARTStdioInit(); \4 H6 }* c" j1 W' ?7 X3 q2 G
38 } while (0)
" h& {7 k7 d' j6 Q1 D 39 #else
5 V7 R6 I/ ~9 |, F, @1 t6 b 40 #define LOG_INIT() do { } while (0): U2 o- }( Q6 D: Y$ }9 R
41 #endif0 N& Y+ R6 Q0 e- u/ N' t
42
6 E5 ~! g: L9 s; b& ]- v 43 /* Log Output */
. Z, ^( {5 w4 n; B9 j 44 #define LOG_INFO(format, ...) \
: y/ _! \( V0 ~ 45 do { \
. {! t! Y+ V ^$ d 46 OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
6 A, d: Q# A0 I 47 } while (0)
5 n# p0 U( J7 V9 r7 t 48 0 C" o+ R! ?* _4 g
49 #define LOG_ERROR(format, ...) \
% v* H' ]3 F* m* ^ [, e8 }$ s: Q 50 do { \+ j% B7 o* i4 o* K: B$ e* P8 V
51 OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
1 R9 R2 l+ Y! ]) F: U+ E 52 } while (0)7 T7 N! v; ]6 v. p8 g0 o( X
53 z$ v( t$ j# A8 g. g4 K7 A
54 #define LOG_DEBUG(format, ...) \7 A) m, q; K% X C1 {# S- ^/ n( q
55 do { \: c" j9 ^( h2 p
56 OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \9 X$ @4 ~ }6 k# N- @: k% r+ i, C
57 } while (0)0 @( I- k5 u, `2 }
58
5 a+ ]; v- \- t9 W4 _ 59 #define LOG_WARN(format, ...) \
# u7 J$ ]# f; q/ W( D9 k1 s 60 do { \
8 a. L. Q) f) U 61 OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
$ E$ V& `" `9 ~6 g* N$ }+ i: c9 R 62 } while (0)
+ q, Z* @ r! U, S, D 63 $ u7 G# p; q3 l, g% {
64 #define LOG_TRACE(format, ...) \" h: g, M5 p! o6 s
65 do { \; a0 w, Q! L" ^* y
66 OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \/ @: G8 _: D4 E2 i5 [# g g
67 } while (0)
" A$ D% D. _# E! j 68
: n: x0 \" Y7 O* G2 X2 u0 ~% \$ e 69 #define LOG_FATAL(format, ...) \
- Z( D* Q% m h 70 do { \) C8 M& B: M4 h0 o
71 OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
$ p5 }0 [9 h/ a 72 exit(1); \4 L" w& q4 B5 H0 B/ K
73 } while (0)7 @6 g" L: @" f/ B8 T& X. d5 K
74
* D2 V/ S: }% [- ~ F+ w 75 /* Assert */& O4 ]0 ^ s k2 o. s( ?; P$ l
76 #define ASSERT(EXP) \; c) Z4 e5 n; `2 J! j
77 do{ \
. S t I8 x9 { 78 if (!(EXP)) { \# ~2 L4 J+ P/ Q
79 OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ ); \ d& _, g9 R/ ]2 J. ]) h
80 exit(1); \
" \4 `. o5 Y+ W$ m! p5 Y9 B. J; W 81 } \
, N& H) B# H/ P, K2 z4 O D" j7 g9 C9 n f 82 } while(0)
. Y; z1 S( q3 p ~7 F 83 ! n+ T, Y: q" L1 L3 h9 Z0 i" o
84 #endif% x& ^* i8 O: O7 p
|
|