2410下关于com3的驱动修改问题

来源:互联网 发布:nginx ssl 不验证证书 编辑:程序博客网 时间:2024/05/26 19:16
2410下关于com3的驱动修改问题


我现在需要把2410下的红外驱动修改为一般模式的串口驱动,可是我的在修改完后。com3用串口调试程序是可以打开的,但是不能收发。以下是我修改的部分:
S2410_SetSerialIOP(
       PVOID   pHead // @parm points to device head
       )
{
        PS2410_UART_INFO   pHWHead   = (PS2410_UART_INFO)pHead;

        RETAILMSG(DEBUGMODE, (TEXT("S2410_SetSerialIOP /r/n")));
#if USEVIRTUAL
        EnterCriticalSection(&(pHWHead->RegCritSec));
        v_pIOPregs->rGPHCON &= ~( 0x3<<12 | 0x3<<14); // clear uart 2 - rx, tx
        v_pIOPregs->rGPHCON |= (0x2<<12 | 0x2<<14);
        v_pIOPregs->rGPHUP  |= 0xc0;

        pHWHead->rDTRport = (volatile unsigned int *)&(v_pIOPregs->rGPHDAT);
        pHWHead->rDSRport = (volatile unsigned int *)&(v_pIOPregs->rGPHDAT);
        pHWHead->DtrPortNum = 6;
        pHWHead->DsrPortNum = 7;
       
#else
        volatile IOPreg *s2410IOP;
        s2410IOP   = (volatile IOPreg *)IOP_BASE;

        EnterCriticalSection(&(pHWHead->RegCritSec));
        s2410IOP->rGPHCON &= ~( 0x3<<12 | 0x3<<14); // clear uart 0 - rx, tx
        s2410IOP->rGPHCON |= (0x2<<12 | 0x2<<14);
        s2410IOP->rGPHUP  |= 0xc0;
        pHWHead->rDTRport = (volatile unsigned int *)(IOP_BASE+0x74); //s2410IOP->rGPHDAT
        pHWHead->rDSRport = (volatile unsigned int *)(IOP_BASE+0x74);
        pHWHead->DtrPortNum = 6;
        pHWHead->DsrPortNum = 7;
       

#endif
        LeaveCriticalSection(&(pHWHead->RegCritSec));
}
注册表的修改
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; S2440 IrDA(UART2)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
[HKEY_LOCAL_MACHINE/Drivers/BuiltIn/UART2]
        "DeviceArrayIndex"=dword:0
        "Irq"=dword:09
        "IoBase"=dword:50008000
        "IoLen"=dword:2C
        "Prefix"="COM"
        "Dll"="UART2.Dll"
        "Order"=dword:0
        "Priority"=dword:0
        "Port"="COM3:"
        "DeviceType"=dword:0  ; 1->IRDA modem, 0 -> null modem
        "FriendlyName"="S2440 UART2/IRDA2440"
        "Index"=dword:3
        "IClass"="{A32942B7-920C-486b-B0E6-92A702A99B35}"

再就是在platform/smdk2410/inc/Oalintr.h和Oalintr.inc以及Oalintra.in将SYSINTR_IR改为SYSINTR_UART2。关于cfw.c和armint.c中的部分我也进行了相应的修改。
原创粉丝点击