USB mass storage 的一点疑问

aretu 2008-06-04 03:02:39
我的WINCE设备,如果进入到Mass Storage Mode,那么如果这时候设备连接到PC,对于WINCE来说,就不能
识别Flash和SD卡里面的内容,而对于PC(WINXP)把设备当作U盘,FLASH,SD对其可见.也就是说,如果WINCE
设备在运行Flash里面的应用程序,这时候把PC连接到WINCE设备上,设备进入MASS STORAGE MODE就会丢失
Flash而导致运行程序的错误.开始以为只有WINCE这样一做,后来注意到我的手机(LINUX 系统的),在插上USB
线连到PC,进入大存储模式(也应该就是Mass Storage Mode)时候会提示关闭所有的应用程序,我想这个WINCE
是一样的道理了.
我的问题是:
1.是什么导致了这种现象的发生,是USB协议规定的吗(好象没有看到相关的说明)?还是由于Host端和Client端的特性决定
的(client端的时候不可以识别Flash?)?还是我们做USB驱动的一个习惯?
2.我们可不可以把驱动改成,进入Mass Storage Mode的时候,既让PC可以识别到Flash又让自己本身的Wince识别到Flsh呢?
...全文
407 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
glsoft2006 2010-04-15
  • 打赏
  • 举报
回复
长见识了,顶一下。
aretu 2008-06-10
  • 打赏
  • 举报
回复
非常感谢上面各位高手的解答,让我明白不少谢谢~!!
hardworktzy 2008-06-08
  • 打赏
  • 举报
回复
在接入其他主机后,你要将WINCE本身对设备的控制(主要是文件系统)转变为主机的控制,如果你不关闭wince的文件系统,主机会按照UFI命令来解释读取的数据,并最终转变为主机认可的文件系统数据。如果在二个状态之间的切换不隔离,会导致文件系统的损坏
shuiyan 2008-06-08
  • 打赏
  • 举报
回复
其实,主要是为了防止FLASH之类的资源竞争、冲突、覆盖、乱写等现象的。
比如你运行了FLASH上的程序,此时PC上要拷贝或者删除flash上的东西,而改变的东西偏偏就是那个程序将要用到(不是正在用的)的,比如图片,比如音源,那么一旦没有保护,wince上的程序就会出错。

这只是一个简单的例子,一般的程序出错就出错了,没什么大不了。但是在实际应用中,你根本不知道用户会在设备上跑什么程序,做什么修改。万一因此导致了系统的错误甚至崩溃,而丢失了用户的数据,那么就会直接影响用户对产品的信任了。

所以,最好不要这样做,除非你们能确保不会丢失用户数据。
sandmangu 2008-06-08
  • 打赏
  • 举报
回复
有2点考虑

1. 是上面说的安全性,如果wince在播放flash上的文件或者运行程序,这时候pc删除了这个文件会导致异常
2. 运行mass storage时候CPU是需要处理usb命令的,这时候CPU还在运行程序,运行速度会大大降低,有些程序就会异常,所以不建议这么做
aretu 2008-06-07
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 yashi 的回复:]
这样做是出于安全考虑。可以实现你要求的那样,但是不推荐这样做。
[/Quote]
出于安全考虑?如果我不想这样的话,应该在哪里去修改呢?好像USB驱动有好多块啊,
至少我从设备来看,就加载了3个DLL,每个DLL又加载了很多的lib
yashi 2008-06-05
  • 打赏
  • 举报
回复
这样做是出于安全考虑。可以实现你要求的那样,但是不推荐这样做。
aretu 2008-06-05
  • 打赏
  • 举报
回复
自己订一个~~~

19,502

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