好久没更新blog了,有点忙也有点懒^_^。自从上次十分简单地移植dm9000到试验箱后,就一直没关注具体的细节,直到这几天自己移植dm9000ae的驱动时才发现网友遇到的问题。u-boot自带的dm9000驱动是针对dm9000,一款比较老的isa接口芯片,而现在一般用的是dm9000ae升级版芯片。这个升级并非完全兼容,稍不注意,就会有莫名其妙的错误。

      1.超时问题,症状为不断地出现T。通过wireshark的抓包,有发送也有返回的包,但返回的包并没有被处理,直到T,然后重新发包。对比Linux的驱动,在收包前Linux会有
               ior(db,0xf4);
               ior(db,0xf5);
这两个动作。添加后问题解决。在这里说是缓冲区要复位,但我对比dm9000和dm9000ae的datasheet,都是说IMR位7置一时,缓冲区满时会自动复位。看不出dm9000和dm9000ae有什么差别...

      2.tftp传送失败。传送uImage,bootm后出现"Bad Data CRC"。wireshark抓包,发送和接收都正常。通过cmp与串口传过来的uImage对比,发现每1468个字节后会有8个字节的丢失。打开驱动的debug,print收到的包,发现收到的数据都正确,只不过包的最大长度为1460,后面的8个字节在随后的包中被上层丢弃了。同时,wireshark显示tftp的分包大小为1468,修改tftp的最大分包大小为1460,问题解决。

      3.每次接收都先停顿一个T。抓包,发现第一个arp包没有被抓到,即dm9000还没正常工作。而且每次接收都会等待一个T,即接收完后dm9000被停止。讲eth_init添加到board的初始化并注释eth_halt的内容,一切搞定^_^。

        总结很轻松,过程总是充满辛酸...经过半年的coding,分析能力也有了很大的提高。另外,工作很忙,希望大家不要问我要代码^_^

Tag: 工作

充实的假期

2007-09-04

      终于有时间写点东西了。实习结束休息几天后马上奔到珠海,开始人生的另一个旅途。刚开始,工作很紧张,几乎喘不过气来。慢慢地,适应了,任务也逐步完成,开始发现这个城市也不错:) 其实每个城市都有自己的特点,相对广州,珠海的环境确实不错,只是感觉这个城市的节奏有点慢。记得去面谈那天,我问的士师傅珠海有什么特点,他第一个告诉我的就是慢。也许,柔和的海景需要漫步欣赏。

      可惜,出去游玩的时间不多,一个月来我的任务是负责CQT(移动网络质量测试终端)各模块的功能,平台是我熟悉的2440。难度不高,但任务挺重的,电话拨打、短信、彩信、邮件、网络下载等等。只可惜最后的录音放音模块还没完成,现在没有开发板好像也调试不了。期间,最搞笑的还是茶壶大哥,经常我睡觉他工作,我工作他睡觉,为人大大咧咧,睡觉打大呼噜^_^。

      这学期的课程不多,可以专心搞项目了,可是,还有一个问题没解决,有点遗憾。难道只有等待?

Tag: 工作


        8月,职场的正式第一站,珠海拱北之北--香洲。有我曾经向往的工作方式,日出而作日落而继续做...然而,还有更恐怖的茶壶大哥,工作时间平均为11点到5点...这个5点可是早上的5点!!!一个星期连续5天(至今为止:)),不知是不是在赶工程,其他大哥也一般工作到晚上10点...有点难以想象,这样工作,是不是有点累?

        工作差不多一个星期了,这星期主要负责gsm模块的拨号,写了两天的程序,被老手在4小时内从30K重构到15K,佩服得不得了...我接触的第一个高手,功夫有多深?10年。

Tag: 工作

分页共1页 1