RTT的网络例程问题请教
没有搞过网络通信方面的编程,利用手头的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 = ((u8_t*)q->payload);
if (word_index == 2)
{
DM9000_outw(DM9000_DATA_BASE, (word << 8) | word);
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);
}
DM9000的中断响应函数,在运行while(q)过程中响应了2次之后,不再响应,应该是DM9000没再产生中断。
---------------------------------
1.我通过 电脑端的 Ping 命令ping STM32板子,没有反应。
2. 电脑、 STM32板子 都是连接的一个带有路由功能的无线AP(带有四个有线端口,通过有线方式连接), AP上查看不到任何STM32板子的连接信息,但是对应的端口指示灯是亮着的。
请教一下大家,下一步我该从哪里入手查找问题,没有做过相关编程,目前没什么头绪。 应该不会在while(q)里做循环,除非q里的内容被改变了,导致->next形成一个死循环。
对了,那个websrv例程有些问题,内存处理得有问题。 球赛看完了,趁着没有睡意,重新试了一下 RTT的网络例程。新进展和新问题如下:
第一楼的卡在while(q)的原因,可能是我的无线AP功能限制了。我今天将它复位成为出厂设置,程序可以顺利的获得DHCP服务分配的动态IP,但是目前在PC机依然无法用Ping 命令Ping通。
我将DM9000的调试打印语句打开,串口输出信息如下:
\ | /
- RT - Thread Operating System
/ | \ 0.3.1 build Jul3 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.100PC机提示的是 Request timed out信息
此时在DM9000中断复位函数中设置的断点,没有进入停止,故可以推断 Ping 192.168.1.100命令没有引起DM9000中断?
但是在获取DHCP服务时候,中断函数是有反应的。
请教一下各位大侠。出现此现象的原因可能有哪些呢? 你的代码是否有些问题?DM9000的配置和STM32 Radio上的不相同?
动态的IP行,你可以先试试静态的。
页:
[1]