#include static volatile unsigned int *ITM_BASE = (volatile unsigned int *)0xE0000000; #define ITM_ENABLE_ACCESS { ITM_BASE[0x3EC]=0xC5ACCE55; } #define ITM_TRACE_PRIV ITM_BASE[0x390] #define ITM_TRACE_ENABLE ITM_BASE[0x380] #define ITM_TRACE_D8(_channel_,_data_) { \ volatile unsigned int *_ch_=ITM_BASE+(_channel_); \ while ( *_ch_ == 0); \ (*((volatile unsigned char *)(_ch_)))=(_data_); \ } #define ITM_TRACE_D16(_channel_,_data_) { \ volatile unsigned int *_ch_=ITM_BASE+(_channel_); \ while ( *_ch_ == 0); \ (*((volatile unsigned short *)(_ch_)))=(_data_); \ } #define ITM_TRACE_D32(_channel_,_data_) { \ volatile unsigned int *_ch_=ITM_BASE+(_channel_); \ while ( *_ch_ == 0); \ *_ch_ = (_data_); \ } int wait(int k) { int i; int j=0; for (i=1;i