完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
USB slave例程中想把SPI flash的部分去除掉,但是去除了整个程序就不能实现模拟U盘的功能,求告知//最大支持的设备数,2个#define STORAGE_LUN_NBR 2
int8_t STORAGE_Init (uint8_t lun) { u8 res=0; switch(lun) { case 0://NAND FLASH res=FTL_Init(); break; case 1://SD卡 res=SD_Init(); break; } return res; } //获取存储设备的容量和块大小 //lun:逻辑单元编号,0,SD卡;1,SPI FLASH //block_num:块数量(扇区数) //block_size:块大小(扇区大小) //返回值:0,成功; // 其他,错误代码 int8_t STORAGE_GetCapacity (uint8_t lun, uint32_t *block_num, uint32_t *block_size) { switch(lun) { case 0://NAND FLASH *block_size=512; *block_num=nand_dev.valid_blocknum*nand_dev.block_RowNum*nand_dev.page_mainsize/512; break; case 1://SD卡 *block_size=512; *block_num=SDCardInfo.CardCapacity/512; break; } return 0; } //查看存储设备是否就绪 //lun:逻辑单元编号,0,SD卡;1,SPI FLASH //返回值:0,就绪; // 其他,未就绪 int8_t STORAGE_IsReady (uint8_t lun) { USB_STATUS_REG|=0X10;//标记轮询 return 0; } //查看存储设备是否写保护 //lun:逻辑单元编号,0,SD卡;1,SPI FLASH //返回值:0,没有写保护; // 其他,写保护(只读) int8_t STORAGE_IsWriteProtected (uint8_t lun) { return 0; } //从存储设备读取数据 //lun:逻辑单元编号,0,SD卡;1,SPI FLASH //buf:数据存储区首地址指针 //blk_addr:要读取的地址(扇区地址) //blk_len:要读取的块数(扇区数) //返回值:0,成功; // 其他,错误代码 int8_t STORAGE_Read (uint8_t lun,uint8_t *buf,uint32_t blk_addr,uint16_t blk_len) { int8_t res=0; USB_STATUS_REG|=0X02;//标记正在读数据 switch(lun) { case 0://NAND FLASH res=FTL_ReadSectors(buf,blk_addr,512,blk_len); break; case 1://SD卡 res=SD_ReadDisk(buf,blk_addr,blk_len); break; } if(res) { USB_STATUS_REG|=0X08;//读错误! } return res; } //向存储设备写数据 //lun:逻辑单元编号,0,SD卡;1,SPI FLASH //buf:数据存储区首地址指针 //blk_addr:要写入的地址(扇区地址) //blk_len:要写入的块数(扇区数) //返回值:0,成功; // 其他,错误代码 int8_t STORAGE_Write (uint8_t lun,uint8_t *buf,uint32_t blk_addr,uint16_t blk_len) { int8_t res=0; USB_STATUS_REG|=0X01;//标记正在写数据 switch(lun) { case 0://NAND FLASH res=FTL_WriteSectors(buf,blk_addr,512,blk_len); break; case 1://SD卡 res=SD_WriteDisk(buf,blk_addr,blk_len); break; } if(res) { USB_STATUS_REG|=0X04;//写错误! } return res; } //获取支持的最大逻辑单元个数 //返回值:支持的逻辑单元个数-1 int8_t STORAGE_GetMaxLun (void) { if(SDCardInfo.CardCapacity)return STORAGE_LUN_NBR-1; else return STORAGE_LUN_NBR-2; } |
|
相关推荐
2个回答
|
|
大哥啊,我在论坛发过帖子了,好歹搜索去参考看看啊
|
|
|
|
哦哦,好的,对不起哈,有时候搜索关键词不对,找不到才来提问的,不过刚才找到了,以后不会这样了,多搜几遍再提问,谢谢军哥
|
|
|
|
只有小组成员才能发言,加入小组>>
710 浏览 0 评论
1120 浏览 1 评论
2497 浏览 5 评论
2836 浏览 9 评论
移植了freeRTOS到STMf103之后显示没有定义的原因?
2677 浏览 6 评论
使用eim外接fpga可是端口一点反应都没有有没有大哥指点一下啊
662浏览 9评论
673浏览 7评论
请教大神怎样去解决iMX6Q在linux3.0.35内核上做AP失败的问题呢
791浏览 6评论
638浏览 5评论
681浏览 5评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-27 08:50 , Processed in 1.051313 second(s), Total 81, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号