0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

HPM6750 LVGL刷屏性能再提升?大神网友开辟片内新天地

先楫半导体HPMicro 2022-07-22 11:19 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

先楫体验官“RSCN”评测了HPM6750的coremark跑分后(原文请至EEWORLD搜索RSCN)又出干货!这次“RSCN”将为我们演示如何优化自己手中的HPM6750使它性能提升。

以下正文转自EEWORLD @RSCN

之前的coremark跑分测评中,在flash和ram运行的性能大致一样,主要的原因还是代码空间小于32K,这刚好是cache的空间范围内,HPM6750有32K ICACHE和32K DCACHE,性能上是最高的,所以跑分上,两者并没有太大的差距。

但是,如果代码空间超过了32K,这时候cache总会有用满的时候,也会有不命中的情况下,这时候需要考虑的正是系统资源和编译整合利用

下面以littlevgl的benchmark跑分例子要进行性能提升的一个验证方法,当然这仅仅作为参考,并不能决定大多数应用场景。

由于上个贴子说明了SPI的一点缺陷,会导致DMA的辅助功能提升并不大,在实际跑lvgl的时候,code放在flash,编译器使用segger,代码缺省优化,也其实没优化的情况下,生成的代码如下:

b51c1710-039c-11ed-9ade-dac502259ad0.png

那么按照这样烧录进去,weightied fps大概是120多左右

b5582e8a-039c-11ed-9ade-dac502259ad0.png

这是有点低了,先从lvgl的配置上去优化,lvgl的刷新周期,从30fps最大刷新率改为100fps刷新率,提升上也并不是很大,大概在160左右变动。

b585787c-039c-11ed-9ade-dac502259ad0.pngb59f55f8-039c-11ed-9ade-dac502259ad0.png

那么开O3优化的效果又是如何,再次烧录进去,weightied fps大概是174多左右

b5bd9676-039c-11ed-9ade-dac502259ad0.png

当然也试了以下方法,实验过程也忘了拍照,但是其实效果性能并没有提升多少,也就180左右变动

1、改为全尺寸双缓冲,但是其实这种对MCU屏幕有用,对于SPI屏幕上,效果并没多少。

2、改为非全尺寸双缓冲,大概五分之一局部刷新。

3、改为单缓冲局部刷新和单缓冲全尺寸刷新,效果均不大。

于是试着找了官方的技术,放假期间的,技术也在中午跟着我远程调试了下,换为GCC编译器,以及开启了相关优化,优化提升也不明显,大概也是180fps变动。

在调试的过程中,有个idea让楼主茅塞顿开,也就是官方技术建议把中断isr放在ram运行,但实际提升也不大。

于是楼主照着这个思路来看下性能有没有增加,也就是把核心的代码加载到ram中运行。好在HPM6750有足够的RAM来加载,根据手册可知道,两核心有SLV各512K,SRAM一共1M,这是足够加载很多核心代码。

b5eb93be-039c-11ed-9ade-dac502259ad0.png

说干就干,在代码上去实现的话,可以使用ATTR_RAMFUNC修饰符放在定义的函数前面,这样编译的时候就会加载到RAM运行。

在实际调试中,单纯几个函数的修饰并不能解决问题。也不可能去手动一个一个修饰,好在与SES可以可视化去操作加载。从ATTR_RAMFUNC,Link文件可看到。

ATTR_RAMFUNC是把函数放在了section的.fast中

b6175e0e-039c-11ed-9ade-dac502259ad0.png

从Link可看到,fast是放在了ILM_SLV的256K空间中

b62d4c00-039c-11ed-9ade-dac502259ad0.png

于是我们可以参考Link,自己在copy个link,把fast放在更大的RAM上,也就是SRAM上

b6445bc0-039c-11ed-9ade-dac502259ad0.png

那么ses如何去加载这些函数到RAM上了,跟keil类似

右键点击需要加载的文件夹,选择options

b658e702-039c-11ed-9ade-dac502259ad0.png

选择code段改为.fast,这样就可以一次搞定加载所有需要到RAM运行的函数。

b6768b90-039c-11ed-9ade-dac502259ad0.png

根据之前的调试性能,再加载核心的放在RAM中运行,烧录代码进去,奇迹的时刻,从122fps提升到286,整整提升了两倍性能,这已经对于SPI这个稍微缺陷IP,足够有帮助了。

b68d26ac-039c-11ed-9ade-dac502259ad0.png

于此总结:

1、在从代码优化,编译器优化上,可以提高性能。

2、在1的基础上,随着代码空间的增多,32k cache总有用完的时候,xip flash 也会有所损失性能,最好就是可以把主要的代码加载到RAM中运行,更可提高性能。

