硬汉嵌入式论坛

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

[FatFs] RTX5+FATFS读写速度测试

[复制链接]

5

主题

35

回帖

50

积分

初级会员

积分
50
发表于 2021-10-20 15:12:08 | 显示全部楼层 |阅读模式
本帖最后由 flying1104 于 2021-10-20 15:32 编辑

MCU:STM32H743
系统:RTX5文件系统:FATFS V0.12C
卡:三星TF卡16G HC-I

测试FATFS读写的速度

现象:
写入
#define TEST_FILE_LEN                        (2*1024*1024)
大小的数据


#define BUF_SIZE                                (32*1024)
会出现Speed00.txt 无法读取的错误

然后修改
#define BUF_SIZE                                (512)
读写没有问题

继续修改
#define BUF_SIZE                                (768)
依然能够正确读写,不过过程中会卡顿一下
继续修改
#define BUF_SIZE                                (1024)
会出现Speed00.txt 无法读取的错误

环境:
  1. const osThreadAttr_t ThreadMsgPro_Attr =
  2. {
  3.         .name = "osRtxMsgProThread",
  4.         .attr_bits = osThreadDetached,
  5.         .priority = osPriorityHigh3,
  6.         .stack_size = 2048,
  7. };
复制代码
  1. void AppTaskMsgPro(void *argument)
  2. {
  3.         while(1)
  4.         {
  5.                 DemoFatFS();
  6.         }        
  7. }
复制代码
  1. MPU_InitStruct.Enable           = MPU_REGION_ENABLE;
  2.         MPU_InitStruct.BaseAddress      = 0x24000000;
  3.         MPU_InitStruct.Size             = MPU_REGION_SIZE_512KB;
  4.         MPU_InitStruct.AccessPermission = MPU_REGION_FULL_ACCESS;
  5.         MPU_InitStruct.IsBufferable     = MPU_ACCESS_NOT_BUFFERABLE;
  6.         MPU_InitStruct.IsCacheable      = MPU_ACCESS_NOT_CACHEABLE;
  7.         MPU_InitStruct.IsShareable      = MPU_ACCESS_NOT_SHAREABLE;
  8.         MPU_InitStruct.Number           = MPU_REGION_NUMBER0;
  9.         MPU_InitStruct.TypeExtField     = MPU_TEX_LEVEL1;
  10.         MPU_InitStruct.SubRegionDisable = 0x00;
  11.         MPU_InitStruct.DisableExec      = MPU_INSTRUCTION_ACCESS_ENABLE;

  12.         HAL_MPU_ConfigRegion(&MPU_InitStruct);
复制代码
  1. Stack_Size      EQU     0x00005000
  2. Heap_Size       EQU     0x0005800
复制代码

请问造成读写出错/读写慢的因数有哪些?


回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106578
QQ
发表于 2021-10-21 09:37:17 | 显示全部楼层
方便的话,可以使用我这个里面的V7-025的驱动,也有对应的教程说明,各种主流SD卡全部测试通过。

【安富莱】STM32H7用户手册发布,重在BSP驱动包设计方法,HAL库的框架学习,授人以渔,更新至91章(2021-03-22)
http://www.armbbs.cn/forum.php?m ... 6980&fromuid=58
(出处: 硬汉嵌入式论坛)
回复

使用道具 举报

5

主题

35

回帖

50

积分

初级会员

积分
50
 楼主| 发表于 2021-10-21 10:20:47 | 显示全部楼层
直接使用,测试得到数据
#define BUF_SIZE                                (16 * 1024)
* 写耗时 : 195ms   平均写速度 : 10754625B/S (10502KB/S)
* 读耗时 : 193ms   平均读速度 : 10866072B/S (10611KB/S)
  
#define BUF_SIZE                                (32 * 1024)
* 写耗时 : 152ms   平均写速度 : 13797052B/S (13473KB/S)
* 读耗时 : 178ms   平均读速度 : 11781752B/S (11505KB/S)

#define BUF_SIZE                                (64 * 1024)
* 写耗时 : 157ms   平均写速度 : 13357656B/S (13044KB/S)
* 读耗时 : 180ms   平均读速度 : 11650844B/S (11377KB/S)

#define BUF_SIZE                                (96 * 1024)
* 写耗时 : 150ms   平均写速度 : 13981013B/S (13653KB/S)
* 读耗时 : 177ms   平均读速度 : 11848316B/S (11570KB/S)

#define BUF_SIZE                                (128 * 1024)
* 写耗时 : 147ms   平均写速度 : 14266340B/S (13931KB/S)
* Speed1.txt 文件读成功,但是数据出错

请问为什么加入系统后,缓存不能加大呢?
大概是什么影响了呢?
回复

使用道具 举报

5

主题

35

回帖

50

积分

初级会员

积分
50
 楼主| 发表于 2021-10-22 09:23:13 | 显示全部楼层
不知道是否线程打断造成
刚转实时
后面看看加互斥是否可行

找到问题再回来补充
回复

使用道具 举报

4

主题

11

回帖

23

积分

新手上路

积分
23
发表于 2023-9-27 09:45:04 | 显示全部楼层
你好 请问能给一个rtx5+fatfs的项目文件或移植过程文档吗 谢谢
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-25 14:49 , Processed in 0.304000 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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