S3C6410裸机UART驱动(将printf重定义到串口)

要确保S3C6410已经初始化,一般是使用UBOOT初始化 
 
 
//串口寄存器
 
//UART0
 
#defineULCON0                *((vu32*)0x7F005000)                //UART通道0 行控制寄存器
 
#defineUCON0                *((vu32*)0x7F005004)                //UART通道0 控制寄存器
 
#defineUFCON0                *((vu32*)0x7F005008)                //UART通道0 FIFO 控制寄存器
 
#defineUMCON0                *((vu32*)0x7F00500C)                //UART通道0 调制解调器(Modem)控制寄存器
 
#defineUTRSTAT0        *((vu32*)0x7F005010)                //UART通道0 发送/接收状态寄存器
 
#defineUERSTAT0        *((vu32*)0x7F005014)                //UART通道0 接收错误状态寄存器
 
#defineUFSTAT0                *((vu32*)0x7F005018)                //UART通道0 FIFO 状态寄存器
 
#defineUMSTAT0                *((vu32*)0x7F00501C)                //UART通道0 调制解调器(Modem)状态寄存器
 
#defineUTXH0                *((vu32*)0x7F005020)                //UART通道0 发送缓冲寄存器
 
#defineURXH0                *((vu32*)0x7F005024)                //UART通道0 接收缓冲寄存器
 
#defineUBRDIV0                *((vu32*)0x7F005028)                //通道0波特率分频寄存器
 
#defineUDIVSLOT0        *((vu32*)0x7F00502C)                //UART通道0 分频插槽寄存器
 
#defineUINTP0                *((vu32*)0x7F005030)                //通道0中断处理寄存器
 
#defineUINTSP0                *((vu32*)0x7F005034)                //UART通道0 中断源处理寄存器
 
#defineUINTM0                *((vu32*)0x7F005038)                //UART通道0 中断屏蔽寄存器 
 
 
 
 
 
//作者:陈
 
//创建时间:20120220
 
//最后修改时间:20120220
 
//说明:S3C6410串口相关
 
 
 
#include"system.h"
 
#include"uart.h"
 
#include"s3c6410_map.h"
 
 
 
 
 
//////////////////////////////////////////////////////////////////
 
//加入以下代码,支持printf函数,
 
#if 1
 
 
 
#include"stdio.h"       
 
//标准库需要的支持函数               
 
struct __FILE

{

inthandle;

};

/* FILE is typedef’d in stdio.h. */
 
FILE __stdout;     
 
//定义_sys_exit()以避免使用半主机模式 
 
_sys_exit(int x)

{

x= x;

}

//重定义fputc函数

int fputc(int ch,FILE *f)
 
{     

Uart0_SendByte((u8)ch);     

returnch;
 
}
 
#endif 
 
 
 
 
static const u16UART_SPEED[13][2] ={{1717,0x4924},{858,0x4924},{428,0x4924},{285,0x4924},{213,0x4924},{142,0x4924},{106,0x4924},{72,0x4924},{70,0x4924},{34,0x4924},{16,0x4924},{7,0x4924},{3,0x4924}};

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/028ee1ede23f75cea31a047dd642577a.html