mass storage同时挂载两个盘符

http://topic.csdn.net/u/20090224/13/d3d27ac2-a6f3-4ced-9025-7b87d7de47d4.html
问题:我们的设备上采用的是2G的NAND FLASH外加一个SD卡,三星提供的BSP和相关文档上说设备作为MASS STORAGE时,同时只能将其中一个作为MASS STORAGE连接到PC上,我们想连接PC的时候同时显示这两个存储空间,目前的候选方案是在应用程序上进行一些设置,进行切换选择显示不同的存储空间。我看到有些MP4也是同时只能显示一个存储空间,也是通过软件设置选择的,这是目前比较难解决的问题吗?
请问谁有没有什么好的解决办法可以同时将NAND FLASH和SD卡作为MASS STORAGE连接到PC机上呢?
谢谢!


有用解答:

已经基本调试成功了,目前是将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操作。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值