frank_wang
驱动牛犊
驱动牛犊
  • 注册日期2002-09-28
  • 最后登录2005-10-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:41720回复:166

让U盘固件开发成为过去

楼主#
更多 发布于:2003-07-19 09:35
当你准备开发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]
accompany
驱动牛犊
驱动牛犊
  • 注册日期2009-02-23
  • 最后登录2012-05-21
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望21点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2012-05-21 14:18
看看。。。。。。。。。。。。。。。。
mengyou_305
驱动牛犊
驱动牛犊
  • 注册日期2007-11-21
  • 最后登录2007-11-21
  • 粉丝0
  • 关注0
  • 积分90分
  • 威望10点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2007-11-21 12:36
也爬了很高了哦,楼主可敬~~
allanzhou9527
驱动牛犊
驱动牛犊
  • 注册日期2006-03-01
  • 最后登录2008-01-17
  • 粉丝0
  • 关注0
  • 积分710分
  • 威望72点
  • 贡献值0点
  • 好评度71点
  • 原创分0分
  • 专家分0分
地板#
发布于:2007-11-06 16:15
这个帖子不错,楼主共享精神难得,回帖留名。
puppysun
驱动牛犊
驱动牛犊
  • 注册日期2007-11-01
  • 最后登录2008-01-19
  • 粉丝0
  • 关注0
  • 积分130分
  • 威望14点
  • 贡献值0点
  • 好评度13点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2007-11-06 14:09
一口气爬上了162楼,谢谢楼主了,资源共享,共同进步!
oushengfen
驱动牛犊
驱动牛犊
  • 注册日期2007-06-28
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分747分
  • 威望124点
  • 贡献值1点
  • 好评度82点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2007-10-11 09:25
http://embedusb.51.net/html/download.htm
不过这个网站下载不了,打不开.
oushengfen
驱动牛犊
驱动牛犊
  • 注册日期2007-06-28
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分747分
  • 威望124点
  • 贡献值1点
  • 好评度82点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2007-10-11 09:24
楼主非常不错,值得学习.
imjacob
驱动牛犊
驱动牛犊
  • 注册日期2006-09-29
  • 最后登录2010-03-15
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望109点
  • 贡献值0点
  • 好评度88点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2007-10-07 23:22
接上,
刚才又去看了下d12的手册和别人写的参考代码。联系我看到的其他usb芯片
发现枚举阶段判断in还是out有两种方式:

第一种是靠setup阶段的那个数据包中的信息来判断本次传输是in还是out,net2272芯片是这种。

第二种是靠中断源的不同来判断是in还是out。这种芯片又分提供了setup寄存器和没提供setup寄存器的。前者像ml6962,后者就是d12了。没提供的话,就要利用数据结构来做了,可能速度会慢点八。

以上是我突然之间想到的,要睡觉去了,明天继续补充。
imjacob
驱动牛犊
驱动牛犊
  • 注册日期2006-09-29
  • 最后登录2010-03-15
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望109点
  • 贡献值0点
  • 好评度88点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2007-10-07 22:52
USB协议精妙之处就在于枚举过程。主机最初发过来的包,一定是8个字符长的。所以,你的端点的MaxPacketSize至少必须是8。


以上是楼主20楼的说法。

我认为逻辑关系上好像有错误把,至少不同的芯片是不一样的,d12我不太了解。

usb芯片都是把8个长度的描述符请求放在setup寄存器里,不是放在端点里的。所以上面的“所以”根本就不成立。即使你的结论是正确的。

另外,你指的“主机最初发过来的包”应该是指setup里的data阶段把,那讲最初干吗,根本就是任何时候都是8个字符把。
fybcao
驱动牛犊
驱动牛犊
  • 注册日期2006-08-18
  • 最后登录2011-10-05
  • 粉丝0
  • 关注0
  • 积分123分
  • 威望43点
  • 贡献值0点
  • 好评度12点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2007-10-07 20:23
ding
jmxuan
驱动牛犊
驱动牛犊
  • 注册日期2004-08-21
  • 最后登录2004-09-03
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2004-09-03 10:50
说什么呢,真是感动,我就在北航旁边,好想仰慕一下frank什么样子
usb_crazy
驱动牛犊
驱动牛犊
  • 注册日期2004-08-04
  • 最后登录2006-04-13
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2004-08-21 20:56
看到这么多搞usb开发的同志,真的非常高兴,希望能够结交大家,大家共同学习,相互帮组共同进步!
我的E-Mail:usb_crazy@126.com
bengbengsnake
驱动牛犊
驱动牛犊
  • 注册日期2002-05-31
  • 最后登录2005-05-04
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2004-08-21 10:09
申请一个群组 把
crazyqp
驱动小牛
驱动小牛
  • 注册日期2004-07-28
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分69分
  • 威望12点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2004-08-20 21:25
我又给你发了一份邮件,不知道你收到没有啊!!!我觉得我们用mail组交流效果还是不理想,不如大家用QQ组交流,这样,在线交流会更好,而且没有在线的朋友也可以看到我们的聊天记录,不知大虾意见如何啊????
madmanexe
驱动牛犊
驱动牛犊
  • 注册日期2004-03-27
  • 最后登录2008-01-04
  • 粉丝0
  • 关注0
  • 积分11分
  • 威望2点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2004-08-11 15:57
怎么没有留下你的联系方式呢?
有时间的时侯大家交流一下!
我现在正在做有关USB的东西呢!
madmanexe
驱动牛犊
驱动牛犊
  • 注册日期2004-03-27
  • 最后登录2008-01-04
  • 粉丝0
  • 关注0
  • 积分11分
  • 威望2点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2004-08-11 15:56
好东西就就是要大家分享!支持!
crazyqp
驱动小牛
驱动小牛
  • 注册日期2004-07-28
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分69分
  • 威望12点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2004-08-11 15:38
to frank_wang:
   对你只能说两个字:佩服!!刚才去了你的网站,下载了一些资料,这段时间就好好拜读了!!非常感谢你的无私奉献!!我给你发了一封邮件(关于USB开发板的),不知道你收到没有!!
   crazyqp@163.com
wsqss2004
驱动小牛
驱动小牛
  • 注册日期2004-06-11
  • 最后登录2012-02-17
  • 粉丝0
  • 关注0
  • 积分994分
  • 威望202点
  • 贡献值2点
  • 好评度91点
  • 原创分0分
  • 专家分0分
17楼#
发布于:2004-08-10 21:49
能讲一下怎么在”我的电脑“里面显示出移动硬盘的图标?
zgfish
驱动牛犊
驱动牛犊
  • 注册日期2003-03-09
  • 最后登录2004-10-29
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
18楼#
发布于:2004-08-10 13:12
frank真是太伟大了,3QU。
支持,我现在正准备开发USB-Host,实现用单片机读写U盘,望各位大虾多指教。 :D
热带飞鱼
wanggang508
驱动小牛
驱动小牛
  • 注册日期2003-08-24
  • 最后登录2005-03-01
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
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呀?
多多交流,少走弯路!!!
上一页
游客

返回顶部