歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

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}};

Copyright © Linux教程網 All Rights Reserved