wince设备 MASS STORAGE问题

博说医械研发 2009-02-24 01:51:55
加精
我们的设备上采用的是2G的NAND FLASH外加一个SD卡,三星提供的BSP和相关文档上说设备作为MASS STORAGE时,同时只能将其中一个作为MASS STORAGE连接到PC上,我们想连接PC的时候同时显示这两个存储空间,目前的候选方案是在应用程序上进行一些设置,进行切换选择显示不同的存储空间。我看到有些MP4也是同时只能显示一个存储空间,也是通过软件设置选择的,这是目前比较难解决的问题吗?
请问谁有没有什么好的解决办法可以同时将NAND FLASH和SD卡作为MASS STORAGE连接到PC机上呢?
谢谢!
...全文
1059 37 打赏 收藏 转发到动态 举报
写回复
用AI写文章
37 条回复
切换为时间正序
请发表友善的回复…
发表回复
lazerylee 2011-08-17
  • 打赏
  • 举报
回复
学习了 留名
zhangpangp 2010-08-27
  • 打赏
  • 举报
回复
学习了,留名
fire_drangon 2010-04-21
  • 打赏
  • 举报
回复
学习了,有几点不明白的,

4,在CSW中有个bCBWLUN表示这个CSW命令要发给哪个LUN
(LUN 从 0开始)。可以在BOT_HandleCBW这个函数中得到截获LUN的值,
然后用BOT_ExecuteCB这个函数来执行host端发送的命令,这些命令有可能是读、写等等。
block.c中的各函数要根据不同的lun来对不同的DISK_INFO操作。



截获到的LUN值 怎么处理?
tcchriszhao 2010-03-22
  • 打赏
  • 举报
回复
学习了
LaiQingXiong 2010-03-19
  • 打赏
  • 举报
回复
好帖子,学习留名来了
XXXX_YYYY 2009-03-12
  • 打赏
  • 举报
回复
支持!!!
youyouzui 2009-03-12
  • 打赏
  • 举报
回复
好像是的恩 。。。支持呢 。。。
博说医械研发 2009-03-11
  • 打赏
  • 举报
回复
是我眼睛花了,两个盘存储的内容是一样的,呵呵
博说医械研发 2009-03-11
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 yangkunzhen 的回复:]
to Veabol , 最近比较忙,没时间帮你具体看了,下面我写了比较重要的几点,将就着看吧。
1,发送序列号:

static LPCWSTR g_rgpszStrings0409[] = {
g_RegInfo.szVendor, g_RegInfo.szProduct, L"14273211-1575-4252-9161-419514811863"
};

static UFN_STRING_SET g_rgStringSets[] = {
0x0409, g_rgpszStrings0409, dim(g_rgpszStrings0409)
};

2,修改g_bScratch变量,
g_bScratch=0x1 (表示…
[/Quote]

现在已经能够识别两个盘符了,因为我还没对Store_init处理,所以两个盘符的空间大小显示的是同样的,存储的内容不一样,估计用不了多久就可以完成了。
博说医械研发 2009-03-11
  • 打赏
  • 举报
回复
感谢yangkunzhen在繁忙中给予的帮助!

昨天我通过BUS HOUND查看数据和在BOT_HandleCBW中追踪lun得到的值都是0,在网上搜索信息说是SerialNumber没有送给HOST,你的第一条也说明了这一点,我static LPCWSTR g_rgpszStrings0409[]定义的没有像你这样直接明了,并且以后用USB SERIAL的时候也会有影响,接下来按照你的这个方法试一下。
xajhuang 2009-03-11
  • 打赏
  • 举报
回复
对啊 这种好东西发上来大家学习学习啊
fanyangnib0 2009-03-11
  • 打赏
  • 举报
回复
学习,学习
zf8232230 2009-03-11
  • 打赏
  • 举报
回复
+-you 白痴都不行
xzw841115 2009-03-11
  • 打赏
  • 举报
回复
当然可以做到。要修改驱动。我记得好像掌微的A3方案,就实现了这个,你可以找它的驱动参考一下。
CYF3949641 2009-03-11
  • 打赏
  • 举报
回复
代码是同事改的,我没有仔细研究过,所以没有办法说再详细了
只能确认这个是可以实现的,而且要改Public下面的代码
skb19880917 2009-03-11
  • 打赏
  • 举报
回复
好,顶一下!!!!!!
博说医械研发 2009-03-11
  • 打赏
  • 举报
回复
已经基本调试成功了,目前是将NAND FLASH分成了两个盘符,在PC上可以显示这个盘符,暂时没用NAND和SD卡测试,估计问题不大。
现将所更改的内容说一下:
1、将PUBLIC驱动中transport.h的iSerialNumber设置在3,这样HOST才会向DEVICE发出读SerialNumber的命令。
static LPCWSTR g_rgpszStrings0409[] = {
g_RegInfo.szVendor, g_RegInfo.szProduct, L"14273211-1575-4252-9161-419514811863"
};
static UFN_STRING_SET g_rgStringSets[] = {
0x0409, g_rgpszStrings0409, dim(g_rgpszStrings0409)
};
L"14273211-1575-4252-9161-419514811863"就是SerialNumber,自己随便写。

2,BOT_HandleClassRequest函数中
g_bScratch=0x1 (表示支持两个LUN(logical unit number))

3,在STORE_Init中初始化两个Store,并且都dismount掉。

4,在CSW中有个bCBWLUN表示这个CSW命令要发给哪个LUN
(LUN 从 0开始)。可以在BOT_HandleCBW这个函数中得到截获LUN的值,
然后用BOT_ExecuteCB这个函数来执行host端发送的命令,这些命令有可能是读、写等等。
block.c中的各函数要根据不同的lun来对不同的DISK_INFO操作。

-------------------------------------------------------

在此特别感谢yangkunzhen、menuconfig,以及其他给予帮助的朋友。
Ricky_hu 2009-03-11
  • 打赏
  • 举报
回复
好贴,up一下!!!!
constantine 2009-03-11
  • 打赏
  • 举报
回复
不错,收藏
gooogleman 2009-03-10
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 yangkunzhen 的回复:]
to Veabol ,

把你的msn 或者QQ留下,我告诉你怎么改。
[/Quote]

发上来给大家看看吧。哈哈
学习了
加载更多回复(12)

19,502

社区成员

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

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