记录一下解决EZ6410的板子在Linux下用USB来传输文件问题的过程~
前两天ARM11的开发板到了,需要先验证一下各项功能。以往用FS2410时用的是minicom+usb2ram,功能比windows下的dnw更强,因为minicom支持彩色显示,不会像dnw一样出现很多乱码,这一点上超级终端做的也不错,可惜不能支持USB传输,加上我们用的是Linux嵌入式系统,平时开发都在Ubuntu下进行,当然选择minicom+usb2ram了~
不过这次出问题了,usb2ram不支持EZ6410板子的USB传输,这让我很郁闷!查看usb2ram的源代码,发现里面主要有四个地方和具体的板子相关,分别是vendorID,productID,ram_base和EndPoint地址。问题随之变为如何查看EZ6410开发板上这些参数的具体值了。ram_base很简单,使用手册里就有,0x50200000。其他三个上网搜了一下,发现用lsusb可以列出来前两个,分别为0x04e8和0x1234,至于EndPoint地址本来为0x03,我试着改为0x02就可以了~
编译通过后,可以配合minicom使用了,不过速度还是偏慢,尤其是和Windows下的DNW对比,慢得和蜗牛一样!于是我又上网搜Linux下和DNW相似的USB传输程序,还真让我发现了一个,叫做dnw2。
很简单,就一个c文件,打开看源代码,是支持QQ2440的,结构比usb2ram更加清晰简单,要改的就三个地方,vendorID,productID和ram_base,不需要EndPoint了,更确切的说是已经固定为0x02了~我把三个宏定义设置好,编译通过后试了一下,可以支持,并且速度明显比usb2ram快了很多,和Windows下的DNW没有直接对比,还不好说,不过估计也差不多了~
有了dnw2,估计以后就不需要usb2ram了,毕竟速度上差了很多,没有人会喜欢慢的东西嘛~
ps,dnw2.c的源代码
C语言: Linux下通过USB传输文件到RAM中用的dnw2