硬汉嵌入式论坛

 找回密码
 立即注册
查看: 2293|回复: 5
收起左侧

[RL-FlashFS] GD32+NAND 使用RL-FlashFS和官方USB库模拟U盘

[复制链接]

2

主题

13

回帖

19

积分

新手上路

积分
19
发表于 2024-4-30 16:52:27 | 显示全部楼层 |阅读模式
本帖最后由 zh9454 于 2024-4-30 16:56 编辑

最近在调试兆易GD32F470的芯片参考版主的RL-FlashFS版本V4.74综合实现的例子,实现了NAND的文件系统移植和测试,USB部分使用
的兆易官方库中的msc_udisk实现。当使用内部RAM时,电脑端可以正常识别U盘可以格式化拷贝文件;

但当我将STORAGE_Read和STORAGE_Write中的读写函数,改为文件系统提供的ioc_read_sect和ioc_write_sect后,电脑端可以识别U盘,
但是不能格式化操作,格式化时提示的容量时对的240M左右,也无法打开U盘,请问是哪里的原因呢,有没有人知道,可以分享下经验。




static int8_t STORAGE_Read (uint8_t Lun,
                            uint8_t *buf,
                            uint32_t BlkAddr,
                            uint16_t BlkLen)
{
    int8_t ret = -1;
        
    msc0 = ioc_getcb (NULL);
    if(ioc_read_sect (BlkAddr,buf,BlkLen,msc0) == __TRUE)  ret = 0;      
    return ret;
   
//    if(SRAM_ReadMultiBlocks(buf,
//                             BlkAddr,
//                             ISRAM_BLOCK_SIZE,
//                             BlkLen) != 0U)
//    {
//        return 1;
//    }
//
//    return 0;
}

static int8_t STORAGE_Write (uint8_t Lun,
                             uint8_t *buf,
                             uint32_t BlkAddr,
                             uint16_t BlkLen)
{
    int8_t ret = -1;
        
    msc0 = ioc_getcb (NULL);
    if(ioc_write_sect (BlkAddr,buf,BlkLen,msc0) == __TRUE)  ret = 0;
    return ret;
   
//    if(SRAM_WriteMultiBlocks(buf,
//                             BlkAddr,
//                             ISRAM_BLOCK_SIZE,
//                             BlkLen) != 0U)
//    {
//        return 1;
//    }
//
//    return 0;
}





回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
116223
QQ
发表于 2024-5-1 09:22:07 | 显示全部楼层
USB的底层建议就用你原来的即可,别用FlashFS的API,我之前也测试过,不好使。
回复

使用道具 举报

2

主题

13

回帖

19

积分

新手上路

积分
19
 楼主| 发表于 2024-5-4 11:36:56 | 显示全部楼层
eric2013 发表于 2024-5-1 09:22
USB的底层建议就用你原来的即可,别用FlashFS的API,我之前也测试过,不好使。

谢谢版主回复,上面用兆易官方的例子测试通过,但它USB底层使用的是直接对内部RAM的读写操作,我想实现的是板载的nand文件系统存储的文件,通过模拟U盘的方式在电脑端实现可操作,这个要如何实现呢?
回复

使用道具 举报

0

主题

4

回帖

4

积分

新手上路

积分
4
发表于 2024-7-22 17:59:41 | 显示全部楼层
老哥现在如何了,我寻思用spi nand flash去模拟U盘,那个usbd的接口没整明白
回复

使用道具 举报

1

主题

7

回帖

10

积分

新手上路

积分
10
发表于 2024-8-14 14:31:12 | 显示全部楼层
GXT 发表于 2024-7-22 17:59
老哥现在如何了,我寻思用spi nand flash去模拟U盘,那个usbd的接口没整明白

老哥RL-FLASH + spi nandflash 方案调试如何啦,我这边也在调试这个,总是在格式化时候返回1,然后初始化失败。
回复

使用道具 举报

1

主题

19

回帖

22

积分

新手上路

积分
22
发表于 2025-5-17 11:56:38 | 显示全部楼层
你的问题不知道解决没有,至少我看了给了我提示。你用文件系统提供的ioc_read_sect和ioc_write_sect和官方的USB驱动应该是可以的,AT32上我已经调试出来了,你把 BlkAdd,BlkLen都除512应该可以了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-6-10 11:10 , Processed in 0.303906 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表