flying1104 发表于 2021-10-20 15:12:08

RTX5+FATFS读写速度测试

本帖最后由 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 无法读取的错误

环境:
const osThreadAttr_t ThreadMsgPro_Attr =
{
      .name = "osRtxMsgProThread",
      .attr_bits = osThreadDetached,
      .priority = osPriorityHigh3,
      .stack_size = 2048,
};void AppTaskMsgPro(void *argument)
{
      while(1)
      {
                DemoFatFS();
      }      
} MPU_InitStruct.Enable         = MPU_REGION_ENABLE;
      MPU_InitStruct.BaseAddress      = 0x24000000;
      MPU_InitStruct.Size             = MPU_REGION_SIZE_512KB;
      MPU_InitStruct.AccessPermission = MPU_REGION_FULL_ACCESS;
      MPU_InitStruct.IsBufferable   = MPU_ACCESS_NOT_BUFFERABLE;
      MPU_InitStruct.IsCacheable      = MPU_ACCESS_NOT_CACHEABLE;
      MPU_InitStruct.IsShareable      = MPU_ACCESS_NOT_SHAREABLE;
      MPU_InitStruct.Number         = MPU_REGION_NUMBER0;
      MPU_InitStruct.TypeExtField   = MPU_TEX_LEVEL1;
      MPU_InitStruct.SubRegionDisable = 0x00;
      MPU_InitStruct.DisableExec      = MPU_INSTRUCTION_ACCESS_ENABLE;

      HAL_MPU_ConfigRegion(&MPU_InitStruct);Stack_Size      EQU   0x00005000
Heap_Size       EQU   0x0005800
请问造成读写出错/读写慢的因数有哪些?


eric2013 发表于 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
(出处: 硬汉嵌入式论坛)

flying1104 发表于 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 文件读成功,但是数据出错

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

flying1104 发表于 2021-10-22 09:23:13

不知道是否线程打断造成
刚转实时
后面看看加互斥是否可行

找到问题再回来补充

程cc 发表于 2023-9-27 09:45:04

你好 请问能给一个rtx5+fatfs的项目文件或移植过程文档吗 谢谢
页: [1]
查看完整版本: RTX5+FATFS读写速度测试