|
|
1 #ifndef _LOG_H_
6 }- ?& ]# I) H0 B' }, o9 o# f 2 #define _LOG_H_
2 |9 z4 ~- i7 r1 A4 w" b1 ]7 D- K 3
9 P p! e5 t) A" c" D; N T; U8 p 4 /* 0: printf; 1: UART1 */: s S# V. o- Q& P7 u
5 #define OUTPUT_TO_UART1 1
4 u7 f; C1 V& {) }, v 6
{4 ^8 Y4 y) x w l 7 /* Switch Log Output */; y8 g( Z, h2 s5 m/ y3 k
8 #if OUTPUT_TO_UART1
0 u7 r% A% y6 u6 O2 ]' y% |+ h 9 /* For UART1 Initial *// j# n0 g! ~# k& G
10 #include <stdlib.h>
$ _- e" G# L+ u0 p1 K 11 #include "hw_types.h"
" q* B# Z+ B! f 12 #include "hw_syscfg0_C6748.h"
4 l& r1 p, D' U- ?4 K* ? 13 #include "soc_C6748.h"
* O7 p- c- S# D# ~; x- B$ ] 14 #include "psc.h"
% o' b, l6 `" `3 d5 ~$ k 15 #include "gpio.h"
; Y/ g9 Q" S; o( m) u: w h 16 #include "uart.h"
' p% N2 G S y, f) o6 @. {$ ] 17 #include "uartStdio.h"
- s/ v: F+ }" L5 U 18 1 X2 K& w! r# T3 r+ h' T7 P2 P3 o
19 #define OUTPUT UARTprintf6 H- y8 U. B: N& \! d- T
20 #else1 p9 [3 {( n6 Q4 V
21 #include <stdio.h>: {7 D/ N7 L7 d' }, J- p/ t
22 #include <stdbool.h>
! ?6 A4 F% v' ?- ~ 23
/ R. ^6 f2 N5 @8 V3 ]2 c) S1 C' k 24 #define OUTPUT printf
0 [/ S" Z ?) E; Y; J 25 #endif
: ?. i- Z- y2 \9 `# k# [0 R' ] 26
4 \) j6 G; x, Z0 V1 }, P 27 /* Log init */
& x8 o- g, t. i* o 28 #if OUTPUT_TO_UART1* j$ h( { W5 e) {' t; r
29 #define LOG_INIT() do { \
5 ]8 w# d; r: m- P) M) _ 30 PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, \
7 {5 N" @% d7 z5 ]# y6 H1 M( g5 \6 w 31 PSC_POWERDOMAIN_ALWAYS_ON, \
3 @# f3 o" P" G. q$ r- { I- A 32 PSC_MDCTL_NEXT_ENABLE); \
3 |9 h$ k( X% h. Z4 G: { 33 GPIOBank6Pin12PinMuxSetup(); \
% ~8 R; L3 p% R 34 GPIOBank6Pin13PinMuxSetup(); \
+ }- O. |& V- v- J 35 GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT); \
6 ?6 m' ~8 l0 p# q 36 GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT); \' ]! O3 g" s: ~0 l+ r4 z
37 UARTStdioInit(); \
" n/ u( U# L; d+ K# Q. R 38 } while (0)9 ?( P) D/ c$ x5 N. [. R) [
39 #else
( a0 T$ A+ `4 y5 I' \* z1 S+ Z 40 #define LOG_INIT() do { } while (0)4 G3 D1 F5 o. a8 j* \
41 #endif
: V( ?% ?5 X4 Z0 x' v9 Q 42
0 {' ?# R ]; a6 K 43 /* Log Output *// K. ?8 q6 i) I @
44 #define LOG_INFO(format, ...) \0 E5 n% }# R O- M
45 do { \9 V0 V3 R; Z7 I: M( C6 Z
46 OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \: s# S8 X# m) y+ l3 \, E
47 } while (0)
" ?( k: X! [. Z 48
! H3 {+ n2 l9 S; S 49 #define LOG_ERROR(format, ...) \
7 p, u- D8 m- s1 Y2 v 50 do { \6 E" X1 l4 a. _6 Q+ z8 u
51 OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
$ P7 O: C2 O( D: Y 52 } while (0)
& M( }. u' r1 d( i; n7 R- A2 }5 H; d" F 53
; I( q: P7 \9 }# [. d 54 #define LOG_DEBUG(format, ...) \/ U, k- b( ^/ J5 v, y' e
55 do { \; V3 H; H5 K% H; P
56 OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
8 ?3 d f7 Y: p3 C 57 } while (0)1 _$ D/ h9 s! Z# c
58 5 G% L+ p' x7 b7 m
59 #define LOG_WARN(format, ...) \
B* x2 z8 ^/ |( ` \2 v8 p 60 do { \+ r+ x/ e5 G( ]- o
61 OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
9 f2 _0 \1 o( ]0 e& S: S 62 } while (0)2 h# S4 r! t7 P, d i
63 4 U% Q/ y0 J1 o/ ~
64 #define LOG_TRACE(format, ...) \4 D. c, G: t& ~/ N
65 do { \7 z* W- B. u! i: u$ l* q1 b2 O
66 OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \8 k6 _: Q) L" P# G7 [7 O& Y/ _
67 } while (0)8 G+ Z4 @5 o7 E
68
2 c) i' e( ^' O+ i' l 69 #define LOG_FATAL(format, ...) \
% Z8 O; P3 ~# t7 R5 S 70 do { \
~: U3 K( a+ _% v 71 OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \7 b9 A0 g, l R! y6 k6 I
72 exit(1); \
; Q' A) k3 z2 A7 O6 t, k 73 } while (0)
% L E; X3 E3 [0 ]4 j0 }7 }& ~& W 74 - T# @4 t- N/ T+ {" ~2 [
75 /* Assert */5 v7 l; G' e: ?" z2 F
76 #define ASSERT(EXP) \. O( w# C" {" g0 D' }2 h
77 do{ \) R0 y( z, p7 O0 ~3 f: T3 M& ]- b
78 if (!(EXP)) { \
! R" U; Z; q. t! J 79 OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ ); \
6 Y+ O$ X3 v& Y# u( W 80 exit(1); \
) H0 M7 y4 M9 s* B 81 } \
* \; ?& `9 x# {: E" N; h( @ 82 } while(0)
- o* B1 Z, o0 R2 f( ~8 F! C 83 * |+ S; t% o w
84 #endif6 ^6 A, I( x" }( }) w( i7 [
|
|