|
|
1 #ifndef _LOG_H_
1 R0 t/ j1 U" M" c; B! g% ` 2 #define _LOG_H_
: Q) S, K% K# c& W$ P2 W 3
* ~' @9 Z: k1 [( f 4 /* 0: printf; 1: UART1 */
6 z. I* M6 K$ c6 K. P/ `0 d 5 #define OUTPUT_TO_UART1 1: P7 _; a7 W' v- V" ^( v
6
9 Y. {3 j6 L. l 7 /* Switch Log Output */
2 C1 V' O5 s8 X; @( v* B 8 #if OUTPUT_TO_UART1% D7 L3 ]/ x* r7 g. O8 T* |2 U
9 /* For UART1 Initial */
8 O! D2 z9 j) A* L8 R1 e 10 #include <stdlib.h>4 A: |2 K2 _# {5 V8 q
11 #include "hw_types.h"
& H* o* S% Q X6 D 12 #include "hw_syscfg0_C6748.h"% }/ |, a% H- K5 P; T' O
13 #include "soc_C6748.h"
- \6 O( l' T7 e0 w X 14 #include "psc.h"
. |+ M* i# w4 i 15 #include "gpio.h" 6 a( F9 Y0 @( s1 H w9 e8 t- C
16 #include "uart.h"1 z8 r# |7 x2 L- j) K
17 #include "uartStdio.h"
* [9 J: R! {9 L 18
# Z& w! F7 E4 i5 g! A2 _- C; l 19 #define OUTPUT UARTprintf v1 D; o$ D$ b0 }. C8 v
20 #else% X! W3 a7 E$ p. `
21 #include <stdio.h>
7 a% P# M$ F, v9 v' F2 \: m' S 22 #include <stdbool.h>( [; k/ b; P$ {1 H* l( L8 S
23
1 a5 [! ]; |" k. o 24 #define OUTPUT printf; B H4 d" ~; c$ r) L; [1 K9 t9 z
25 #endif
6 F0 f8 a9 T% x+ ?9 I 26 ; ]9 h) w) u$ ]2 j5 O
27 /* Log init */' l- ~3 W$ V* N8 M
28 #if OUTPUT_TO_UART1" V. C! H N" a& o- n, N' k$ p! E
29 #define LOG_INIT() do { \) F; W5 F* V- b8 Z
30 PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, \+ U" E- n' m O4 y" B+ E! b
31 PSC_POWERDOMAIN_ALWAYS_ON, \
! D. s# o+ y* {+ c) D 32 PSC_MDCTL_NEXT_ENABLE); \# l. ]2 j, A% b3 f
33 GPIOBank6Pin12PinMuxSetup(); \
% w- F8 @1 G, L+ G+ k( Y9 f 34 GPIOBank6Pin13PinMuxSetup(); \
3 c( E7 X' X g6 `& M. i. J 35 GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT); \
8 z8 C0 I( s" [2 q+ K4 |: _ 36 GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT); \2 t2 Q0 r/ e" i3 N, S
37 UARTStdioInit(); \. O, t; ?. C. `* O# ~5 ?, z$ g
38 } while (0)
0 V0 z" \$ o, t: o4 E 39 #else' k' j2 M6 [# w) w- P8 x) n
40 #define LOG_INIT() do { } while (0)7 W5 h) Z0 @: f5 N& k4 [
41 #endif
+ Y" s$ v G/ q' B 42 z9 i7 A% A9 I6 `: x/ y( ^: q
43 /* Log Output */# Q9 j2 n& @/ r! M
44 #define LOG_INFO(format, ...) \
# x0 \ ^& H' }; P 45 do { \- T6 d x1 z; Z3 `, p% Q }
46 OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \6 N. P% }. ?' b a
47 } while (0). `" o) Q7 Q$ N, Q
48 & N8 r: f3 J; s) { g# W
49 #define LOG_ERROR(format, ...) \) ^, h3 O4 l0 s( [' L
50 do { \- N* a s5 O' R% Q) H
51 OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \( J5 V# F+ X" K& _# p# e, J1 @
52 } while (0)
4 z' O5 r1 H) k1 f6 Z 53 % [9 T! [6 r7 c! Z$ Q* x; R
54 #define LOG_DEBUG(format, ...) \4 m2 b, T X0 H# c4 d
55 do { \! d- G( n" E. }; S* s
56 OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \0 T8 f8 |! g- b# n5 V; |. c/ }
57 } while (0)
' g( \) I8 d5 }; u 58
4 U& H) v- t2 H- h; G) U7 {; V6 s 59 #define LOG_WARN(format, ...) \
/ v+ n) l" Y) V 60 do { \2 {+ I( v/ ^. w- g* L4 A$ N; h5 G
61 OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \/ n& v" A) V; a# z
62 } while (0)
; r( o- S0 |4 E% a9 h' Z* c& x 63 # N5 F$ \$ D0 m5 p& g- ]
64 #define LOG_TRACE(format, ...) \+ K4 Q5 h; T- c) B4 W& t5 W
65 do { \
' b/ S4 W% h4 T" S1 c% P 66 OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \9 n n! u: x4 g
67 } while (0)
/ {( g' D" D- k, C 68
; }8 F& m& h" C( h5 ?7 i 69 #define LOG_FATAL(format, ...) \4 b, b+ ~( j- ^+ l9 t% G* m
70 do { \
& O# N# Q( K. h1 s) B2 P 71 OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \7 J: ~" c+ a( v, \! n$ t3 A
72 exit(1); \6 |# U, f5 U7 B# e4 s E
73 } while (0)
% Y: d3 r( Y) |9 Q/ n* W Z 74
$ g) `0 E+ i6 N! {. g+ d# ] 75 /* Assert */: _ p$ G: R: n+ g; J
76 #define ASSERT(EXP) \
, t4 d7 j* t# _# N; p9 o 77 do{ \$ z1 d6 v1 u e* W& g
78 if (!(EXP)) { \- M) A! x3 s# Q4 K% q/ x* y2 t$ t+ E
79 OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ ); \7 J5 b: b- D# s. L* y
80 exit(1); \6 E: f0 r1 Y, b& H
81 } \( G3 ~% `8 w a! l) H% r3 E
82 } while(0)
( P. [( ]/ p3 p6 E' u. y 83
d- U3 ]. M1 I- S: u& x( V 84 #endif- N$ a1 i$ e. d/ r/ \
|
|