硬汉嵌入式论坛

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

[SPI/QSPI] QPSI跑代码,SDRAM读写速度慢,不稳定原因?

[复制链接]

3

主题

4

回帖

13

积分

新手上路

积分
13
发表于 2022-2-28 13:50:09 | 显示全部楼层 |阅读模式
这两天用V7板子,测试QPSI跑代码,用安富莱示例测试SDRAM读写速度,只能达到10M/s,和内部flash运行代码读写SDRAM速度差距太大,容易出硬件故障中断,请问是什么原因?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107101
QQ
发表于 2022-2-28 14:09:39 | 显示全部楼层
1、速速慢
正常,不过10M太慢了,应该把时间关键的代码通过分散加载放到ITCM,DTCM等里面刷新。

2、不稳定,要好好优化下,因为速度慢,稍复杂的应用跟不上趟。

最后,发你的测试代码,我给你优化优化。
回复

使用道具 举报

3

主题

4

回帖

13

积分

新手上路

积分
13
 楼主| 发表于 2022-2-28 14:52:33 | 显示全部楼层
090000000加MPU代码        

[C] 纯文本查看 复制代码
        MPU_InitStruct.Enable           = MPU_REGION_ENABLE;
        MPU_InitStruct.BaseAddress      = 0x90000000;
        MPU_InitStruct.Size             = MPU_REGION_SIZE_32MB;
        MPU_InitStruct.AccessPermission = MPU_REGION_FULL_ACCESS;
        MPU_InitStruct.IsBufferable     = MPU_ACCESS_BUFFERABLE;
        MPU_InitStruct.IsCacheable      = MPU_ACCESS_CACHEABLE;
        MPU_InitStruct.IsShareable      = MPU_ACCESS_NOT_SHAREABLE;
        MPU_InitStruct.Number           = MPU_REGION_NUMBER5;
        MPU_InitStruct.TypeExtField     = MPU_TEX_LEVEL1;
        MPU_InitStruct.SubRegionDisable = 0x00;
        MPU_InitStruct.DisableExec      = MPU_INSTRUCTION_ACCESS_ENABLE;

        HAL_MPU_ConfigRegion(&MPU_InitStruct);

速度上来, 写速度: 244MB/s了

回复

使用道具 举报

3

主题

4

回帖

13

积分

新手上路

积分
13
 楼主| 发表于 2022-2-28 14:56:54 | 显示全部楼层
0x90000000配置MPU属性好了,可以写速度: 244MB/s,读速度: 154MB/s
回复

使用道具 举报

3

主题

70

回帖

79

积分

初级会员

积分
79
发表于 2022-3-2 16:07:25 | 显示全部楼层
acybx609 发表于 2022-2-28 14:52
090000000加MPU代码       
MPU_InitStruct.Enable           = MPU_REGION_ENABLE;
        MPU_InitStruct.BaseAddre ...

你这是往cache里读写了,用大数据量再测试看看吧。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-17 17:11 , Processed in 0.218185 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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