搜索
bottom↓
回复: 3

RTT的网络例程问题请教

[复制链接]

出0入0汤圆

发表于 2010-6-29 22:44:29 | 显示全部楼层 |阅读模式
没有搞过网络通信方面的编程,利用手头的STM32板子,运行RTT 教程下的 examples\3_networking_websrv 例程。

运行过程中串口输出信息如下:

\ | /
- RT -     Thread Operating System
/ | \ 0.3.1 build Jun 29 2010
2006 - 2009 Copyright by rt-thread team
dm9000 id: 0x90000a46
finsh>>operating at 100M full duplex mode

之后,程序一直 发送线程中的while(q)中运行,


        while (q)
        {
            if (pbuf_index < q->len)
            {
                word[word_index++] = ((u8_t*)q->payload)[pbuf_index++];
                if (word_index == 2)
                {
                    DM9000_outw(DM9000_DATA_BASE, (word[1] << 8) | word[0]);
                    word_index = 0;
                }
            }
            else
            {
                q = q->next;
                pbuf_index = 0;
            }
        }//  一直运行在此循环内部。

        /* One byte could still be unsent */
        if (word_index == 1)
        {
            DM9000_outw(DM9000_DATA_BASE, word[0]);
        }


DM9000的中断响应函数,在运行while(q)过程中响应了2次之后,不再响应,应该是DM9000没再产生中断。


---------------------------------
1.我通过 电脑端的 Ping 命令ping STM32板子,没有反应。
2. 电脑、 STM32板子 都是连接的一个带有路由功能的无线AP(带有四个有线端口,通过有线方式连接), AP上查看不到任何STM32板子的连接信息,但是对应的端口指示灯是亮着的。


请教一下大家,下一步我该从哪里入手查找问题,没有做过相关编程,目前没什么头绪。

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

发表于 2010-6-30 07:56:31 | 显示全部楼层
应该不会在while(q)里做循环,除非q里的内容被改变了,导致->next形成一个死循环。

对了,那个websrv例程有些问题,内存处理得有问题。

出0入0汤圆

 楼主| 发表于 2010-7-4 00:30:10 | 显示全部楼层
球赛看完了,趁着没有睡意,重新试了一下 RTT的网络例程。新进展和新问题如下:

第一楼的卡在while(q)的原因,可能是我的无线AP功能限制了。我今天将它复位成为出厂设置,程序可以顺利的获得DHCP服务分配的动态IP,但是目前在PC机依然无法用Ping 命令Ping通。

我将DM9000的调试打印语句打开,串口输出信息如下:


\ | /
- RT -     Thread Operating System
/ | \ 0.3.1 build Jul  3 2010
2006 - 2009 Copyright by rt-thread team
dm9000 id: 0x90000a46
finsh>>operating at 100M full duplex mode
dm9000 tx: 350
dm9000 tx: first packet
dm9000 tx done
dm9000 tx: 350
dm9000 isr: int status 0023
dm9000 tx: first packet
dm9000 tx done
dm9000 rx: status 4001 len 64

dm9000 rx: status 0001 len 594

dm9000 rx: status 4001 len 64

dm9000 tx: 350
dm9000 isr: int status 0003
dm9000 tx: first packet
dm9000 tx done
dm9000 tx: 350
dm9000 isr: int status 0003
dm9000 tx: first packet
dm9000 tx done
dm9000 rx: status 0001 len 594

dm9000 rx: status 0001 len 594

dm9000 rx: status 0001 len 594

dm9000 tx: 42
dm9000 isr: int status 0003
dm9000 tx: first packet
dm9000 tx done
dm9000 tx: 42
dm9000 isr: int status 0002
dm9000 tx: first packet
dm9000 tx done
Acquired IP address from DHCP server:192.168.1.100
TCP/IP initialized!


----------------------------------------
此时再在PC机端用Ping 192.168.1.100  PC机提示的是 Request timed out信息
此时在DM9000中断复位函数中设置的断点,没有进入停止,故可以推断 Ping 192.168.1.100命令没有引起DM9000中断?
但是在获取DHCP服务时候,中断函数是有反应的。

请教一下各位大侠。出现此现象的原因可能有哪些呢?

出0入0汤圆

发表于 2010-7-5 12:26:33 | 显示全部楼层
你的代码是否有些问题?DM9000的配置和STM32 Radio上的不相同?

动态的IP行,你可以先试试静态的。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-20 12:07

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表