首页 | 博客群 | 公社 | 专栏 | 论坛 | 图片 | 资讯 | 注册 | 帮助 | 博客联播 | 随机访问
忠贞不渝——中国名人恩爱夫妻选介(六…十)- -| 回首页 | 2005年索引 | - -ce+usb摄像头开发思路

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
找到 BOOL OEMInterruptEnable() 函数 里 case SYSINTR_ETHER:
if(Inited == FALSE)
{
s2410IOP->rEINTPEND = 0x200;
s2410INT->rSRCPND = BIT_EINT8_23; // by shim
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;
这样改过后! 可能需要 全部重新编译, clean 后 再重新 build !!
再测试网络!就没有问题了!

【作者: 石头东】【访问统计:】【2005年09月30日 星期五 13:48】【注册】【打印

搜索

Google

Trackback

你可以使用这个链接引用该篇文章 http://publishblog.blogchina.com/blog/tb.b?diaryID=3083045

博客手拉手

网络
IE无法浏览网页的常见原因及解决方法
我爱网络。
网络猪
迷信网络

回复

- 评论人:zhengguo23   2007-05-26 18:09:15   

看到大家都在应用我的解决办法! 真高兴!
我在cnemb 上的文章 ! 你一个字都没有改!

- 评论人:anonymous   2006-07-15 16:39:36   

非常感謝

- 评论人:anonymous   2006-07-15 16:38:40   

非常感謝

- 评论人:蜡笔小新   2006-05-15 21:11:56   

大哥:
我有这样的问题:但是这种情况的解决对使用DHCP服务器自动分配IP地址的机器有效吗?我的CE设备总是分配不到IP,但在与PC机器组成的小型局域网却可以通信,希望可以指点一下,谢谢!!
邮箱:caolingeric@gmail.com

验证码:   
评论内容: