2 * Hyper Operating System Application Framework
4 * @file at91usartdrv_local.h
5 * @brief %jp{ATMEL AT91シリーズUSART用デバイスドライバ}
7 * Copyright (C) 2006-2007 by Project HOS
8 * http://sourceforge.jp/projects/hos/
12 #ifndef __HOS__at91usartdrv_local_h__
13 #define __HOS__at91usartdrv_local_h__
16 #include "at91usartdrv.h"
19 #define AT91USART_US_CR 0x00 /* Control Register */
20 #define AT91USART_US_MR 0x04 /* Mode Register */
21 #define AT91USART_US_IER 0x08 /* Interrupt Enable Register */
22 #define AT91USART_US_IDR 0x0c /* Interrupt Disable Register */
23 #define AT91USART_US_IMR 0x10 /* Interrupt Mask Register */
24 #define AT91USART_US_CSR 0x14 /* Channel Status Register */
25 #define AT91USART_US_RHR 0x18 /* Receiver Holding Register */
26 #define AT91USART_US_THR 0x1c /* Transmitter Holding Register */
27 #define AT91USART_US_BRGR 0x20 /* Baud Rate Generator Register */
28 #define AT91USART_US_RTOR 0x24 /* Receiver Time-out Register */
29 #define AT91USART_US_TTGR 0x28 /* Transmitter Time-guard Register */
30 #define AT91USART_US_RPR 0x30 /* Receive Pointer Register */
31 #define AT91USART_US_RCR 0x34 /* Receive Counter Register */
32 #define AT91USART_US_TPR 0x38 /* Transmit Pointer Register */
33 #define AT91USART_US_TCR 0x3c /* Transmit Counter Register */
35 #define AT91USART_REG_WRITE(self, offset, val) do { *(unsigned long *)((char *)(self)->pRegBase + (offset)) = (val); } while(0)
36 #define AT91USART_REG_READ(self, offset) (*((unsigned long *)((char *)(self)->pRegBase + (offset))))
43 HANDLE At91UsartDrv_Open(C_DRVOBJ *pDrvObj, const char *pszPath, int iMode);
44 void At91UsartDrv_Close(C_DRVOBJ *pDrvObj, C_FILEOBJ *pFileObj);
45 FILE_ERR At91UsartDrv_IoControl(C_DRVOBJ *pDrvObj, C_FILEOBJ *pFileObj, int iFunc, void *pInBuf, FILE_SIZE InSize, const void *pOutBuf, FILE_SIZE OutSize);
46 FILE_POS At91UsartDrv_Seek(C_DRVOBJ *pDrvObj, C_FILEOBJ *pFileObj, FILE_POS Offset, int iOrign);
47 FILE_SIZE At91UsartDrv_Read(C_DRVOBJ *pDrvObj, C_FILEOBJ *pFileObj, void *pBuf, FILE_SIZE Size);
48 FILE_SIZE At91UsartDrv_Write(C_DRVOBJ *pDrvObj, C_FILEOBJ *pFileObj, const void *pData, FILE_SIZE Size);
49 FILE_ERR At91UsartDrv_Flush(C_DRVOBJ *pDrvObj, C_FILEOBJ *pFileObj);
51 void At91UsartDrv_Isr(VPARAM Param); /* 割込み処理 */
59 #endif /* __HOS__armuartdrv_h__ */