|
[向Veabol提问] mass storage 映射问题
[复制链接]
之前看过 Veabol的一个帖子
http://topic.eeworld.net/u/20090224/13/d3d27ac2-a6f3-4ced-9025-7b87d7de47d4.html?1343
主要是把NANDFLASH和 SD都映射成U盘使用,
Veabol总结的方法如下:
----------------------
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操作。
--------------------------
目前 我的已经映射出两个盘符了,不过都是NANDFLASH,也可操作内容,
对于第4点不是太明白,截获LUN值之后该怎么做?
|
|