硬汉嵌入式论坛

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

[SD/SDIO] SDMMC的MPU配置问题

[复制链接]

10

主题

18

回帖

48

积分

新手上路

积分
48
发表于 2022-9-13 10:17:11 | 显示全部楼层 |阅读模式
H7的SDMMC自带dma只能运行在片内AXI SRAM的512KB的内存空间里,平时都将这个空间的MPU配置成最低性能模式,使用都正常今天突然想到把整个空间配置成最高性能模式,看看读卡速度能不能再快些,sd_diskio里读写函数清除cache,无效化cache也都开了,如图
image.png image.png image.png
这样配置后SD卡就读写不正常了。。但貌似能挂载,莫非还有啥没配置到位?
看了下硬汉哥有用到sd卡文件系统的相关例程,发现也都是把AXI sram的MPU配置成最低性能模式,硬汉哥有空的话能不能帮忙测试下配置成最高性能模式下SD卡文件的读写功能呢?还是说用SD卡时这块区域MPU只能用最低性能

image.png
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107049
QQ
发表于 2022-9-13 16:59:12 | 显示全部楼层
这个是AXI SRAM火力全开的。
V7-025_FatFS文件系统例子(SD卡 V1.2,Cache性能全开).7z (3.58 MB, 下载次数: 22)

image.png
回复

使用道具 举报

5

主题

167

回帖

182

积分

初级会员

积分
182
发表于 2022-9-13 22:03:29 | 显示全部楼层
eric2013 发表于 2022-9-13 16:59
这个是AXI SRAM火力全开的。

这个程序里SD_write里
memcpy((void *)scratch, (void *)buff, BLOCKSIZE);
            buff += BLOCKSIZE;

            ret = BSP_SD_WriteBlocks_DMA((uint32_t*)scratch, (uint32_t)sector++, 1);
memcpy之后就用dma传输会不会scratch的数据还在cache里导致dma传输出错
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107049
QQ
发表于 2022-9-14 02:43:48 | 显示全部楼层
yuanzhongda 发表于 2022-9-13 22:03
这个程序里SD_write里
memcpy((void *)scratch, (void *)buff, BLOCKSIZE);
            buff += BLOC ...

看的很细,加个比较保险,已经更新到二楼例子中。
回复

使用道具 举报

10

主题

18

回帖

48

积分

新手上路

积分
48
 楼主| 发表于 2022-9-14 10:49:40 | 显示全部楼层
eric2013 发表于 2022-9-13 16:59
这个是AXI SRAM火力全开的。

测试了下,最高性能下芯片电流直接提高了50ma,直发烫
回复

使用道具 举报

10

主题

18

回帖

48

积分

新手上路

积分
48
 楼主| 发表于 2022-9-14 11:00:03 | 显示全部楼层
eric2013 发表于 2022-9-13 16:59
这个是AXI SRAM火力全开的。

MPU里读写cache配置差不多弄懂了,那个指令INSTRUCTION_ACCESS和共享SHAREABLE具体作用是什么呢?我看所有例程里都是默认指令cache开着,共享关着,什么情况下这两个需要专门配置呢?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107049
QQ
发表于 2022-9-14 11:03:21 | 显示全部楼层
spear47 发表于 2022-9-14 10:49
测试了下,最高性能下芯片电流直接提高了50ma,直发烫

其实这个不开更好,因为大部分时间都是SDIO的DMA在读写刷新。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107049
QQ
发表于 2022-9-14 11:18:02 | 显示全部楼层
spear47 发表于 2022-9-14 11:00
MPU里读写cache配置差不多弄懂了,那个指令INSTRUCTION_ACCESS和共享SHAREABLE具体作用是什么呢?我看所 ...

手册下这个帖子里面的这张图就行,非常方便。

STM32H7视频教程第14期:超干货,MPU和Cache实战,一张图了解所有经典配置案例,争取人人都可以玩溜(2022-05-08)
https://www.armbbs.cn/forum.php?mod=viewthread&tid=112268

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-16 00:33 , Processed in 0.274358 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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