原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://lancelot.blog.51cto.com/393579/328233
很久以前,大概是前年年底吧,因为公司项目的要求,我做了基于OHCI的USB主机访问U盘的程序,用来把系统中产生的一些数据保存到U盘中。本来做的时候就想把其中的一些经验体会发表的,可是工作实在是太忙,而且也的确有点懒,就一直拖到了现在。
做访问U盘的USB主机,网上有很多现成的例子,从硬件到软件。可是绝大多数都是使用了专用的USB主机芯片,譬如ISP1160。还有现成的详细资料,譬如周立功公司出品的《ARM嵌入式系统软件开发实例》系列教程。但是,凡事都怕这个但是,我们公司项目偏偏不使用USB主机芯片,而是直接利用ARM9200芯片自带的接口直接来完成这个功能。
当时遇到的困难简直是多如牛毛,再加上智商又低,光是刚开始通过控制端点发送命令的程序就调试了有几个星期。总的来说,当时调试程序大量的时间是花在了底层的代码调试,真正到了磁盘操作、文件系统操作、业务功能实现的时候,所花费的时间反而还少了。毕竟上层的业务逻辑写好了以后,我还通过自己编写的一个简单的单元测试程序进行了一些测试。
痛定思痛,我决定还是把调试过程中那些苦恼的日子里总结出来的一些经验分享出来,希望也能为相关的开发人员节省一点时间。毕竟网上基于OHCI的USB主机访问U盘的资料实在是太少了。
我看了看我的那个程序的设计文档,足足有100页,当然这里面也包含了部分的代码,不过好在当时就写下了设计文档,可以让我的这个系列文章轻松不少。