阅读:42572回复:166
让U盘固件开发成为过去
当你准备开发U盘的固件时,是否心里面仍然不踏实,让这些成为过去吧。
今年年初的时候,在驱动开发上发贴《在ARM7上使用D12开发U盘的详尽技术报告》(用书名号中的字符查找,可以找到)。其中详尽地介绍了我在ARM7上用D12开发U盘的过程,以及所涉及到的方方面面的知识。得到了一些朋友的肯定和鼓励。从中我也体会到了帮助别人的快乐。 后来忙于别的,不经常上驱动了,但偶尔看一下仍然有许多人遇到U盘开发中的各种各样的问题,心里觉得十分不快。因为看到还有许多人仍然在为已经不存在什么问题的内容所折磨,看到我们的技术开发者仍然处于一种单干的状态,技术交流的模式和通道仍然不畅......别人做过的工作,我们完全可以用一种合理的方式拿过来为已所用,而把精力放在更多未知的问题上的。 后来再做U盘文件系统(即在固件中创建文件,在PC上可以读取)、USB Host(可以读写U盘)的过程中,也碰到过一些问题,在向别人征询时,有一些朋友很爽快,愿意交换彼此的源码,有一些网友则是有所保留,可能每个人都忙,别人也没有时间解答所有问题。感觉就是得到的帮助往往是模糊的,往往还隔层纸 在驱动上发贴,总会被淹没,因此,我有一个想法,成立一个邮件组,正在做U盘碰到问题,或是准备做U盘的朋友,请给我发邮件。frank_wang@263.net,主题注明“U盘开发”字样,我会将这些邮件收集到一个邮件组中,以后大家有什么问题,我可以抄送到所有人的邮件中,大家回信的时候,也可以回复全部,让大家共享信息。并且,我们一段时间将问题整理一次,放到驱动开发网上,作为大家的参考。我也可以考虑把Bulk Only和SCSI命令集响应部分的源码以合理的方式提供给大家,并乐意解答其中的问题。 总之,我的愿望是,所有中国人,想做U盘的,让这个都不再是问题,让我们把精力放在其他更多更重要的事情上,让我们的整体水平更上层楼。我愿意为我这个愿望做些什么。同时,我也愿意跟大家交流我曾经做过的一些项目内容,比如文件系统读写,Usb-Host控制U盘等等。 在第6页上的一个回贴中新增了《对USB协议层的深层剖析》,对此的理解,更有助于USB协议相关固件的调试。 介于几个文档有时在这里下不了,请大家试试到 http://embedusb.51.net/html/download.htm 下载 [编辑 - 7/19/03 by frank_wang] [编辑 - 12/1/03 by frank_wang] [编辑 - 4/17/04 by frank_wang] [编辑 - 4/18/04 by frank_wang] [编辑 - 9/11/04 by frank_wang] |
|
沙发#
发布于:2012-05-21 14:18
看看。。。。。。。。。。。。。。。。
|
|
板凳#
发布于:2007-11-21 12:36
也爬了很高了哦,楼主可敬~~
|
|
地板#
发布于:2007-11-06 16:15
这个帖子不错,楼主共享精神难得,回帖留名。
|
|
地下室#
发布于:2007-11-06 14:09
一口气爬上了162楼,谢谢楼主了,资源共享,共同进步!
|
|
5楼#
发布于:2007-10-11 09:25
http://embedusb.51.net/html/download.htm
不过这个网站下载不了,打不开. |
|
6楼#
发布于:2007-10-11 09:24
楼主非常不错,值得学习.
|
|
7楼#
发布于:2007-10-07 23:22
接上,
刚才又去看了下d12的手册和别人写的参考代码。联系我看到的其他usb芯片 发现枚举阶段判断in还是out有两种方式: 第一种是靠setup阶段的那个数据包中的信息来判断本次传输是in还是out,net2272芯片是这种。 第二种是靠中断源的不同来判断是in还是out。这种芯片又分提供了setup寄存器和没提供setup寄存器的。前者像ml6962,后者就是d12了。没提供的话,就要利用数据结构来做了,可能速度会慢点八。 以上是我突然之间想到的,要睡觉去了,明天继续补充。 |
|
8楼#
发布于:2007-10-07 22:52
USB协议精妙之处就在于枚举过程。主机最初发过来的包,一定是8个字符长的。所以,你的端点的MaxPacketSize至少必须是8。 以上是楼主20楼的说法。 我认为逻辑关系上好像有错误把,至少不同的芯片是不一样的,d12我不太了解。 usb芯片都是把8个长度的描述符请求放在setup寄存器里,不是放在端点里的。所以上面的“所以”根本就不成立。即使你的结论是正确的。 另外,你指的“主机最初发过来的包”应该是指setup里的data阶段把,那讲最初干吗,根本就是任何时候都是8个字符把。 |
|
9楼#
发布于:2007-10-07 20:23
ding
|
|
10楼#
发布于:2004-09-03 10:50
说什么呢,真是感动,我就在北航旁边,好想仰慕一下frank什么样子
|
|
11楼#
发布于:2004-08-21 20:56
看到这么多搞usb开发的同志,真的非常高兴,希望能够结交大家,大家共同学习,相互帮组共同进步!
我的E-Mail:usb_crazy@126.com |
|
12楼#
发布于:2004-08-21 10:09
申请一个群组 把
|
|
13楼#
发布于:2004-08-20 21:25
我又给你发了一份邮件,不知道你收到没有啊!!!我觉得我们用mail组交流效果还是不理想,不如大家用QQ组交流,这样,在线交流会更好,而且没有在线的朋友也可以看到我们的聊天记录,不知大虾意见如何啊????
|
|
14楼#
发布于:2004-08-11 15:57
怎么没有留下你的联系方式呢?
有时间的时侯大家交流一下! 我现在正在做有关USB的东西呢! |
|
15楼#
发布于:2004-08-11 15:56
好东西就就是要大家分享!支持!
|
|
16楼#
发布于:2004-08-11 15:38
to frank_wang:
对你只能说两个字:佩服!!刚才去了你的网站,下载了一些资料,这段时间就好好拜读了!!非常感谢你的无私奉献!!我给你发了一封邮件(关于USB开发板的),不知道你收到没有!! crazyqp@163.com |
|
17楼#
发布于:2004-08-10 21:49
能讲一下怎么在”我的电脑“里面显示出移动硬盘的图标?
|
|
18楼#
发布于:2004-08-10 13:12
frank真是太伟大了,3QU。
支持,我现在正准备开发USB-Host,实现用单片机读写U盘,望各位大虾多指教。 :D |
|
|
19楼#
发布于:2004-06-18 15:16
我正在学习D12的固件程序,有点问题不太明白,向大家请教一下:程序中定义的CONTROL_XFER结构体中的
unsigned char dataBuffer[MAX_CONTROLDATA_SIZE], 为什么把MAX_CONTROLDATA_SIZE定义为8,我看了看设备描述符中端点0的最大包的大小为16呀?并且这个值在控制输出中断函数 void EP0_RxDone_Isr(void)中使用到: if(ControlData.DeviceRequest.wLength > MAX_CONTROLDATA_SIZE) { mudk12Flags.bits.bControl_State = USB_IDLE; USBCHIP_SetEndpointStatus(0, 1); USBCHIP_SetEndpointStatus(1, 1); } 注: CONTROL_XFER ControlData; 为什么 ControlData.DeviceRequest.wLength的值不能大于8呀? |
|
|
上一页
下一页