硬汉嵌入式论坛

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

USBX+FILEX+SD 虚拟U盘,写入单个文件不能超过 4KB

[复制链接]

8

主题

35

回帖

59

积分

初级会员

积分
59
发表于 2024-11-1 13:54:23 | 显示全部楼层 |阅读模式
使用 cubemx 生成的 threadx 6.4 代码,现在电脑能够正确识别 u 盘,也能正确读取 SD 卡里面的文件,并且里面超过 4KB 的文件也能正常读取。但是向虚拟 u 盘里面写入文件的时候,超过 4KB就报错 "对于目标文件系统,文件xxx 过大",此时SD卡的空间还很大总共 8GB 使用 10MB。
1. 关于写入操作,我是直接使用鼠标进行复制粘贴的。


2. 试过关闭 filex 的容错功能,发现也不行。
3. 这个是写入函数,我发现每次写入,lba==0 时都写不成功,写入函数返回 FX_SECTOR_INVALID 。但是把读写函数的 lba 都改成从 1 开始又电脑又识别不到 U盘
[C] 纯文本查看 复制代码
UINT USBD_STORAGE_Write(VOID *storage_instance, ULONG lun, UCHAR *data_pointer,
                        ULONG number_blocks, ULONG lba, ULONG *media_status)
{
  UINT status = UX_SUCCESS;

  /* USER CODE BEGIN USBD_STORAGE_Write */
    while(number_blocks--)
    {
        status =  fx_media_write(&sdio_disk,lba,data_pointer);
		if(status!= UX_SUCCESS)
		{
			user_printf("1if(status!= UX_SUCCESS)%d\r\n",status);
		}
        data_pointer+=512;
        lba++;
    }

	status = fx_media_flush(&sdio_disk);
	if(status!= UX_SUCCESS)
	{
		user_printf("2if(status!= UX_SUCCESS)%d\r\n",status);
	}
  /* USER CODE END USBD_STORAGE_Write */

  return status;
}


回复

使用道具 举报

8

主题

35

回帖

59

积分

初级会员

积分
59
 楼主| 发表于 2024-11-1 15:01:18 | 显示全部楼层
根据官方手册的信息“ FileX 逻辑扇区始于逻辑扇区 1,指向介质的第一个保留扇区。 虽然保留扇区为可选,但在使用时,这些扇区通常
包含启动代码等系统信息。” 可知,逻辑扇区从 1 开始,那么 lba==0 返回 FX_SECTOR_INVALID 就是正常的。不过这个地方需要改进一下吗?
回复

使用道具 举报

8

主题

35

回帖

59

积分

初级会员

积分
59
 楼主| 发表于 2024-11-1 16:15:34 | 显示全部楼层
最大只能写入 4KB 问题解决,我扇区数目算错了。把扇区数目更改之后就能正常读写了。
回复

使用道具 举报

8

主题

35

回帖

59

积分

初级会员

积分
59
 楼主| 发表于 2024-11-1 17:32:30 | 显示全部楼层
稍微做了一下性能测试,感觉慢的不行呢?有其他人做过吗?这个速度是正常的吗?
屏幕截图 2024-11-01 173109.jpg

回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117530
QQ
发表于 2024-11-2 10:41:50 | 显示全部楼层
SJUMP 发表于 2024-11-1 17:32
稍微做了一下性能测试,感觉慢的不行呢?有其他人做过吗?这个速度是正常的吗?

别用这个软件,简单的复制粘贴个电影文件,速度多少,如果你的是全速USB,差不多速度就500KB-1MB的速度
回复

使用道具 举报

8

主题

35

回帖

59

积分

初级会员

积分
59
 楼主| 发表于 2024-11-4 09:36:24 | 显示全部楼层
eric2013 发表于 2024-11-2 10:41
别用这个软件,简单的复制粘贴个电影文件,速度多少,如果你的是全速USB,差不多速度就500KB-1MB的速度

好的,感谢!我就是使用的 STM32H723 的全速USB。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-8-12 17:28 , Processed in 0.043174 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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