当前位置: 首页 > news >正文

linux下RP2350芯片rt-thread开发(四)SRAM性能测试优化

一、前言

之前的文章中我仅通过rt-thread系统配置未改动源码的情况下,就在RP2350芯片上跑起了系统和测试。CPU性能测试能完美完成,但用MemoryPerf工具的默认配置去测试SRAM性能还不能精确完成,误差会有些大。本文说明如何优化RP2350芯片的SRAM性能测试。

二、测试源码修改

2.1 MemoryPerf工具修改

MemoryPerf工具测试的目标是测试cpu对内存的连续读写性能。

MemoryPerf的默认配置是给大块内存(比如1MB)读写性能测试准备的,对整个内存块的单次读测试或者写测试的重复次数是200次,所以,对1MB内存进行测试会产生200MB的数据量。MCU对这种量级的数据读写耗时一般以秒计,从系统获得的计时值与实际耗时之间的误差可以忽略,测试运行结果会很精确。但用默认的200次重复计数测量小块内存时,比如4KB的内存块,只测试800KB的数据量,MCU实际完成时间是毫秒级的,而从系统获得的计时值是10毫秒的整数倍,会造成从系统获得的计时值与实际耗时之间的误差比较大,测试运行结果不精确。

所以,对于小内存块测试需要增大测试重复次数值,但该值无法通过menuconfig配置,只能修改源码。

测试重复次数值由工程的packages/MemoryPerf-latest/src/mem_pef.c文件里的ITERATIONS宏定义,默认值是200,我改成了20000。这样小块内存性能测试就能比较精确。

2.2 rt-thread修改

从上面的RP2350芯片系统总线连接图可以看出,芯片的520KB SRAM其实分了3大块:

  • 4x64KB的SRAM0-3:地址0x20000000~0x2003FFFF
  • 4x64KB的SRAM4-7:地址0x20040000~0x2007FFFF
  • 2x4KB的SRAM8-9:地址0x20080000~0x20081FFF

据此,我修改了rt-thread内存配置,在工程的board/board.h文件中,把PICO_SRAM_SIZE宏从520改成256。

这样就把RP2350芯片520KB SRAM内存的前256KB(即SRAM0-3)给rt-thread系统使用,剩下SRAM的可以进行内存测试。这样,系统内存和测试内存在逻辑上和物理上完全独立,互不干扰。

三、测试及结果

将修改的代码编译下载到pico2兼容板上后,先运行了SRAM4-7的4KB、16KB、32KB块测试。

4KB测试结果:

16KB测试结果:

32KB测试结果:

可以看出RP2350片上arm核对SRAM 4KB及以上数据块的内存读写性能基本相同。arm核32bit写性能达到了近400MBps,32bit读性能达到了240MBps。

下面是SRAM8-9的4KB块测试。

结果与SRAM4-7一致。

http://www.cnnetsun.cn/news/91838.html

相关文章:

  • 前沿技术借鉴研讨-2025.12.16(超声心动图综述/妊娠期糖尿病/降低CTG解读主观性)
  • 别让发成绩,耗掉你课后的半小时
  • 企业级 Prompt 管理中心:实验分流 + 曝光埋点 + 可回溯,版本化/AB/DSL/可观测全齐
  • 执行 install.sh 报错 `env: ‘bash\r‘: No such file or directory` 怎么解决?
  • Part 10|我给这套系统划的第一个边界
  • agent-zh.md
  • 为什么过滤 rtmpt 而不是 rtmp?
  • Navicat x 达梦技术指引 | 启用和配置AI助手
  • Transformer的注意力权重的理解
  • 解构 Codigger:从内核到无限生态的“进化阶梯”
  • 基于Python的高考志愿报名推荐系统源码设计与文档
  • 飞桨PaddlePaddle入门与核心实践
  • 使用ZYNQ芯片和LVGL框架实现用户高刷新UI设计系列教程(第四十讲)
  • 热销榜单:2025年高口碑数字人推荐,解决你的选择难题!
  • 应“双碳”考核!安科瑞通信机房能耗监测方案,让PUE管控精准落地
  • 1天净流入10亿!A500ETF南方凭什么成为布局中国核心资产的优选?
  • Android 基础入门教程之RelativeLayout(相对布局)
  • 基于微信小程序的跑腿系统的设计与实现毕业设计项目源码
  • 基于SpringBoot的社区老年人健康知识阅读分享管理系统毕业设计项目源码
  • MySQL迁移达梦数据库,Quartz报错“无效的表或视图名”
  • Dify入门:搭建一个文件翻译智能体
  • 基于SpringBoot的金丰旺零售商经营平台系统毕业设计项目源码
  • Git:分布式版本控制的哲学、理论与创新
  • 农业产量预测的终极方案:R语言中XGBoost+随机森林+ARIMA融合技巧
  • 为什么90%的团队都选错了Dify排序算法?真相在这里!
  • 揭秘云原生Agent网络难题:如何高效配置Docker容器通信
  • 基于Python的电商用户购买行为数据分析系统设计与实现(源代码+文档+PPT+调试+讲解)
  • 为什么你的Dify模型加载总失败?这3个坑90%的人都踩过
  • ClaudeCode 实战指南(五):SubAgent 深度解析与专家团队构建
  • 【干货收藏】从零开始构建知识图谱:9大核心技术详解!