news 2026/5/1 0:56:10

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/5/1 3:46:30

LangGraph4j 入门

LangGraph4j 是一个 Java实现的开源 AI 工作流框架,它受到了 Python 版本 LangGraph的启发,能够与 LangChain4j 和 Spring AI无缝集成,而且这个框架还是开源的。 核心特性 1、StateGraph 工作流图 在LangGraph4j 中,StateGraph 是…

作者头像 李华
网站建设 2026/5/1 4:45:41

AI数字人小程序开发实战:基于系统源码的快速落地方案

这两年,AI数字人从概念迅速走向商业化落地。无论是品牌营销、知识付费,还是企业客服、直播带货,越来越多的企业开始意识到:不是要不要做数字人,而是如何用更低成本、更快速度做出一个能用、好用、可扩展的数字人产品。…

作者头像 李华
网站建设 2026/4/17 16:46:03

AI数字人小程序怎么做?从系统源码到产品上线全流程

这两年,“AI数字人”几乎成了企业数字化转型中的高频词。从数字主播、数字客服,到企业IP形象、知识型博主,AI数字人正在被越来越多地应用到实际业务中。而基于小程序的AI数字人产品,因为门槛低、传播快、易变现,也成为…

作者头像 李华
网站建设 2026/4/28 6:28:30

训练 分心驾驶行为识别模型 ,支持从分类任务到目标检测任务的多种应用场景。17类驾驶员疲劳驾驶状态检测数据集的训练及应用 YOLOV8疲劳驾驶检测系统

驾驶员分心驾驶目标检测数据集 SFDDD数据集基础上加入自己创建的数据 数据集提供标签文件 yolo和voc两种标注方式 类别数量:17类 类别名称: 每一类图像数 ,每一类标注数 Safe Driving 2056,2056 Texting right 1331,1331 Calling right 1343,1343 Text…

作者头像 李华
网站建设 2026/4/12 6:43:14

句柄到底是个啥?

文章目录1、什么是句柄?2、句柄与普通指针的区别?1、什么是句柄? 句柄(Handle)是一个是用来标识对象或者项目的标识符,可以用来描述窗体、文件等,值得注意的是句柄不能是常量—引自科学百科通过…

作者头像 李华