Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
RT-Thread一般讨论
lwip在安富莱开发板上的调试
发布于 2011-06-14 09:55:46 浏览:14222
订阅该版
在安富莱的开发板上调试:\RT-Thread-0.3.1\RT-Thread-0.3.1\bsp\stm3210\project_full 安富莱的开发板使用:STM32F103ZE处理器,网络芯片是:DM9000AE,其地址为:0x6C100000。 在dm9000a.h中修改为 #define DM9000_IO_BASE 0x6C100000 #define DM9000_DATA_BASE 0x6C100008 #define DM9000_IO (*((volatile rt_uint16_t *) 0x6C100000)) // CMD = 0 #define DM9000_DATA (*((volatile rt_uint16_t *) 0x6C100008)) // CMD = 1 在board.h中修改 #define STM32_ETH_IF 1 主要是想调试webserver程序,拷贝了tcpserver.c 编译后load后,冷启动后,网络连接显示无法连接上,串口出现如下情况: \RT-Thread-0.3.1\RT-Thread-0.3.1\bsp\stm3210\project_full \ | / - RT - Thread Operating System / | \ 0.3.1 build Jun 14 2011 2006 - 2010 Copyright by rt-thread team sdcard init failed File System initialzation failed! To initialize device:e0 failed. The error code is -1 TCP/IP initialized! finsh>> 热启动后,出现: \ | / - RT - Thread Operating System / | \ 0.3.1 build Jun 14 2011 2006 - 2010 Copyright by rt-thread team sdcard init failed File System initialzation failed! dm9000 id: 0x90000a46 finsh>> 等待30秒左右,出现: finsh>>operating at 100M full duplex mode TCP/IP initialized! 同时显示网络连接成功。 输入list() 出现: --Function List: led -- set led[0 - 1] on[1] or off[0]. enc28j60 -- dump enc28j60 registers dm9000 -- dm9000 register dump set_date -- set date. e.g: set_date(2010,2,28) set_time -- set time. e.g: set_time(23,59,59) list_date -- show date and time. tcpserv -- startup tcp server list_mem -- list memory usage information hello -- say hello world version -- show RT-Thread version information list_thread -- list thread list_sem -- list semaphone in system list_event -- list event in system list_mutex -- list mutex in system list_mailbox -- list mail box in system list_msgqueue -- list message queue in system list_mempool -- list memory pool in system list_timer -- list timer in system list_device -- list device in system list -- list all symbol in system ls -- list directory contents mkdir -- make a directory rm -- remove files or directories cat -- print file mkfs -- make filesystem on disk set_if -- set network interface address set_dns -- set DNS server address list_if -- list network interface information --Variable List: dummy -- dummy variable for finsh 0, 0x00000000 输入:list_thread() thread pri status sp stack size max used left tick error -------- ---- ------- ---------- ---------- ---------- ---------- --- tcpip 0x0c suspend 0x000000c8 0x00000400 0x000000c8 0x00000014 000 etx 0x0f suspend 0x00000088 0x00000200 0x00000088 0x00000010 000 erx 0x0f suspend 0x00000088 0x00000200 0x00000088 0x00000010 000 tidle 0x1f ready 0x00000040 0x00000100 0x00000040 0x0000001f 000 tshell 0x14 ready 0x00000088 0x00000800 0x000001b0 0x00000001 000 0, 0x00000000 finsh>> (在cmd下使用:ping 192.168.1.30 -t ,无法ping通) 输入:tcpserv(0) TCPServer Waiting for client on port 5000... (使用IE连接,输入:192.168.1.30,无法连接) 如果使用ulink2单步调试,出现的问题是: 运行到rt_system_scheduler_start()时候,网络连接成功,然后停留在 rt_inline int rt_list_isempty(const rt_list_t *l) { return l->next == l; } 继续运行,然后停止,程序停在 static void rt_thread_idle_entry(void* parameter) { while (1) { #ifdef RT_USING_HOOK /* if there is an idle thread hook */ if (rt_thread_idle_hook != RT_NULL) rt_thread_idle_hook();(程序指针要么在这里停住) #endif #ifdef RT_USING_HEAP /* check the defunct thread list */ if (!rt_list_isempty(&rt_thread_defunct))(程序指针要么在这里停住) { rt_base_t lock; struct rt_thread* thread = rt_list_entry(rt_thread_defunct.next, struct rt_thread, tlist); /* disable interrupt */ lock = rt_hw_interrupt_disable(); rt_list_remove(&(thread->tlist)); /* enable interrupt */ rt_hw_interrupt_enable(lock); /* release thread's stack */ rt_free(thread->stack_addr); /* delete thread object */ rt_object_delete((rt_object_t)thread); } #endif } } 请高手指教 下载附件 [dm9000a.zip](https://oss-club.rt-thread.org/uploads/2607_4be9d71c5061cc1a3f175b140ce41510.zip) 下载附件 [kernel_finsh_lwip_pack.zip](https://oss-club.rt-thread.org/uploads/414_31a4e8c6e24e4decc5eb105065e9c22f.zip)
查看更多
8
个回答
默认排序
按发布时间排序
bernard
2011-06-14
这家伙很懒,什么也没写!
系统已经启动成功了。 当没事请做时,系统会进入idle线程运行,也就是你上面的那个list_isempty。
joychen
2011-06-14
这家伙很懒,什么也没写!
用這張版子時在設定interrupt的部分有幾個地方需要修改成 NVIC_InitStructure.NVIC_IRQChannel = EXTI1_IRQn; GPIO_EXTILineConfig(GPIO_PortSourceGPIOA, GPIO_PinSource1); EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;
leoluyi
2011-06-14
这家伙很懒,什么也没写!
按照joychen提示的做了修改, 但是情况依然一样,冷启动, \RT-Thread-0.3.1\RT-Thread-0.3.1\bsp\stm3210\project_full \ | / - RT - Thread Operating System / | \ 0.3.1 build Jun 14 2011 2006 - 2010 Copyright by rt-thread team sdcard init failed File System initialzation failed! To initialize device:e0 failed. The error code is -1 TCP/IP initialized! finsh>> 热启动 \ | / - RT - Thread Operating System / | \ 0.3.1 build Jun 14 2011 2006 - 2010 Copyright by rt-thread team sdcard init failed File System initialzation failed! dm9000 id: 0x90000a46 finsh>> 等待30秒左右,出现: finsh>>operating at 100M full duplex mode TCP/IP initialized! 同时显示网络连接成功 依然无法ping通,当然更加谈不上web访问了。 我想问一下,To initialize device:e0 failed. The error code is -1的意思。有什么特殊含义吗?
bernard
2011-06-14
这家伙很懒,什么也没写!
这类问题太多了,而且各家的板子不一样,我们也没有相应的板子,所以这类问题不可能一一仔细回答。 我们后续打算推出一些入门级的以太网模块(会连同技术支持服务在一起),这样用户也方便使用。
joychen
2011-06-14
这家伙很懒,什么也没写!
你可以試看看附件的檔案,我試過是可以用的
aozima
2011-06-15
调网络不抓包,调I2C等时序不上逻辑分析仪,就像电工不用万用表!多用整理的好的文字,比截图更省流量,还能在整理过程中思考。
[attach]640[/attach] ARMFLY的DM9000AEP的复位和主CPU的复位连在一起,有时复位会不太好.要多按几下复位键.
leoluyi
2011-06-16
这家伙很懒,什么也没写!
今天有空按照aozima提供的代码已经调试成功,并且移植了webserver,增加RTC,并通过web显示出来,测试效果不错。谢谢! 同时感谢joychen指出的修改细节。 aozima提供的代码内核是0.4.0的,我移植都想把0.3.1上的lwip调试出来,找到To initialize device:e0 failed. The error code is -1的原因。
撰写答案
登录
注册新账号
关注者
0
被浏览
14.2k
关于作者
leoluyi
这家伙很懒,什么也没写!
提问
3
回答
6
被采纳
0
关注TA
发私信
相关问题
1
有关动态模块加载的一篇论文
2
最近的调程序总结
3
晕掉了,这么久都不见layer2的踪影啊
4
继续K9ii的历程
5
[GUI相关] FreeType 2
6
[GUI相关]嵌入式系统中文输入法的设计
7
20081101 RT-Thread开发者聚会总结
8
嵌入式系统基础
9
linux2.4.19在at91rm9200 上的寄存器设置
10
[转]基于嵌入式Linux的通用触摸屏校准程序
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
最新文章
1
开源共生 商业共赢 | RT-Thread 2024开发者大会议程正式发布!
2
【24嵌入式设计大赛】基于RT-Thread星火一号的智慧家居系统
3
RT-Thread EtherKit开源以太网硬件正式发布
4
如何在master上的BSP中添加配置yml文件
5
使用百度AI助手辅助编写一个rt-thread下的ONVIF设备发现功能的功能代码
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
I2C_IIC
WIZnet_W5500
UART
ota在线升级
PWM
cubemx
freemodbus
flash
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
中断
Debug
编译报错
msh
SFUD
rt_mq_消息队列_msg_queue
keil_MDK
ulog
MicroPython
C++_cpp
本月问答贡献
踩姑娘的小蘑菇
7
个答案
3
次被采纳
a1012112796
19
个答案
2
次被采纳
张世争
9
个答案
2
次被采纳
rv666
6
个答案
2
次被采纳
用户名由3_15位
13
个答案
1
次被采纳
本月文章贡献
程序员阿伟
9
篇文章
2
次点赞
hhart
3
篇文章
4
次点赞
RTT_逍遥
1
篇文章
6
次点赞
大龄码农
1
篇文章
5
次点赞
ThinkCode
1
篇文章
1
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部