⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hal_diag.h

📁 DVB软件,基于CT216软件的开发源程序.
💻 H
📖 第 1 页 / 共 2 页
字号:
#define HAL_DIAG_INIT()                                                     \
{                                                                           \
	cyg_uint32 _ver_;                                                       \
	cyg_uint32 _baud_;                                                      \
                                                                            \
	_ver_ = HAL_CT216_SUBVERSION & *HAL_CT216_SYS_CONF;                     \
	                                                                        \
	switch(_ver_) {                                                         \
	  case CYGHWR_HAL_SPARC_CPU_CT216X:                                     \
          _baud_=(CYGHWR_HAL_SPARC_CPU_FREQ*1000000) / 2 / (16*CYGNUM_HAL_CONSOLE_CHANNEL_BAUD);   \
          *HAL_CT216X_GPIO_C_MUX = 0x01;                                    \
                                                                            \
          *HAL_CT216X_UART_0_FCR &= ~HAL_CT216X_UART_FIFO_EN;               \
          *HAL_CT216X_UART_0_LCR |= HAL_CT216X_UART_DLAB|HAL_CT216X_UART_DLS_8;                    \
          *HAL_CT216X_UART_0_DLL = (_baud_&0xff);                           \
          *HAL_CT216X_UART_0_DLH = (_baud_>>8);                             \
          *HAL_CT216X_UART_0_LCR &= ~HAL_CT216X_UART_DLAB;                  \
      break;                                                                \
	  case CYGHWR_HAL_SPARC_CPU_CT909:                                      \
	  case CYGHWR_HAL_SPARC_CPU_CT909S:                                     \
	  case CYGHWR_HAL_SPARC_CPU_CT909P:                                     \
	  case CYGHWR_HAL_SPARC_CPU_CT909G:                                     \
          _baud_=((CYGHWR_HAL_SPARC_CPU_FREQ*1000000) / (16*CYGNUM_HAL_CONSOLE_CHANNEL_BAUD)) - 1; \
          *HAL_LEON_UART_RLD  = _baud_;                                     \
          *HAL_LEON_UART_CTRL = 0;                                          \
          *HAL_LEON_UART_CTRL |= HAL_LEON_UART_RXEN|HAL_LEON_UART_TXEN;     \
	  break;                                                                \
      default:                                                              \
	  break;                                                                \
	}                                                                       \
}

#define HAL_DIAG_WRITE_CHAR(_c_)                                            \
{                                                                           \
	cyg_uint32 _ver_;                                                       \
                                                                            \
	_ver_ = HAL_CT216_SUBVERSION & *HAL_CT216_SYS_CONF;                     \
	switch(_ver_) {                                                         \
	  case CYGHWR_HAL_SPARC_CPU_CT216X:                                     \
          if( 1 || _c_ != '\r' )                                            \
          {                                                                 \
              while( (HAL_CT216X_UART_BUSY & *HAL_CT216X_UART_0_USR) == HAL_CT216X_UART_BUSY )     \
                  continue;                                                 \
              while( (HAL_CT216X_UART_THRE & *HAL_CT216X_UART_0_LSR) != HAL_CT216X_UART_THRE )     \
                  continue;                                                 \
              *HAL_CT216X_UART_0_THR = HAL_CT216_UART_IO(_c_);              \
          }                                                                 \
      break;                                                                \
	  case CYGHWR_HAL_SPARC_CPU_CT909:                                      \
	  case CYGHWR_HAL_SPARC_CPU_CT909S:                                     \
	  case CYGHWR_HAL_SPARC_CPU_CT909P:                                     \
	  case CYGHWR_HAL_SPARC_CPU_CT909G:                                     \
          if( 1 || _c_ != '\r' )                                            \
          {                                                                 \
              while( (HAL_LEON_UART_TXAMASK & *HAL_LEON_UART_STATUS) == 0 ) \
                  continue;                                                 \
              *HAL_LEON_UART_A_TX = HAL_CT216_UART_IO(_c_);                 \
          }                                                                 \
	  break;                                                                \
      default:                                                              \
	  break;                                                                \
	}                                                                       \
}

