|
|
1 #ifndef _LOG_H_+ U% }: I- T! ]/ D) P6 `8 v& c
2 #define _LOG_H_& a8 X/ O) ~9 A1 }
3
5 y) J9 k, W5 T" ` 4 /* 0: printf; 1: UART1 */* I& s# }& V* w! F( b
5 #define OUTPUT_TO_UART1 19 F5 X, @% h1 f; |: O! z# I
6
- m, c j- l: F5 M L( Z 7 /* Switch Log Output */
' P; ^$ ]9 l6 m; h0 I, } 8 #if OUTPUT_TO_UART1) N! z3 y G* c
9 /* For UART1 Initial */' F* d" F' q/ P0 t
10 #include <stdlib.h>" q: z" a7 i! T6 S/ S B" S
11 #include "hw_types.h" 8 b- {. o& P! H: u/ {7 u
12 #include "hw_syscfg0_C6748.h"
5 {4 j# U" ?5 [7 @4 |. e- x$ }% L. D 13 #include "soc_C6748.h"
! I- p6 i @2 x) s4 ]) B: A5 F, I 14 #include "psc.h" ' o4 g* ]" [5 _* e# k. _$ Z
15 #include "gpio.h" 4 |2 F% e5 H- H) d; a; u" T* Q6 _% F
16 #include "uart.h"7 O3 f# B) _ F( n* C
17 #include "uartStdio.h"8 H& p% i& \) q0 {' I
18
5 a5 v5 X C. K' n1 s( S5 k6 Y$ l- d 19 #define OUTPUT UARTprintf, F3 @% W9 C& V
20 #else: U* A$ }4 A" D0 [1 ~% U
21 #include <stdio.h>
' l# O7 b U/ [2 G7 _ `; E 22 #include <stdbool.h>9 E7 {2 k* ~5 I& z9 b
23
7 Y/ z( x) t1 L0 Z/ M+ Z; \ 24 #define OUTPUT printf0 a- u) @! Z+ G4 W
25 #endif1 W5 K- }/ x5 O% T# J
26
" A% S0 W$ m k; p Y9 N( f& j 27 /* Log init */# L9 k8 V. {! Z( _
28 #if OUTPUT_TO_UART1
B. `- I0 m0 m+ R, J2 Z 29 #define LOG_INIT() do { \
2 Q0 p( Z5 b, @5 {1 J! a4 t 30 PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, \6 L# `: Z7 ^- O* P* H, s3 K2 a
31 PSC_POWERDOMAIN_ALWAYS_ON, \
; ^9 U3 C; K' M- ~. o 32 PSC_MDCTL_NEXT_ENABLE); \2 n, \ ]2 M, }8 W1 T
33 GPIOBank6Pin12PinMuxSetup(); \5 [9 d- M6 ~9 b3 Y" T
34 GPIOBank6Pin13PinMuxSetup(); \
: R y8 i1 T% O" x: _0 _% z 35 GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT); \
( d3 ?; _8 H. \% d! r: c# J 36 GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT); \7 {8 J7 x+ D5 A) h8 h' g: a' c
37 UARTStdioInit(); \
6 @ _; ~0 |$ v' l4 p. B 38 } while (0)
7 z& U: R, `; \( C$ a7 J 39 #else
4 \' A+ O/ g- S. G. B 40 #define LOG_INIT() do { } while (0)
7 j* S! ^& e1 R& U& b/ B( x 41 #endif
5 Y1 h$ I: p/ T: ` 42
% x3 L4 i& T- V 43 /* Log Output */
- @( }/ s* U/ |2 Y 44 #define LOG_INFO(format, ...) \
; R2 b3 E/ Y5 K E6 D+ e/ H 45 do { \! [, h: Q7 n9 p0 w
46 OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \) ^+ ]; ^1 ]* d9 m% y7 Z
47 } while (0): H7 U, I) | N# l! g2 q
48
- l5 q0 i5 \. {8 G, N 49 #define LOG_ERROR(format, ...) \
, I& v# g* j5 s/ K3 ^& w 50 do { \
( W9 N# W5 Q& O U. D) B1 P4 w2 s 51 OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \' u$ T; W& s" n, L
52 } while (0)8 u3 a/ ?- I$ X( h) @& g5 }
53
- j8 f4 }5 H' Z 54 #define LOG_DEBUG(format, ...) \0 V4 }' ?+ I# A5 H& O0 S
55 do { \
& B( p$ f, W& A6 s z" i* R 56 OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \# |* Q' ] ~) S3 j& l( h
57 } while (0)
, T7 i& Z, r1 O1 l7 F 58
( b, T4 H( c& M% ^0 |- |, ] 59 #define LOG_WARN(format, ...) \# L$ j- N+ N0 ?2 M/ s$ V
60 do { \& h* H& T2 D4 q
61 OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
8 H* x+ `4 K* q 62 } while (0)4 O, `+ ]" J. N( U7 _
63
1 f* D' g8 |& j 64 #define LOG_TRACE(format, ...) \; M+ h G$ ~/ m7 F6 z
65 do { \1 y' n" E/ w6 L# v
66 OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
% h2 e3 S* z/ N, O/ F 67 } while (0)* B0 M: W" y, v$ [' J
68 2 W- `7 @* e' s& T3 b
69 #define LOG_FATAL(format, ...) \( d9 e+ v* Z5 [9 {( G
70 do { \
6 @3 P- q( @4 d$ [ 71 OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \
& _* K1 P: ~% t* N+ [7 _ 72 exit(1); \
! Q& G( Z i. F( x! c 73 } while (0)6 i2 n# P! L: s5 A v/ p$ {
74 7 m$ S' |3 x6 Y' A/ ^9 n7 I& d
75 /* Assert */6 y& S5 W# G! q
76 #define ASSERT(EXP) \4 K5 ^$ ^& ^/ j% A! O# I9 n! O
77 do{ \( P3 B7 j; b: r' x; o
78 if (!(EXP)) { \
+ O9 W/ ?7 E& b3 p- S 79 OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ ); \
! G/ S! Z! n' x" ]% V6 I J7 D3 o 80 exit(1); \0 h, t' `2 L3 H2 k* t/ e& Z
81 } \; _: J" K; l, D9 r5 _4 U
82 } while(0)5 P& Y9 j" _2 i0 g/ K
83 4 z/ b2 e; C8 F: O) d& M
84 #endif& o0 l! L* w$ \/ ^
|
|