完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
各位好,小弟最近在移植 dm9051的lwip+ucos ii ,不带操作系统的lwip移植成功了,但是带ucos ii的可以ping通,但是老是出现问题,用cmd的ping 一直ping 板子的话,一开始是可以ping通,但是运行一段时间后,就无法访问目标主机了。这个移植和dm9000的几乎一样,只是底层硬件接口驱动不一样。
当dm9051接收到数据之后,在中断里面判断是否为接收中断,然后通过OSSemPost(dm9051input)发送信号量 。 小弟发现,通过keil watch1观察到 一开始ping的通的时候,dm9051input 的OSEventTbl数组的[0]=0x40,其它都为0,并且OSEventGrp=0x01; 后面ping不通的时候,dm9051input 的OSEventTbl数组的[0]=0,并且OSEventGrp=0x00,然后OSEventCnt一直在增加。 然后下面的,ethernetif中的,OSSemPend(dm9051input,0,&_err); 这一段也无法执行到此处,字有点多,谢谢大家看完,想请教一下各位,uCOS这个问题,是不是邮箱没有请求信号量请求成功。 err_t ethernetif_input(struct netif *netif) { INT8U _err; err_t err; struct pbuf *p; while(1) { OSSemPend(dm9051input,0,&_err); //请求信号量 if(_err == OS_ERR_NONE) { while(1) { p=low_level_input(netif); //调用low_level_input函数接收数据 if(p!=NULL) { err=netif->input(p, netif); //调用netif结构体中的input字段(一个函数)来处理数据包 if(err!=ERR_OK) { LWIP_DEBUGF(NETIF_DEBUG,("ethernetif_input: IP input errorn")); pbuf_free(p); p = NULL; } }else break; } } } } |
|
相关推荐
1个回答
|
|
@发烧友
|
|
|
|
只有小组成员才能发言,加入小组>>
如何使用STM32+nrf24l01架构把有线USB设备无线化?
2568 浏览 7 评论
请问能利用51单片机和nRF24L01模块实现实时语音无线传输吗?
2359 浏览 5 评论
3207 浏览 3 评论
2836 浏览 8 评论
为什么ucosii上移植lwip后系统进入了HardFault_Handler?
2785 浏览 4 评论
请教各位大咖:有没有接收频率32M左右的芯片推荐的?先感谢啦!
658浏览 1评论
897浏览 0评论
1018浏览 0评论
664浏览 0评论
494浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-18 10:09 , Processed in 1.210034 second(s), Total 77, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号