| 
 | 
  1 #ifndef _LOG_H_4 S) V4 Z2 \% ~& \. r 
  2 #define _LOG_H_ 
3 W; z0 c7 @9 h) `; p- o9 f( f2 n  3 0 L8 e1 n6 a' t 
  4 /* 0: printf; 1: UART1 */ 
7 p0 |2 l$ [$ I6 w  5 #define OUTPUT_TO_UART1 1 
! ^* r7 v/ g3 c' r3 |% W# h$ b9 s  6 . t" l4 C+ ^0 { 
  7 /* Switch Log Output */! e% ~+ m& C9 H) ?2 w3 Z# V 
  8 #if OUTPUT_TO_UART18 z8 x' n3 Y; r! h' r+ q9 R 
  9     /* For UART1 Initial */9 W( E3 z0 F" B) C0 q# q 
 10     #include <stdlib.h>' |% T5 {8 u/ G8 W 
 11     #include "hw_types.h"  3 g+ `( s# ^  Y$ z  _* m- {! @+ Z 
 12     #include "hw_syscfg0_C6748.h"6 L) Y7 P) A  S3 s+ _- j 
 13     #include "soc_C6748.h": i: A# k; I5 p 
 14     #include "psc.h"               & |; d5 z  ~1 j4 }+ u# N 
 15     #include "gpio.h"               ; J- r" G8 B9 m* `, P 
 16     #include "uart.h" 
. ~& ?9 ?+ A$ p7 ], M4 N 17     #include "uartStdio.h" 
" `/ c4 b5 _7 u% Q 18  
3 t+ k. l1 V  J9 m2 g3 { 19     #define OUTPUT UARTprintf* l- J7 c; L$ w9 f: X 
 20 #else; ]& k; v1 |7 V3 _$ r4 q) G 
 21     #include <stdio.h> 
7 N& R/ [0 X: }9 D1 k 22     #include <stdbool.h> 
% h" H' Z9 s2 Y+ d: { 23  
, g* }" R% q* _5 Y) N& S 24     #define OUTPUT printf0 n4 i/ O9 i) c2 O% M 
 25 #endif, r8 ^2 P4 O- ?2 K  K 
 26 ) i9 ?) J- [! D7 H  B- v. Y( f 
 27 /* Log init */ 
) B2 s8 Z& z) ?6 V! p! {& G$ C6 v 28 #if OUTPUT_TO_UART13 Z3 c0 x' ^9 u+ P 
 29     #define LOG_INIT() do {                                     \ 
& j" s9 R& R% o% D5 d( y) B; q( W2 j 30         PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO,           \ 
* G6 N( {2 X# v: a& V  q 31                          PSC_POWERDOMAIN_ALWAYS_ON,             \4 a6 s3 J* @0 @4 n  H% {& x/ R: N 
 32                          PSC_MDCTL_NEXT_ENABLE);                \- f6 V. D0 s1 s 
 33         GPIOBank6Pin12PinMuxSetup();                            \ 
7 S# h3 m! o+ }; H! \ 34         GPIOBank6Pin13PinMuxSetup();                            \) j5 }& [% W( ^. T 
 35         GPIODirModeSet(SOC_GPIO_0_REGS, 109, GPIO_DIR_OUTPUT);  \$ x& ~! u( Y( E" o: w* Y- M; C 
 36         GPIODirModeSet(SOC_GPIO_0_REGS, 110, GPIO_DIR_OUTPUT);  \6 `* ~, V$ _3 P/ G. O 
 37         UARTStdioInit();                                        \/ u' G  O' w% ?9 A 
 38     } while (0)3 L2 C  W8 c6 n' ]1 W5 O1 p 
 39 #else 
3 I5 G3 ~4 w# A- W$ P4 p, Z 40     #define LOG_INIT() do { } while (0) 
, r; X# P# P! a& d1 I2 q 41 #endif1 ]5 a  G) @5 v9 n 
 42  
6 M  l- t$ @) g' L: z 43 /* Log Output */; H8 _' l% w6 z8 k: X 
 44 #define LOG_INFO(format, ...)      \! G' g' J" p5 T8 D* B 
 45     do {                           \/ G% A9 g/ V" `0 p3 G 
 46         OUTPUT("[%s|%s@%s,%d] " format "\n", "INFO ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \ 
: ]: z6 I1 U# [/ P- q( a 47     } while (0) 
2 m4 N5 J4 ~. g  l5 i, _ 48  
9 j  g% c5 n4 k# S' ?! M 49 #define LOG_ERROR(format, ...)     \ 
& s. ^5 x( I, E* m 50     do {                           \ 
6 X, U: P2 i+ @) |, G 51         OUTPUT("[%s|%s@%s,%d] " format "\n", "ERROR", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \  F3 A* C9 }) i1 G 
 52     } while (0)+ Z) r$ Z7 J! k0 }/ \ 
 53 1 i2 h$ W# a3 v; z  _ 
 54 #define LOG_DEBUG(format, ...)     \ 
2 W& H& {& |4 h6 ^' @; o4 t8 ?4 o- o 55     do {                           \# V- n9 ?3 N" Y 
 56         OUTPUT("[%s|%s@%s,%d] " format "\n", "DEBUG", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \ 
4 {) x, O$ W  v$ v& O1 l 57     } while (0)9 ^# [9 w9 _1 I4 w& e% {* Q% [ 
 58 ( c( A* Y4 K6 A; m 
 59 #define LOG_WARN(format, ...)      \% E4 O* I7 l: i1 b/ X$ Y) S, L) K 
 60     do {                           \. k! g4 Z9 S+ ]. P. A 
 61         OUTPUT("[%s|%s@%s,%d] " format "\n", "WRAN ", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \: U( P8 q# D; \" z6 X 
 62     } while (0) 
3 I: M$ ~) w. e5 j 63 7 I1 `; M/ J/ _% d% d" i 
 64 #define LOG_TRACE(format, ...)     \ 
4 z4 \& F: o8 m0 c6 Y! d) N 65     do {                           \ 
8 v! a- `7 H% b 66         OUTPUT("[%s|%s@%s,%d] " format "\n", "TRACE", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \ 
% A/ H. _4 D1 J; E' g8 D% } 67     } while (0) 
; g# P' d. O7 w/ J& @  x5 Y 68 ! [2 X) S5 n( J! d 
 69 #define LOG_FATAL(format, ...)     \' N3 P/ G9 p, |/ u& A4 H6 c 
 70     do {                           \+ P, F! _7 w, _/ E8 T: e. [ 
 71         OUTPUT("[%s|%s@%s,%d] " format "\n", "FATAL", __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \0 ~; l! }7 g( x* a: E% S; M6 T 
 72         exit(1);                   \ 
! L$ f8 l' F( D8 `3 ~9 `9 E 73     } while (0) 
* O) k, H( _1 q$ X 74  
5 k/ }4 J* W' a" r, B. f 75 /* Assert */ 
7 I) _) Q( J9 s  Y 76 #define ASSERT(EXP)                \* ?# m6 p0 I" u6 I( ^/ u( @5 w; Y 
 77     do{                            \& s4 D7 A3 g( ^ 
 78         if (!(EXP)) {              \ 
) P0 a: d# b& c  `0 I: G0 s$ Y 79             OUTPUT("[%s@%s,%d] ASSERT: " #EXP "\n", __func__, __FILE__, __LINE__ );                  \ 
2 R$ v; I4 C, ~ 80             exit(1);               \3 e  j7 \5 _* ^; g/ |+ O 
 81         }                          \ 
6 o( X& \3 ^4 ~# Y& b0 k! Q/ _ 82     } while(0) 
1 \. n' l# c& u. ^3 N% ~ 83  
8 G4 r8 X2 Y+ ]  R" S& `, ?5 a 84 #endif 
! `' D5 n1 J4 p; {! S) J |   
 
 
 
 |