STM32的内部SRAM和外部SRAM读取速度对比

前言

在STM32的SRAM不足时,我们第一时间会想到使用外部SRAM扩展SRAM。外部的SRAM读取速度显然会比内部SRAM低,但这一差别有多大呢?本文以F407ZGT6单片机为例,测试其内部SRAM读取速度和外部扩展的型号为IS62WV51216的SRAM读取速度。

测试方法

(1)TIM2和TIM5级联构成64位us时间基准,用于测量读取SRAM耗时

(1)中描述的级联方法可参考stm32定时器级联提供64位时间基准[HAL库]_Max_kevin的博客-CSDN博客_stm32 定时器级联

(2)分别以u8、u16、u32、u64为单位读取SRAM对比内部SRAM和外部SRAM速度差异

(3)每次读取测试执行的汇编指令均相同,不同的只是读取内部或外部SRAM

测试结果

1.以u8为单位读取SRAM

单位SRAM类型耗时(us)速度(MB/s)
u8内部61562162.438
外部49846920.061

2.以u16为单位读取SRAM

单位SRAM类型耗时(us)速度(MB/s)
u16内部62659319.188
外部49956740.035

3.以u32为单位读取SRAM

单位SRAM类型耗时(us)速度(MB/s)
u32内部62658638.386
外部112371835.596

4.以u64为单位读取SRAM

单位SRAM类型耗时(us)速度(MB/s)
u64内部499809160.061
外部293351627.271

内部SRAM和外部SRAM读取速度对比图:

 

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
### 回答1: STM32外部SRAM是一种可扩展的静态随机存取存储器,用于扩大STM32微控制器的存储容量。进行外部SRAM的简单测试,可以通过以下步骤进行。 1. 硬件连接:将外部SRAMSTM32微控制器连接。通常,外部SRAM的地址线和数据线需要与STM32微控制器的对应引脚相连。此外,还需连接外部SRAM的控制线,如读写使能线和使能线等。 2. 引脚配置:通过寄存器配置,将STM32微控制器的引脚配置为外部SRAM的读写引脚。这需要使用STM32的开发工具和相关文档来确定引脚配置寄存器和位。 3. 初始化外部SRAM:通过编写适当的初始化函数,将外部SRAM的控制寄存器配置为正常操作模式。这包括设置外部SRAM的访问模式、时序和其他参数。 4. 编写测试函数:编写一个简单的测试函数,用于读写外部SRAM。可以设计一个简单的读写流程,例如先写入一些数据,然后再从相同地址读取并验证数据是否正确。 5. 运行测试:通过调用测试函数,使用STM32的调试工具或调试输出功能,在外部SRAM上执行测试操作。可以使用断点、变量监视等功能来验证读写操作的正确性。 6. 分析结果:检查测试函数的输出结果,确保数据能够正确地从外部SRAM读取并验证。如果测试中出现任何错误,应根据错误信息和STM32相关文档进行排查进一步分析问题的原因。 通过以上步骤,可以进行STM32外部SRAM的简单测试。这样可以确保外部SRAM能够正常工作,并且STM32微控制器可以正确地读写和操作外部SRAM中的数据。 ### 回答2: 对于stm32来说,外部的SRAM是一个很有用的扩展,可以提供更大的存储空间。为了测试外部SRAM,首先需要确保正确连接SRAM芯片与stm32外部总线上。然后,我们可以通过以下步骤进行简单的测试: 1. 设置STM32寄存器:首先,需要配置stm32的时钟和GPIO寄存器,以确保外部SRAM的正确访问。具体设置可参考stm32的技术手册。 2. 初始化外部SRAM:通过STM32的外设和存储器控制器,初始化外部SRAM。可以使用CMSIS库函数来设置存储器控制器,并分配必要的存储器区域。 3. 写入数据:选择一个地址,将测试数据写入外部SRAM。可以通过存储器地址直接写入数据,也可以使用C编程语言中的指针和赋值操作来写入数据。 4. 读取数据:读取刚才写入的数据,可以使用相同的存储器地址或指针操作来读取外部SRAM中的数据。 5. 验证数据:将写入的数据与读取的数据进行比较,确保数据的一致性。如果写入和读取的数据完全相同,则说明外部SRAM正常工作,测试通过。 需要注意的是,对于不同的芯片和外部SRAM芯片,具体的配置和测试方法可能会有所不同。因此,最好参考相关芯片的技术手册和示例代码进行配置和测试。 ### 回答3: STM32外部SRAM的简单测试流程如下: 1. 配置外部SRAM引脚:根据具体板级设计,连接外部SRAM接口的引脚到STM32的对应引脚,并确保引脚映射正确。 2. 初始化外部SRAM:在STM32的代码中,根据SRAM的规格及芯片型号,设置对应的控制寄存器和时序参数。这些参数包括如读写延时、时钟速率等。可以使用STM32的库函数或者直接读写内存地址来进行SRAM的初始化。 3. 编写测试代码:创建一个简单的测试函数来读写外部SRAM。可以通过写入一个特定的数据模式到SRAM中的某个地址,并从相同地址读取数据,并比较读取到的数据是否与之前写入的数据一致。 4. 执行测试代码:将测试代码下载到STM32上,运行代码,并使用调试工具监视SRAM的读写操作。确保SRAM的读写操作正常,并且读取到的数据与写入的数据一致。 5. 分析测试结果:通过观察测试结果,判断SRAM是否正常工作。如果读写操作均成功,并且读取到的数据与写入的数据完全一致,则可以确认外部SRAM的连接和初始化均正确。 需要注意的是,外部SRAM测试还应该考虑其他因素,例如并发访问、地址映射等。此外,在进行SRAM测试之前,还应确认外部SRAM的电源和时钟等硬件配置是否正确。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

NW嵌入式开发

感谢您的支持,让我们一起进步!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值