#define HAL_DIAG_READ_CHAR(_c_)                                             \
{                                                                           \
	cyg_uint32 _ver_;                                                       \
                                                                            \
	_ver_ = HAL_CT216_SUBVERSION & *HAL_CT216_SYS_CONF;                     \
	switch(_ver_) {                                                         \
	  case CYGHWR_HAL_SPARC_CPU_CT216X:                                     \
          while( (HAL_CT216X_UART_DR & *HAL_CT216X_UART_0_LSR) != HAL_CT216X_UART_DR )             \
              continue;                                                     \
          _c_ = (char)*HAL_CT216X_UART_0_RBR;                               \
      break;                                                                \
	  case CYGHWR_HAL_SPARC_CPU_CT909:                                      \
	  case CYGHWR_HAL_SPARC_CPU_CT909S:                                     \
	  case CYGHWR_HAL_SPARC_CPU_CT909P:                                     \
	  case CYGHWR_HAL_SPARC_CPU_CT909G:                                     \
          while( (HAL_LEON_UART_RXAMASK & *HAL_LEON_UART_STATUS) == 0 )     \
              continue;                                                     \
          _c_ = (char)*HAL_LEON_UART_A_RX;                                  \
	  break;                                                                \
      default:                                                              \
	  break;                                                                \
	}                                                                       \
}

#define XHAL_DIAG_WRITE_CHAR(_c_)                                           \
{                                                                           \
	cyg_uint32 _ver_;                                                       \
                                                                            \
	_ver_ = HAL_CT216_SUBVERSION & *HAL_CT216_SYS_CONF;                     \
	switch(_ver_) {                                                         \
	  case CYGHWR_HAL_SPARC_CPU_CT216X:                                     \
          if( _c_ != '\r' )                                                 \
          {                                                                 \
              *HAL_CT216X_UART_0_THR = HAL_CT216_UART_IO(_c_);              \
          }                                                                 \
      break;                                                                \
	  case CYGHWR_HAL_SPARC_CPU_CT909:                                      \
	  case CYGHWR_HAL_SPARC_CPU_CT909S:                                     \
	  case CYGHWR_HAL_SPARC_CPU_CT909P:                                     \
	  case CYGHWR_HAL_SPARC_CPU_CT909G:                                     \
          if( _c_ != '\r' )                                                 \
          {                                                                 \
              *HAL_LEON_UART_A_TX = HAL_CT216_UART_IO(_c_);                 \
          }                                                                 \
	  break;                                                                \
      default:                                                              \
	  break;                                                                \
	}                                                                       \
}

#define XHAL_DIAG_READ_CHAR(_c_)                                            \
{                                                                           \
	cyg_uint32 _ver_;                                                       \
                                                                            \
	_ver_ = HAL_CT216_SUBVERSION & *HAL_CT216_SYS_CONF;                     \
	switch(_ver_) {                                                         \
	  case CYGHWR_HAL_SPARC_CPU_CT216X:                                     \
          _c_ = (char)*HAL_CT216X_UART_0_RBR;                               \
      break;                                                                \
	  case CYGHWR_HAL_SPARC_CPU_CT909:                                      \
	  case CYGHWR_HAL_SPARC_CPU_CT909S:                                     \
	  case CYGHWR_HAL_SPARC_CPU_CT909P:                                     \
	  case CYGHWR_HAL_SPARC_CPU_CT909G:                                     \
          _c_ = (char)*HAL_LEON_UART_A_RX;                                  \
	  break;                                                                \
      default:                                                              \
	  break;                                                                \
	}                                                                       \
}

#else
/*---------------------------------------------------------------------------*/
/* There is no diagnostic output on LEON processor                      */

#define HAL_DIAG_INIT()

#define HAL_DIAG_WRITE_CHAR(_c_)

#define HAL_DIAG_READ_CHAR(_c_) (_c_) = 0

#endif

/*---------------------------------------------------------------------------*/
/* end of hal_diag.h                                                         */
#endif /* CYGONCE_HAL_HAL_DIAG_H */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -