|
1 #ifndef _LOG_H_
# [. T% M( P8 f) z& w 2 #define _LOG_H_9 C( W8 L, l8 U
3 ( R% \) X- m1 b# m9 M
4 /* 0: printf; 1: UART1 */9 q4 |, y( I8 a
5 #define OUTPUT_TO_UART1 1) E' ?5 M- p' h4 Y7 |3 R' p
6
' y. m4 m/ \$ _4 m( R. s 7 /* Switch Log Output */
. V7 r5 Y$ m' e4 N 8 #if OUTPUT_TO_UART1
7 Z. e/ \9 D2 t7 K! t& t& I 9 /* For UART1 Initial */
1 w6 T- n. C7 Q; `% Z, m 10 #include <stdlib.h>( i9 |" o. m% K( ~4 w- t& j$ f# k. n
11 #include "hw_types.h"
$ ]" v- K- n9 n 12 #include "hw_syscfg0_C6748.h"
! J( _7 k0 f3 p9 h4 L: B/ G( u 13 #include "soc_C6748.h"
$ H4 K- f; J- A" e6 i 14 #include "psc.h"
5 S# H# T" N: V$ v) | 15 #include "gpio.h" ; b' B; S/ H8 B G I0 n
16 #include "uart.h"
7 N1 E( a0 p( L$ h* j 17 #include "uartStdio.h"- k& D/ L. I( ~8 D0 v
18
0 c, C: c9 {4 U2 x4 l, _ 19 #define OUTPUT UARTprintf1 ?* K% e" S) g! D
20 #else
& H% o4 h+ z3 @! u5 h' e& h 21 #include <stdio.h> U$ N8 S {5 ?
22 #include <stdbool.h>" h% [" l7 @; J( w
23 # @- ~' R4 d: a% Z, t* H. [% c9 v
24 #define OUTPUT printf
! z) y, H, P; v* ~: `; l3 F 25 #endif
; L$ d8 S3 b: p, F4 A5 F6 f 26
* i6 `+ w" p% R- T 27 /* Log init */- ?. I9 {* A% e1 l/ p& A
28 #if OUTPUT_TO_UART1
7 F+ g6 ^% G1 N; a' ^5 J 29 #define LOG_INIT() do { \' f8 @6 O$ H5 P& ^
30 PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, \* _5 N0 x% J- z& Z1 F* g& v8 ^
31 PSC_POWERDOMAIN_ALWAYS_ON, \
: W& G' z! E$ e# T/ }- q" o 32 PSC_MDCTL_NEXT_ENABLE); \
$ f, m6 a0 R6 ~9 T r7 i* _ 33 GPIOBank6Pin12PinMuxSetup(); \
0 B% n, l0 s. W 34 GPIOBank6Pin13PinMuxSetup(); \
! U" ?4 d7 H$ |! f, E0 t6 R T 35 GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT); \. G; T. o, X+ w/ E' j" v
36 GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT); \8 {: a- \$ N# d1 l8 @2 L
37 UARTStdioInit(); \) J. L+ }2 b6 w0 I e1 t0 \: E
38 } while (0)
, z6 ^2 {+ c4 {$ l; g 39 #else
% ?! J8 Q# `4 R 40 #define LOG_INIT() do { } while (0)
: k" G5 |/ s: r: E; m 41 #endif* Q5 v0 K/ H) x; y
42
6 B( T; u/ _1 L- J% l& r 43 /* Log Output */
; @0 S9 K* h- a 44 #define LOG_INFO(format, ...) \5 \# Q0 W- M6 r& ~& ?
45 do { \/ }' o$ h! W' r0 K3 ^
46 OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \* x% ~. F0 {6 [( }2 W) n8 g
47 } while (0)
8 Y3 `$ w, x5 ]) L- q( B% A2 Y 48
( W4 e5 d1 G1 a- t+ u/ ~ 49 #define LOG_ERROR(format, ...) \; B: t j3 n, f8 D8 H% |6 g( h
50 do { \3 U% V; N2 w$ C
51 OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \7 ^9 v6 A; [* }: ?
52 } while (0)- F! Q1 Q1 w! S& j- g! ?
53
0 f5 W1 d+ y6 N) _: P, R4 k6 d) W 54 #define LOG_DEBUG(format, ...) \
$ ~; f: x4 v7 C 55 do { \- R8 Z) D* } Y+ k6 s: c& g
56 OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
, f4 V6 m7 H2 M1 @ 57 } while (0)7 Z# m, j& n9 `! Z
58
, u( @" ~9 I1 u Z$ V5 F 59 #define LOG_WARN(format, ...) \
- L' _8 X' D+ k6 B1 l- @6 ? 60 do { \
2 I0 ^+ l4 P, k" [) Y& _' i 61 OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
; ]9 {6 W$ R- A$ u. ?8 z 62 } while (0)
& g4 C$ i5 A( P4 u- W% l, n 63 ( G, ~( K" T2 X1 ~: }; w8 n
64 #define LOG_TRACE(format, ...) \
! Q. I5 o, u; E 65 do { \4 J2 k' x1 y; x8 `3 H# A& `
66 OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \4 k6 Y! p1 u: a4 t5 ~8 H5 W
67 } while (0) B, V( z9 m! I2 t; s2 ~
68
4 _9 P2 _* {5 Q% ]8 M 69 #define LOG_FATAL(format, ...) \1 m! a9 }9 q# r# i3 U4 z
70 do { \6 E0 ^6 u5 L: A+ |: j
71 OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \& e. r+ j% Y, X/ v* S3 v8 j
72 exit(1); \/ K5 V% ?% `' g, b! L/ O6 |
73 } while (0) ?2 \- y8 d3 R, m( Q7 B5 v
74 ! b1 I" n* }+ @" D! }! k
75 /* Assert */8 D- x0 }, c2 ?
76 #define ASSERT(EXP) \
4 l( G. ]3 }! b# [# V2 G 77 do{ \
8 p4 |. C* _/ `: X# s( I( n 78 if (!(EXP)) { \9 f9 f9 f+ ^) X% w# }* s2 J; K
79 OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ ); \
* G: k! l/ \* S3 K# J 80 exit(1); \
. V! K ^- J& E# H' I& D! x; e 81 } \* W' P" k4 C. m1 T$ E0 o y5 n
82 } while(0)8 R2 a. k) [+ g3 S8 P' g/ j
83 % r* Z# x" Y# W6 h% i
84 #endif' N5 _. b/ \* x- F' M0 k; b$ w- A
|
|