📄 dbguart.c
字号:
/*******************************************************************************
* Copyright: Copyright (c) 2007. Hisilicon Technologies, CO., LTD.
* Version: V300R001B04
* Filename: DbgUart.c
* Description: 实现调试UART口的驱动
* History:
1.Created by SunShaoJie on 2007/12/25
*******************************************************************************/
#include "sys.h"
#include "Register.h"
#include "UARTReg.h"
#include "DbgUart.h"
#ifdef DEBUG
/*******************************************************************************
Function: InitDebugSerial
Description: 初始化串口
Calls: 无
Data Accessed: 无
Data Updated: 无
Input: 无
Output: 无
Return: 无
Others: 无
*******************************************************************************/
void InitDebugSerial(void)
{
#ifndef HISI3610_CHIP
/* Configure the UART */
OUTREG32(DEBUG_REG(UART_CR), 0x00);
OUTREG32(DEBUG_REG(UART_LCR), UART_LCR_CS8|UART_LCR_FEN);
/* set baud rate */
/* OUTREG32(DEBUG_REG(UART_IBRD), 0x8);
OUTREG32(DEBUG_REG(UART_FBRD), 0x9); */
OUTREG32(DEBUG_REG(UART_IBRD), 0x32);
OUTREG32(DEBUG_REG(UART_FBRD), 0x0);
/* clear recieve data register */
INREG32(DEBUG_REG(UART_RFR));
OUTREG32(DEBUG_REG(UART_LCR), UART_LCR_CS8|UART_LCR_FEN);
OUTREG32(DEBUG_REG(UART_IFLS), UART_IFLS_RXTL14|UART_IFLS_TXTL2);
OUTREG32(DEBUG_REG(UART_IMSC), UART_IMSC_DISABLEALL);
OUTREG32(DEBUG_REG(UART_CR), UART_CR_RXE|UART_CR_TXE|UART_CR_UARTEN);
/* clear recieve data register */
INREG32(DEBUG_REG(UART_RFR));
#endif
return;
//OUTREG32(&g_pUARTReg->TRFR, 'a');
}
/*******************************************************************************
Function: WriteDebugByte
Description: 向串口写入一个字节
Calls: 无
Data Accessed: 无
Data Updated: 无
Input: ch:需要写入的字符
Output: 无
Return: 无
Others: 无
*******************************************************************************/
void WriteDebugByte(UINT8 ch)
{
/* Wait for transmit buffer to be empty */
while((INREG32(DEBUG_REG(UART_FR)) & UART_FR_TXFF) !=0);
/* Send character */
OUTREG32(DEBUG_REG(UART_TFR), ch);
}
/*******************************************************************************
Function: ReadDebugByte
Description: 从串口读取一个字节
Calls: 无
Data Accessed: 无
Data Updated: 无
Input: 无
Output: 无
Return: 读取的一个字节,或返回NODATA
Others: 无
*******************************************************************************/
int ReadDebugByte(void)
{
UINT32 status;
int ch;
status = INREG32(DEBUG_REG(UART_FR));
if ((status & UART_FR_RXFE) == 0x0)
{
ch = (int)INREG32(DEBUG_REG(UART_RFR));
}
else
{
ch = DEBUG_READ_NODATA;
}
return ch;
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -