分类:
2009-01-12 14:07:52
|
然后在\devs\eth\arm\leo2410\current\目录下建立cdl、include目录,将相应的文件拷贝到这些目录下,主要涉及的是leo2410_eth_drivers.cdl和devs_eth_arm_leo2410.inl两个文件。将两个文件中的模板相关部分进行一些修改,然后编译、下载...很遗憾,没有找到cs8900!
仔细看了一下devs_eth_arm_leo2410.inl文件,才发现cs8900设置的基地址有问题。aeed2000模板的基地址设置的是0x10000000,而阳初的开发板cs8900是接在bank3上的,所以基地址应该是0x18000000。另外,和SMDK2410一样,采用A24脚作为cs8900工作模式的选择输入,所以当采用io模式时,基地址应该为0x19000000。修改后再编译、下载...还是无法找到...?????
又到web上找找,有人提到可能是bank3的设置有问题,因此按照他的说法将memcfg.h中的B3_BWSCON的设置改为(DW16|WAIT|UBLB),再编译、下载...仍然无法找到cs8900...真是郁闷啊!
在网上四处寻找、反复调试仍然无法解决!不过一直有一个问题引起我的注意,那就是在加入了cs8900的驱动后,在启动时总会出现一串乱码,然后才启动成功。这串乱码实际上应该是在发生异常时Redboot输出的信息,形如:$T050f:cc650100;0d:f8340200;#86。这个异常是什么引起的呢,我一直感觉还是访问cs8900的基址时引起的,难道基址仍然有问题吗?查阅了器件资料、网上的论坛以及电路图,这个基址应该是对的啊...???又是在一瞬间,突然想起了mmu,在Redboot启动时已经启动了mmu,而在mmu的映射表里面却还没有添加cs8900基址的映射啊...赶紧在hal_mmu_init函数里面加上下面这句代码,将cs8900的基址0x19000000映射为0x19000000。
|
重新编译、下载...总算找到cs8900了,Redboot里面也出现了ping、ip_address两个命令了。ping一下...不通...继续郁闷...
查看一下启动时的信息,发现cs8900带有ROM,但是从ROM读出的MAC地址却是FF:FF:FF:FF:FF:FF,这样当然是无法ping通的。相比应该是生产商并没有购买MAC地址,所以就没有设置了。不过没有关系,将leo2410_eth_drivers.cdl中的option进行修改就可以解决这个问题:
|
即将其中的calculated选项的值改成1,即可设置cs8900的MAC地址了。修改后,编译、下载...终于通了,还可以直接采用tftp下载image,或者使用telnet作为终端来操作Redboot了。
analog20062010-03-26 10:04:21
我的问题解决了。。在xxx_misc.c中修改一下port_init()和plf_hardware_init()中关于中断的设置,还有if_dm9000.c中的deliver中控制中断资源就搞定了。。想起你的mmu_init我就特想感谢你。。。。
analog20062010-03-24 09:01:55
帅哥。。我做的是DM9000的和s3c2440的移植。。redboot弄好了。。可是在应用程序中使用网络就不行。。可否指教指教。。谢谢。。
chinaunix网友2009-06-23 10:37:31
建立了一个QQ群,讨论eCos的,欢迎广大eCos爱好者加入! QQ群:62132911 google网上论坛:http://groups.google.com/group/ecos-chinese-user-group?hl=zh-CN