news 2026/6/10 4:15:12

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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一致。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/8 21:11:40

算法题 重构字符串

重构字符串 问题描述 给定一个字符串 s,检查是否能重新排列其中的字符,使得任意两个相邻的字符都不相同。 如果可以重新排列,返回任意一个满足条件的字符串。如果不能,返回空字符串 ""。 示例: 输入: s &qu…

作者头像 李华
网站建设 2026/6/9 11:03:12

无人机红外图像下极小目标检测数据集,无人机红外小目标检测数据集 低空安防、机场净空监测、反无人机系统、鸟类迁徙监控 YOLOv8** 构建的 **无人机红外图像下极小目标检测系统

无人机红外图像下极小目标检测数据集,8302张,yolo和voc两种标注方式 4类,标注数量: Plane:飞机 2163 Drone:无人机 3120 Heli:直升机 2217 Bird:鸟类 1958 image num: 8302 1 1 以下是 无人机红外图像下极小目标检测数据集 的完…

作者头像 李华
网站建设 2026/6/8 13:59:44

qt-lambda信号槽机制

想要调查&#xff0c;lambda信号槽在用完后会不会自己回收 写入成员变量 private: std::function<void()> lambdaSlot; 初始化 lambdaSlot []() {qDebug() << "Lambda slot executed";// 可访问类成员&#xff08;如this指针&#xff09;};cpp代码展示…

作者头像 李华
网站建设 2026/6/8 13:34:03

Anaconda概述+零基础安装教程及虚拟环境配置教程

目录 一、Anaconda概述 核心优势 1、一站式环境管理 2、拥有强大的包管理能力 3、简化部署 4、附加工具 二、安装过程 1、下载安装包 2、安装软件 3、验证安装是否成功 一、Anaconda概述 Anaconda 是一个开源的 Python/R 数据科学发行版&#xff0c;由 Anaconda, Inc.&#xf…

作者头像 李华
网站建设 2026/6/6 17:29:06

Java面试题含答案——2025年最新完整分享,收藏这篇就够了

目录 前言 一、基础篇 1.1.Java语言有哪些特点 1.2.面向对象和面向过程的区别 1.3.八种基本数据类型的大小&#xff0c;以及他们的封装类 1.4.标识符的命名规则。 1.5.instanceof 关键字的作用 1.6.Java自动装箱与拆箱 1.7.重载和重写的区别 1.8.equals与的区别 1.9…

作者头像 李华
网站建设 2026/6/10 4:29:33

【编号645】全国省市县行政区划矢量数据2025年更新

今天小编整理分享的是 全国省市县行政区划矢量数据2025年更新 。市边界省边界县边界概况数据概况全国省市县行政区划矢量数据2025年更新全国省市县行政区划矢量数据2025年更新。shp/geojson数据&#xff0c;WGS84坐标系。包括我国省份、地级市、区县三个层级的行政区划矢量数…

作者头像 李华