|
|
1 #ifndef _LOG_H_- h6 E6 C0 {+ z7 \) C
2 #define _LOG_H_
# h5 n6 z$ j$ A+ X% R; w 3
( u1 u+ w' V" A" z( a, d4 h% y 4 /* 0: printf; 1: UART1 */
5 S& M1 ?% e9 f 5 #define OUTPUT_TO_UART1 1
7 \& K5 e$ |* t' X* ] 6
3 V8 H5 U8 N: {# D 7 /* Switch Log Output */
+ ?% S6 N9 q" f0 w. ~ 8 #if OUTPUT_TO_UART1, H* M' t# x. y4 \# ^
9 /* For UART1 Initial */
, g9 d M2 Y. d0 A. o7 R 10 #include <stdlib.h>& `5 i* g4 u# S
11 #include "hw_types.h" ' L9 n$ K& H8 d7 ?* ~
12 #include "hw_syscfg0_C6748.h", _. C; |- n- ~5 z; s
13 #include "soc_C6748.h"
1 c) S! v- y5 r: a8 E/ y; ]/ ` 14 #include "psc.h" % P, Z5 B/ T- s) W' A: A) Z
15 #include "gpio.h"
: v: H/ I$ W( \ 16 #include "uart.h"
_: M% o! _. X# A0 D0 l4 ? 17 #include "uartStdio.h"
) x/ M$ w- y& [" U5 | 18
7 ?% ~3 G% r7 J, o/ M 19 #define OUTPUT UARTprintf+ x) e4 j4 d! I4 k! v
20 #else
- t/ }$ c1 j8 i: e- R. J 21 #include <stdio.h>
7 q' }; u2 C! v; C8 o 22 #include <stdbool.h>; N2 g: v' f% Z$ ~! r; m
23
' G1 I0 c$ }2 @/ H) Q& P 24 #define OUTPUT printf
9 O; c6 {7 Z: W; [ 25 #endif& H5 f- l4 \2 u
26 $ t' {' L5 g% U+ l8 g) D! p
27 /* Log init */
! `0 l9 w' C+ H4 a% O 28 #if OUTPUT_TO_UART10 k3 _( G4 W# @7 Y0 y* E
29 #define LOG_INIT() do { \
/ Q9 f/ D/ W @$ v8 Z& A* B/ O' O 30 PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, \
5 X% z, f5 l! d* U 31 PSC_POWERDOMAIN_ALWAYS_ON, \
, e6 p( ^1 B' I$ l 32 PSC_MDCTL_NEXT_ENABLE); \* J" j5 c; o3 O
33 GPIOBank6Pin12PinMuxSetup(); \
; y% ?& ~5 A/ O 34 GPIOBank6Pin13PinMuxSetup(); \
$ C/ l! P. R9 W' i( q4 G 35 GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT); \' r o* b6 I9 l0 w
36 GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT); \" v; E" P* d5 L6 t# [2 M' Y
37 UARTStdioInit(); \
+ ]2 a+ ^; k B- Z$ z# E* @ 38 } while (0)' j# f, w( I4 L% T# ^( j2 @8 R
39 #else
6 a/ T- j$ U! H0 h$ S) H$ `& O: X, e 40 #define LOG_INIT() do { } while (0), }: m7 _; n3 g# ], i
41 #endif, v) t) L* A( [
42 5 e, z# Y' ^% f1 [$ c2 N+ m. [6 C
43 /* Log Output */& Z- `# s8 i+ x: j5 i
44 #define LOG_INFO(format, ...) \
+ o% b2 t0 A& M. C9 @ O6 k( Q 45 do { \" t& U. t6 k B3 E8 y1 b2 [
46 OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \1 C8 C1 d6 P: g2 Y2 t
47 } while (0)
( q' V4 h$ u4 u) ]$ Z+ p# M. Z# K 48
" ]6 \' O+ w3 B8 T/ Z 49 #define LOG_ERROR(format, ...) \! ?& s/ s5 N, t4 T& }5 j
50 do { \
/ f8 [ O$ f0 r$ J' D 51 OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \& i ~2 E" p1 z5 x |5 m6 _
52 } while (0)
3 ` m$ K- k$ N 53 + Y+ t: a" w) _: M$ d
54 #define LOG_DEBUG(format, ...) \1 ^6 y4 x' V) f! R) q/ L0 Z- ]: w
55 do { \
4 x- q# y5 |) j1 j, { 56 OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
E! P: J, @7 l1 D! O; z 57 } while (0)6 [+ |' `+ s1 S8 |. X( `( P
58
6 p' ^9 e4 ]' d( E( P+ m. g 59 #define LOG_WARN(format, ...) \$ D) P/ d# J6 M9 K1 Q8 e
60 do { \% H1 z: c) o" `7 ^ x
61 OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
8 e0 Y) H$ i# `$ a8 v# L 62 } while (0)
" j- Q" Q- W7 q4 p% }$ r 63
* H) o% u8 W0 E, h/ ^! M 64 #define LOG_TRACE(format, ...) \( T5 G# K: h' a
65 do { \1 Y7 q* R7 s5 X0 P- F/ S
66 OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \* w q6 O! t6 h" p
67 } while (0)
$ w! d! N+ V" v( H7 z 68
, `( l! M# }4 L* s( b8 ]( G 69 #define LOG_FATAL(format, ...) \
8 x7 P- I) \/ U9 p 70 do { \
) n7 C q0 `1 w; q) \ 71 OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
: ]; w, {6 r$ Z: n% S' F8 g 72 exit(1); \
0 V* S+ ] h6 b" c. K& J 73 } while (0)* J5 I7 y, n6 ?6 W% C9 h
74 + {! Y5 F8 o) U" g8 M- h. ]
75 /* Assert */3 x0 u& G3 J, \/ [$ d# w
76 #define ASSERT(EXP) \
# q1 Z& T! W" \0 t+ i 77 do{ \
' S7 Z' K0 N1 \- p. A 78 if (!(EXP)) { \3 F U( T. s5 v4 k' X6 M
79 OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ ); \8 J! q3 C6 ~# O9 n6 N2 z
80 exit(1); \8 o4 M; m* Q9 |, d; R
81 } \
$ b+ h/ h4 t8 r7 B2 c. w1 S5 o 82 } while(0)
% S. p; k0 _% H, M0 Z, | 83 5 v2 Q: R( d) Q% _3 {# w, {; T/ r
84 #endif
0 ?2 I$ M4 z$ E" l |
|