uartdrv.h

来自「基于EPSON 的一种操作系统内核改造的实时嵌入式操作系统ASIXOS,国内一家」· C头文件 代码 · 共 50 行

H
50
字号
#ifndef UARTDRV_H
#define UARTDRV_H

#include "itron.h"
#include "HA_typedef.h"


#define 		UART_THR(uart_base)		(uart_base+0x00)
#define 		UART_RBR(uart_base)		(uart_base+0x00)
#define 		UART_DLL(uart_base)		(uart_base+0x00)
#define 		UART_DLH(uart_base)		(uart_base+0x04)    
#define 		UART_IER(uart_base)		(uart_base+0x04)	
#define 		UART_IIR(uart_base)		(uart_base+0x08)
#define 		UART_FCR(uart_base)		(uart_base+0x08)
#define 		UART_LCR(uart_base)		(uart_base+0x0c)
#define 		UART_MCR(uart_base)		(uart_base+0x10)
#define 		UART_LSR(uart_base)		(uart_base+0x14)
#define 		UART_MSR(uart_base)		(uart_base+0x18)


#define			STA_ERR				0x03	//uart interrupt
#define			REC_FUL				0x02
#define			REC_TMO				0x06
#define			TRA_EMP				0x01
#define			MOD_ERR				0x00

#ifndef			FALSE
#define			FALSE				1
#define			TRUE				(!FALSE)
#endif 


#define EN_UART_REC(uart_base)	do{*(RP)UART_IER(uart_base) |= 0x01;}while(0)	//enable receive interrupt; 	
#define DIS_UART_REC(uart_base)	do{*(RP)UART_IER(uart_base) &= 0xfe;}while(0)	//disable receive interrupt;
#define EN_UART_TRA(uart_base)	do{*(RP)UART_IER(uart_base) |= 0x02;}while(0)	//enable transmit interrupt; 	
#define DIS_UART_TRA(uart_base)	do{*(RP)UART_IER(uart_base) &= 0xfd;}while(0)	//disable transmit interrupt;



extern int init_uart(ID devid);
extern int conf_uart(ID devid, unsigned long sysclk, unsigned long baudrate, unsigned long databit, unsigned long trigerlevel);
extern int serv_uart(ID devid);
extern int rec_ful_handler(ID devid);
extern int rec_tmo_handler(ID devid);
extern int tra_emp_handler(ID devid);

extern ER  prints(ID devid, char *s);


#endif

⌨️ 快捷键说明

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