这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » [求助]44b0中移植 vxworks,串口没有问题,网络下载映像出错

共11条 1/2 1 2 跳转至

[求助]44b0中移植 vxworks,串口没有问题,网络下载映像出错

菜鸟
2005-06-16 19:43:47     打赏

感谢AMINE提供的BSP移植资料,结合自己的板子修改一点代码,已经成功引导起来,出现了熟悉的vxworks引导信息.直到出现 "loading...."就停在那里了,正常应该进行网络下载vxworks启动才对.请大侠指教. 本人使用金一倍的板子,8019地址是0x06000000,地址A0-ADDR0,不需要奇偶地址变化,修改了NETBASE, rtl8019Init(void) endDevTbl [] 中的基地址代码.ne2000end.h换用vxworks自带.本人在出现"loading..."用网络监视程序commview观察时,192.9.200.128有广播输出.不知道问题在哪里

unit number : 0 processor number : 0 host name : ylh file name : vxWorks inet on ethernet (e) : 192.9.200.128:ffffff00 host inet (h) : 192.9.200.1 gateway inet (g) : 192.9.200.1 user (u) : ylh ftp password (pw) : ylh flags (f) : 0x0 target name (tn) : jinyibei44b0x

Start NET Controller Test! Read registers from controller!

Page0: 0x23 0xEB 0x4A 0x00 0x03 0x00 0x00 0x00 0x04 0x10 0x50 0x00 0 x01 0x00 0x00 0xEB Page1: 0x63 0xEB 0xA0 0x00 0x88 0xEB 0x00 0x00 0x00 0xEB 0x00 0x00 0 x00 0xEB 0x00 0x00 Page2: 0xA3 0xEB 0x80 0xEB 0x40 0x3C 0xFF 0xEB 0xFF 0x3C 0xFF 0xEB 0 xCC 0x00 0xC8 0xEB Page3: 0xE3 0x18 0x00 0x00 0x80 0x00 0x00 0x3C 0x00 0x1C 0xFF 0x3C 0 xFF 0xEB 0xFF 0x3C Finish NET Controller Test! Loading...




关键词: 求助     移植     vxworks     串口     有问题     网络         

菜鸟
2005-06-16 19:48:00     打赏
2楼

正常程序运行的话,就算引导失败,也应该出现 类似

Error loading file: errno = 0x%x. 的话 但是没有,什么原因

如果我想测试一下网卡有没有正常工作的话用个什么函数好


菜鸟
2005-06-29 23:47:00     打赏
3楼

问题有了进展,是cache的问题,只要把 #undef 掉INCLUDE_CACHE_SUPPORT就好使了 ,网络有反应了,wftp 上显示了登陆信息,看来网络驱动应该没有问题了,第一次loading的时候不停出现了

interrupt :panic:netJobAdd:ring buffer overflow!

的错误。网上解释是中断太频繁,buffer设的小了。哪位大侠能否讲的详细一点


菜鸟
2005-06-29 23:47:00     打赏
4楼

开关几次后,竟然好使了,ftp上陆续出现登陆、用户认证、密码通过等信息。但是中间时间很长,每通过一项要1分钟左右,感觉太慢,估计有问题(不象传说中网络的速度)。终于出现 loading...468960+89455 (类似,具体值忘了)的信息,但是期间等了好几分钟,然后就执行不下去了。我感觉里面还有很严重的问题在。等待解决

请问一下一般的网络下载速度有多少


菜鸟
2005-06-30 17:33:00     打赏
5楼

======在 2005-6-29 13:13:41 您来信中写道:====== 你好,我也在参考AMINE提供的BSP移植资料,结合自己的板子做一些开发。现在也是串口调通了,也是直到出现 "loading...."就停在那里了。我这块开发板,8019地址也是0x06000000,地址A0-ADDR0。现在我有几个地方不太清楚,想请教你一下:(1) syslib.c文件中的rtl8019Init()函数的网卡复位中:*(NETBASE+0x1e) = *(NETBASE+0x1e + 0x20); 这行代码是什么意思呢,因为我们不需要奇偶转换,所以我把0x20改为0x01,是只需要这样改吗?后面设置积存器的值,它是地址转换以后的,我只需要改为原来的就可以吧。(2)我在bootConfig.c的bootload函数的bootParamsShow (BOOT_LINE_ADRS)这行代码后加入NetTest函数,像你那样打印出网卡芯片的寄存器值,发现完全不是我设定的值,显示的全都是FF和0,你知道是什么原因吗?而且我看你打印出的值也和程序中设定的值不是完全一样啊?到底是怎么回事呢?你现在已经调通网卡了吗 盼指教 多谢 ====================================== 答:我的nettest加在 printf ("Loading... "); 前面。(nettest也需要把奇偶地址改过来)你可以再试试,如果还是全都是FF和0那可能网卡地址没有映射对或者8019没有在工作状态(没有复位好)。我的板子也不需要地址奇偶变换,所以用vxworks自带的ne2000end.h代替amine改的。*(NETBASE+0x1e) = *(NETBASE+0x1e + 0x20); 我的理解应该是8019的软件复位,我把cpld有关的全注释掉了(我的板没有cpld)我改为*(NETBASE+0x1f) = *(NETBASE+0x1f); //add ylh loopDelay(500);

我的一点理解,不知道讲的对不对


菜鸟
2005-06-30 20:04:00     打赏
6楼
8019的datasheet上有介绍;就是对网口0x1f地址的寄存器写个任意的值就实现软件复位;一般的写法就是对自己地址读写一下。

菜鸟
2005-06-30 20:47:00     打赏
7楼
应该是 地址18-1F都是 Reset Port。

菜鸟
2005-06-30 21:19:00     打赏
8楼

我的板也是没有cpld,所以我也把把cpld有关的全注释掉了。我的板RSTDRV接的CPU的GPC10,所以我首先在portInit()函数中作了修改,rPCONC = 0xfff45555改为rPCONC = 0xffd45555(GPC10作输出,作为网卡复位控制)。然后在rtl8019Init()函数中把 *CPLDREG1 |= 0x20; loopDelay(500); *CPLDREG1 &= 0xDF; loopDelay(100); 改为rPDATC |= 0x0400; loopDelay(500); rPDATC &= 0xBFF; loopDelay(100);(就是把GPC10先置1再置0) 然后还是需要像你说的那样 *(NETBASE+0x1f) = *(NETBASE+0x1f); //add ylh loopDelay(500); 进行软件复位吗?还是不需要了?不知道我的这个复位操作有没有对?

另外就是configNet.h向endDevTbl[]表中添加新驱动条目,填写初始化串时:"0x06000000:0x16:0x16:1:0:2","2"代表的应该是offset for memory alignment,可是是怎么确定是2的呢?


菜鸟
2005-07-01 17:39:00     打赏
9楼

软件复位还是需要的,参照uclinux下的驱动程序也都是有的.endDevtbl[]中,"1:0:2"我没有改,也没有搞清楚,但可以用,只要前面要对,0x06000000是网卡基地址,0x16是中断号,0x16->INT3;0X18->INT1


菜鸟
2005-07-01 22:20:00     打赏
10楼

移植代码由AMINE无私提供,本人受益非浅,国人的嵌入式事业需要大家共同的努力.

http://amine.nease.net/code/arm_bsp.rar


共11条 1/2 1 2 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]