<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > S3C2410的WINCE BSP添加串口支持

S3C2410的WINCE BSP添加串口支持

作者: 時(shí)間:2016-10-08 來(lái)源:網(wǎng)絡(luò ) 收藏

v_pIOPregs->rGPHCON |= (0x28 | 0x210 /*| 0x112 | 0x014*/);

v_pIOPregs->rGPHCON |= (0x20 | 0x22 );

v_pIOPregs->rGPHUP |= 0x03;

pHWHead->rDTRport = (volatile unsigned int *)(v_pIOPregs->rGPHDAT);

pHWHead->rDSRport = (volatile unsigned int *)(v_pIOPregs->rGPHDAT);

pHWHead->DtrPortNum = 0;

pHWHead->DsrPortNum = 1;

#else

volatile IOPreg *s2410IOP;

s2410IOP = (volatile IOPreg *)IOP_BASE;

EnterCriticalSection((pHWHead->RegCritSec));

s2410IOP->rGPHCON = ~(0x38 | 0x310/* | 0x312 | 0x314*/); // clear uart 1 - rx, tx

s2410IOP->rGPHCON |= (0x28 | 0x210 /*| 0x112 | 0x014*/);

s2410IOP->rGPHCON |= (0x20 | 0x22 );

s2410IOP->rGPHUP |= 0x03;

pHWHead->rDTRport = (volatile unsigned int *)(IOP_BASE+0x74); //s2410IOP->rGPHDAT

pHWHead->rDSRport = (volatile unsigned int *)(IOP_BASE+0x74);

pHWHead->DtrPortNum = 0;

pHWHead->DsrPortNum = 1;

#endif

}

else if(pHWHead1->dwIOBase == 0x50008000)

{

#if USEVIRTUAL

EnterCriticalSection((pHWHead->RegCritSec));

v_pIOPregs->rGPHCON = ~( 0x312 | 0x314); // clear uart 2 - rx, tx

v_pIOPregs->rGPHCON |= ( 0x212 | 0x214);

v_pIOPregs->rGPHCON |= (0x20 | 0x22 );

v_pIOPregs->rGPHUP = ~0xc0;

pHWHead->rDTRport = (volatile unsigned int *)(v_pIOPregs->rGPHDAT);

pHWHead->rDSRport = (volatile unsigned int *)(v_pIOPregs->rGPHDAT);

pHWHead->DtrPortNum = 0;

pHWHead->DsrPortNum = 1;

#else

volatile IOPreg *s2410IOP;

s2410IOP = (volatile IOPreg *)IOP_BASE;

EnterCriticalSection((pHWHead->RegCritSec));

s2410IOP->rGPHCON = ~(0x312 | 0x314); // clear uart 2 - rx, tx

s2410IOP->rGPHCON |= ( 0x0212 | 0x0214);

s2410IOP->rGPHCON |= (0x20 | 0x22 );

s2410IOP->rGPHUP = ~0xc0;

pHWHead->rDTRport = (volatile unsigned int *)(IOP_BASE+0x74); //s2410IOP->rGPHDAT

pHWHead->rDSRport = (volatile unsigned int *)(IOP_BASE+0x74);

pHWHead->DtrPortNum = 0;

pHWHead->DsrPortNum = 1;

#endif

}

else

{

#if USEVIRTUAL

EnterCriticalSection((pHWHead->RegCritSec));

v_pIOPregs->rGPHCON = ~(0x30 | 0x32 | 0x34 | 0x36/* | 0x312 | 0x314*/); // clear uart 0 - rx, tx

v_pIOPregs->rGPHCON |= (0x24 | 0x26/* | 0x112 | 0x014*/);

v_pIOPregs->rGPHCON |= (0x20 | 0x22 );

v_pIOPregs->rGPHUP |= 0x03;

pHWHead->rDTRport = (volatile unsigned int *)(v_pIOPregs->rGPHDAT);

pHWHead->rDSRport = (volatile unsigned int *)(v_pIOPregs->rGPHDAT);

pHWHead->DtrPortNum = 0;

pHWHead->DsrPortNum = 1;

#else

volatile IOPreg *s2410IOP;

s2410IOP = (volatile IOPreg *)IOP_BASE;

EnterCriticalSection((pHWHead->RegCritSec));

s2410IOP->rGPHCON = ~(0x30 | 0x32 | 0x34 | 0x36 /*| 0x312 | 0x314*/); // clear uart 0 - rx, tx

s2410IOP->rGPHCON |= (0x24 | 0x26 /*| 0x112 | 0x014*/);

s2410IOP->rGPHCON |= (0x20 | 0x22 );

s2410IOP->rGPHUP |= 0x03;

pHWHead->rDTRport = (volatile unsigned int *)(IOP_BASE+0x74); //s2410IOP->rGPHDAT

pHWHead->rDSRport = (volatile unsigned int *)(IOP_BASE+0x74);

pHWHead->DtrPortNum = 0;

pHWHead->DsrPortNum =1;

#endif

}

LeaveCriticalSection((pHWHead->RegCritSec));

}

接著(zhù)搜索:

SL_Init(

PVOID pHead, // @parm points to device head

PUCHAR pRegBase, // Pointer to 16550 register base

UINT8 RegStride, // Stride amongst the 16550 registers

EVENT_FUNC EventCallback, // This callback exists in MDD

PVOID pMddHead, // This is the first parm to callback

PLOOKUP_TBL pBaudTable // BaudRate Table

)

在PS2410_UART_INFO pHWHead = (PS2410_UART_INFO)pHead;這一句后面添加:

PSER_INFO pHWHead1 = (PSER_INFO)pHead;

再搜索:

if ( pHWHead->UseIrDA )

{

pHWHead->bINT = BIT_UART2;

pHWHead->bTxINT = INTSUB_TXD2;

pHWHead->bRxINT = INTSUB_RXD2;

pHWHead->bErrINT = INTSUB_ERR2;

#if USEVIRTUAL

pHWHead->s2410SerReg = (S2410_UART_REG *)v_pUART2regs;



關(guān)鍵詞:

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>