3、除了32K cache的加持,内部RAM整合也有足够2M,对于系统而言,是足够性能整合的。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式
    +关注

    关注

    5210

    文章

    20726

    浏览量

    338079
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    ADRF6750:950 MHz - 1575 MHz 集成式正交调制器的技术解析

    ADRF6750:950 MHz - 1575 MHz 集成式正交调制器的技术解析 在当今的通信领域,对于高性能、集成化的射频器件需求日益增长。ADRF6750 作为一款高度集成的正交调制器、频率
    的头像 发表于 05-08 17:30 321次阅读

    请问使用HPM6750连续读取norflash,程序会跑飞,是什么原因?求解

    使用这个读norflash函数 int norflash_read(uint32_t offset, void *buf, uint32_t size_bytes) { hpm
    发表于 04-08 23:12

    hpm6750 高频发送 udp_send 时 过一段时间就返回ERR_INPROGRESS

    现在发生的异常是 运行环境是 hpm6750 开发的一个例程 是用lwip 裸机(无os) 每500us 发送一个 udp请求 开始运行的时候正常 运行一段时间后就返回ERR_INPROGRESS
    发表于 04-06 21:49

    固件烧录速度实测:JTAG比UART快6.8倍

    推出的工业级LGA封装核心板,搭载先楫半导体HPM6450/HPM6750芯片,集成4路CANFD、双千兆以太网及15路串口等工业通信接口,适用于PLC、运动控制、
    的头像 发表于 01-27 11:34 492次阅读
    固件烧录速度实测:JTAG比UART快6.8倍

    hpm6750 两个板载网卡+usbcdc_ecm网卡,多次调用ftp,切换网卡后,报错

    hpm6750 两个板载网卡+usbcdc_ecm网卡,多次调用ftp,多次切换网线后,出现报错pbuf_free:p->ref>0;有时候出现[E
    发表于 01-19 16:05

    瑞萨电子携手LVGL PRO推进嵌入式图形用户界面开发

    随着嵌入式设备对用户体验要求的不断提升,图形用户界面(GUI)成为产品开发越来越重要的一环。作为目前最流行的开源嵌入式图形库之一的LVGL,最近就推出了自己的商业化专业UI编辑器LVGL PRO 1.0版本。
    的头像 发表于 11-21 10:23 1960次阅读
    瑞萨电子携手<b class='flag-5'>LVGL</b> PRO推进嵌入式图形用户界面开发

    重大更新,LVGL有UI编辑器用了,2秒加载,快到飞起!

    LVGL终于有UI编辑器可以用了,就在10月16日,LVGL官方发布了LVGLProv1.0的候选版本!下面就跟随触觉智能,为您详细解析LVGLPro功能特色:在Linux嵌入式开发领域,LVGL
    的头像 发表于 10-21 12:58 2124次阅读
    重大更新,<b class='flag-5'>LVGL</b>有UI编辑器用了,2秒<b class='flag-5'>内</b>加载,快到飞起!

    【上海晶珩睿莓1开发板试用体验】移植LVGL9.3并使用32位色进行显示

    在之前的开发板试用帖子中,我使用Linux开发板来移植LVGL9.1,而LVGL9系版本目前最新更新到9.3(master分支,release版本),在最新版本中加入了3D图形的初步支持(完整
    发表于 09-18 00:52

    基于RTThread nano的LVGL线程卡顿怎么解决?

    ) { lv_timer_handler(); rt_thread_mdelay(5); } } 现象是该线程能运行,但触控检测和刷屏都特别慢,CPU占用率一直是99%,裸机运行LVGL是流畅的,移植了nano就很卡,可有偿
    发表于 09-09 06:04

    新华三的网络杠杆,撬动AI智算新天地

    给新华三一根网络杠杆,撬动智能中国的算力未来
    的头像 发表于 09-06 10:10 1775次阅读
    新华三的网络杠杆,撬动AI智算<b class='flag-5'>新天地</b>

    HPM monitor studio 只能在 hpm芯片+hpm_sdk 的组合下才能用吗?

    使用 hpm6200evk开发板,但未使用hpm_sdk。 然后编译的固件elf无法在hpm monitor studio解析成功。所以说必须要使用hpm_sdk 才可以使用
    发表于 08-28 09:36

    先楫半导体高性能MCU入驻立创商城,国产芯势力添新动能

    先楫半导体(HPMicro)宣布其全系列高性能MCU芯片正式上架立创商城(LCSC),标志着国产高端MCU在供应链渠道与生态服务方面迈上新台阶,国产芯势力添新动能。先楫半导体此次入驻涵盖
    的头像 发表于 07-31 08:32 1459次阅读
    先楫半导体高<b class='flag-5'>性能</b>MCU入驻立创商城,国产芯势力<b class='flag-5'>再</b>添新动能

    CSC7137B 应用指南:小功率电源管理革新方案

    场景中开辟出一新天地。接下来,我们将深入剖析CSC7137B的卓越特性,并结合实际应用场景,提供一套完整且详尽的应用指南。晶源微代理-粤华信科技全系统供应​一、
    的头像 发表于 07-18 15:14 2455次阅读
    CSC7137B 应用指南:小功率电源管理革新方案

    【EASY EAI Orin Nano开发板试用体验】移植LVGL9.1(C语言工程)

    本帖最后由 donatello1996 于 2025-7-7 19:38 编辑 从LVGL的GIT下载源码并解压,版本9.1: 在Makefile里面添加所有要用到的LVGL源文件,注意
    发表于 07-04 23:27

    【产品介绍】闪射法导热仪LFA 467 HyperFlash

    闪射法导热仪LFA467HyperFlash开创热扩散系数与导热系数测量的新天地LFA467HyperFlash基于闪射法原理,可在-100~500°C之间精确测量材料的热扩散系数、比热与导热系数
    的头像 发表于 06-25 11:33 1348次阅读
    【产品介绍】闪射法导热仪LFA 467 HyperFlash