WINCE下s3c2410+cs8900 板子的网络问题解决

WINCE下网络PING通一会就断,解决方法

根本原因在于中断处理服务中,把已经产生的中断标志给清除掉了!

这样就丢失一次中断。因为原驱动里配置中断为上升沿触发!一次中断丢失,就导致不会再产生中断信号跳变,因为,只有在中断服务中读取了cs8900 Interrupt status queue寄存器后,才会产生下一次中断!(cs8900 datasheet 14页中关于 INTRQ的解释!

关于为什么,原驱动会把已经产生的中断标志给清除掉了!你可以跟踪一下 cs8900驱动中断服务中开中断关中断的过程!解决cs8900+s3c2410+wince平台网络断线的问题!

解决办法:

找到E:\WINCE420\WINCE420\PLATFORM\SMDK2410\KERNEL\HAL\cfw.c

找到 BOOLOEMInterruptEnable() 函数里 case SYSINTR_ETHER:

if(Inited == FALSE)

{

        s2410IOP->rEINTPEND = 0x200;

        s2410INT->rSRCPND = BIT_EINT8_23; // byshim

        if (s2410INT->rINTPND &BIT_EINT8_23)

        s2410INT->rINTPND = BIT_EINT8_23;

        Inited = TRUE;

}

s2410IOP->rEINTMASK &= ~0x200;

s2410INT->rINTMSK &= ~BIT_EINT8_23;

break

 

在全局定义: BOOL Inited = FALSE;

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值