在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

HPM6750 LVGL刷屏性能再提升?大神網(wǎng)友開辟片內(nèi)新天地

先楫半導(dǎo)體HPMicro ? 2022-07-22 11:19 ? 次閱讀

先楫體驗官“RSCN”評測了HPM6750的coremark跑分后(原文請至EEWORLD搜索RSCN)又出干貨!這次“RSCN”將為我們演示如何優(yōu)化自己手中的HPM6750使它性能提升。

以下正文轉(zhuǎn)自EEWORLD @RSCN

之前的coremark跑分測評中,在flash和ram運行的性能大致一樣,主要的原因還是代碼空間小于32K,這剛好是cache的空間范圍內(nèi),HPM6750有32K ICACHE和32K DCACHE,性能上是最高的,所以跑分上,兩者并沒有太大的差距。

但是,如果代碼空間超過了32K,這時候cache總會有用滿的時候,也會有不命中的情況下,這時候需要考慮的正是系統(tǒng)資源和編譯整合利用。

下面以littlevgl的benchmark跑分例子要進行性能提升的一個驗證方法,當(dāng)然這僅僅作為參考,并不能決定大多數(shù)應(yīng)用場景。

由于上個貼子說明了SPI的一點缺陷,會導(dǎo)致DMA的輔助功能提升并不大,在實際跑lvgl的時候,code放在flash,編譯器使用segger,代碼缺省優(yōu)化,也其實沒優(yōu)化的情況下,生成的代碼如下:

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

那么按照這樣燒錄進去,weightied fps大概是120多左右

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

這是有點低了,先從lvgl的配置上去優(yōu)化,lvgl的刷新周期,從30fps最大刷新率改為100fps刷新率,提升上也并不是很大,大概在160左右變動。

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

那么開O3優(yōu)化的效果又是如何,再次燒錄進去,weightied fps大概是174多左右

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

當(dāng)然也試了以下方法,實驗過程也忘了拍照,但是其實效果性能并沒有提升多少,也就180左右變動

1、改為全尺寸雙緩沖,但是其實這種對MCU屏幕有用,對于SPI屏幕上,效果并沒多少。

2、改為非全尺寸雙緩沖,大概五分之一局部刷新。

3、改為單緩沖局部刷新和單緩沖全尺寸刷新,效果均不大。

于是試著找了官方的技術(shù),放假期間的,技術(shù)也在中午跟著我遠程調(diào)試了下,換為GCC編譯器,以及開啟了相關(guān)優(yōu)化,優(yōu)化提升也不明顯,大概也是180fps變動。

在調(diào)試的過程中,有個idea讓樓主茅塞頓開,也就是官方技術(shù)建議把中斷isr放在ram運行,但實際提升也不大。

于是樓主照著這個思路來看下性能有沒有增加,也就是把核心的代碼加載到ram中運行。好在HPM6750有足夠的RAM來加載,根據(jù)手冊可知道,兩核心有SLV各512K,SRAM一共1M,這是足夠加載很多核心代碼。

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

說干就干,在代碼上去實現(xiàn)的話,可以使用ATTR_RAMFUNC修飾符放在定義的函數(shù)前面,這樣編譯的時候就會加載到RAM運行。

在實際調(diào)試中,單純幾個函數(shù)的修飾并不能解決問題。也不可能去手動一個一個修飾,好在與SES可以可視化去操作加載。從ATTR_RAMFUNC,Link文件可看到。

ATTR_RAMFUNC是把函數(shù)放在了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如何去加載這些函數(shù)到RAM上了,跟keil類似

右鍵點擊需要加載的文件夾,選擇options

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

選擇code段改為.fast,這樣就可以一次搞定加載所有需要到RAM運行的函數(shù)。

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

根據(jù)之前的調(diào)試性能,再加載核心的放在RAM中運行,燒錄代碼進去,奇跡的時刻,從122fps提升到286,整整提升了兩倍性能,這已經(jīng)對于SPI這個稍微缺陷IP,足夠有幫助了。

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

于此總結(jié):

1、在從代碼優(yōu)化,編譯器優(yōu)化上,可以提高性能。

2、在1的基礎(chǔ)上,隨著代碼空間的增多,32k cache總有用完的時候,xip flash 也會有所損失性能,最好就是可以把主要的代碼加載到RAM中運行,更可提高性能。

3、除了32K cache的加持,內(nèi)部RAM整合也有足夠2M,對于系統(tǒng)而言,是足夠性能整合的。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 嵌入式
    +關(guān)注

    關(guān)注

    5095

    文章

    19189

    瀏覽量

    307992
收藏 人收藏

    評論

    相關(guān)推薦

    高速鏈路設(shè)計難?利用HPM6750雙千兆以太網(wǎng)透傳實現(xiàn)LED大屏實時控制

    HPM6750雙千兆以太網(wǎng)透傳方案演示LED大屏顯示系統(tǒng)利用發(fā)光二極管構(gòu)成的點陣模塊或像素單元組成大面積顯示屏顯示字符、圖像等信息,具有低功耗、低成本、高亮度、長壽命、寬視角等優(yōu)點,近年來隨著
    的頭像 發(fā)表于 02-08 13:45 ?59次閱讀
    高速鏈路設(shè)計難?利用<b class='flag-5'>HPM6750</b>雙千兆以太網(wǎng)透傳實現(xiàn)LED大屏實時控制

    錦浪科技以光伏技術(shù)助力高校人才培養(yǎng)

    校企聯(lián)動升級,開辟教研新天地。錦浪在上海交大二期教研試點項目的成功落地,不僅展示了最前沿的光伏技術(shù),還推動了產(chǎn)學(xué)研深度融合,成為一本生動的高科技光伏教科書。
    的頭像 發(fā)表于 02-07 17:08 ?177次閱讀

    夢芯科技精彩亮相CHINTERGEO 2024

    近日,以“智繪新天地 數(shù)領(lǐng)測繪展未來”為主題的測繪地理信息裝備行業(yè)展會CHINTERGEO 2024在湖北武漢中國光谷科技會展中心盛大開幕。
    的頭像 發(fā)表于 11-07 16:32 ?558次閱讀

    如何做一個hpm6750evk2的bootloader?

    我正在做一個hpm6750evk2的bootloader。設(shè)計很簡單,boot工程代碼只做跳轉(zhuǎn)到1M后的APP工程代碼處,APP工程就是做的一個點燈的程序而已,boot、APP工程都是跑
    發(fā)表于 10-23 19:01

    HPM6750 Bootloader設(shè)計

    我正在做一個hpm6750evk2的bootloader。設(shè)計很簡單,boot工程代碼只做跳轉(zhuǎn)到1M后的APP工程代碼處,APP工程就是做的一個點燈的程序而已,boot、APP工程都是跑
    發(fā)表于 10-23 18:59

    HPM6750evkmini如何實現(xiàn)可信的執(zhí)行環(huán)境?

    HPM6700的datasheet中的1.2.15 信息安全系統(tǒng)有提到“基于BOOT ROM 的安全啟動機制,支持加密啟動,支持可信的執(zhí)行環(huán)境”,請問可信的執(zhí)行環(huán)境如何實現(xiàn)的?有相關(guān)的Demo或者資料嗎?是類似于TFM這樣的嗎?
    發(fā)表于 09-25 09:27

    hpm_manufacturing_tool linux 版本 選擇 hidraw 連接等待超時

    _manufacturing_tool_gui linux 版本 選擇 hidraw 連接 HPM6750 芯片,能識別到 hidraw 設(shè)備,單擊連接是提示重啟芯片這個時候會等待超時然后軟件報錯,此時查看 lsusb 設(shè)備是檢測不到 hpm6750
    發(fā)表于 08-07 16:43

    esp32-s3驅(qū)動rgb屏刷屏卡頓,花屏是什么原因?

    esp32-s3驅(qū)動rgb屏,根據(jù)test_rgb_panel.c,但是刷屏太卡頓了,運行lvgl的demo,fps為0,想請教一下rgb屏參(proch)和esp32-s3的設(shè)置,提高刷屏流暢度
    發(fā)表于 06-19 06:21

    【Vision Board創(chuàng)客營連載體驗】RA8D1-Vision Board 移植LVGL8.3驅(qū)動庫和觸摸屏驅(qū)動代碼

    ,與液晶屏驅(qū)動代碼一致: disp_flush函數(shù)中設(shè)置抽象刷屏函數(shù)為描點方式或者G2D加速方式,都可以實現(xiàn)LVGL刷屏LVGL初始化函數(shù)中設(shè)置
    發(fā)表于 05-13 19:53

    先楫半導(dǎo)體 hpm_sdk v1.5.0 正式發(fā)布

    hpm6750evk hpm6750evk2 hpm6750evkmini hpm6300evk hpm6200evk
    發(fā)表于 04-08 11:14

    先楫HPM5361EVK開發(fā)板,網(wǎng)友測評效果(二)

    EEWORLD)的支持,本文整理了網(wǎng)友@qinyunti的優(yōu)秀報告,小伙伴們先睹為快!#1開發(fā)板介紹與視頻HPM5361EVK是基于先楫HPM5300系列高性能RISC
    的頭像 發(fā)表于 03-12 08:16 ?2381次閱讀
    先楫<b class='flag-5'>HPM</b>5361EVK開發(fā)板,<b class='flag-5'>網(wǎng)友</b>測評效果(二)

    RTThread的定時器中斷時間不準確,會有us級的抖動的原因?

    我在用hpm6750定時器,通過定時器中斷周期處理函數(shù),周期1ms,但是定時器的每周期時間都會飄,會有us級的抖動,我的中斷回調(diào)函數(shù)如下: int us_temp[1000]; int us_idx
    發(fā)表于 02-23 07:09

    HPM6750體驗ADC

    1、新建RTT工程,工程中添加對ADC的驅(qū)動: 2、保存工程后,添加測試代碼。 3、我們根據(jù)原理圖上的J10接個,只有PE29是ADC3的輸出通道 4、先定義通道、任務(wù) #define ADC_DEV_NAME\"adc3\"/* ADC 設(shè)備名稱 */ #define ADC_DEV_CHANNEL2/* ADC 通道 */ #define REFER_VOLTAGE 330/* 參考電壓 3.3V,數(shù)據(jù)精度乘以100保留2位小數(shù)*/ #define CONVERT_BITS(1 << 16)/* 轉(zhuǎn)換位數(shù)為16位 */ 5、添加任務(wù): static void Adc_entry(void* paremeter) { rt_adc_device_t adc_dev; rt_uint32_t value,vol; rt_err_t ret = RT_EOK; adc_dev = (rt_adc_device_t)rt_device_find(ADC_DEV_NAME); if (adc_dev == RT_NULL) { rt_kprintf(\"adc sample run failed! can\'t find %s device!\\\\n\", ADC_DEV_NAME); } /* 使能設(shè)備 */ ret = rt_adc_enable(adc_dev, ADC_DEV_CHANNEL); if(ret == RT_EOK) { rt_kprintf(\"adc sample run success!find %s device!\\\\n\", ADC_DEV_NAME); } while(1) { /* 讀取采樣值 */ value = rt_adc_read(adc_dev, ADC_DEV_CHANNEL); rt_kprintf(\"the value is :%d \\\\n\", value); /* 轉(zhuǎn)換為對應(yīng)電壓值 */ vol = value * REFER_VOLTAGE / CONVERT_BITS; rt_kprintf(\"the voltage is :%d.%02d \\\\n\", vol / 100, vol % 100); rt_thread_delay(500); } } 7、在主函數(shù)里啟用任務(wù) Adc_thread = rt_thread_create(\"adc1\", Adc_entry, RT_NULL, 512, 16, 20); if(Adc_thread != RT_NULL) rt_thread_startup(Adc_thread); else return -1;
    發(fā)表于 02-17 16:00

    解決HPM6750EVK2jlink下載

    拿到HPM6750EVK2,使用jlink下載時,我原來用買jlink配的20轉(zhuǎn)10轉(zhuǎn)接板進行連接,下載程序里一直報不能連接到開發(fā)板。經(jīng)過查找用手冊后,找到了問題。 我的jlink的引腳圖與之不對
    發(fā)表于 02-16 10:30

    先輯HPM6570用Jlink下載程序出錯

    as current target interface. J-Link>jtagconf -1 -1 J-Link>exec device=HPM6750xVMx Device
    發(fā)表于 02-16 09:32
    主站蜘蛛池模板: 美女网站在线观看视频18 | 怡红院日本一道日本久久 | 国产偷窥女洗浴在线观看亚洲 | 色婷婷亚洲精品综合影院 | 7m凹凸精品分类大全免费 | 女a男0攻巨肉高h | 三级理论在线播放大全 | 国产色妞妞在线视频免费播放 | 成 人 在 线 免费 8888 www | 欧美视频不卡一区二区三区 | 欧美色视频超清在线观看 | 狠狠色丁香婷婷综合久久片 | 啪啪网站免费看 | 欧美伊人| 欧美黑粗特黄午夜大片 | 欧美性一区 | 亚洲成人免费看 | 最近免费 | 色五月丁香五月综合五月 | 日本xxxx18vr69 | 在线日韩一区 | 狠狠色丁香久久婷婷综合丁香 | 久久精品国产99国产精品免费看 | 日本人色道 | 激情理论| 日本日本69xxxx | 51国产午夜精品免费视频 | 美女牲交视频一级毛片 | 欧美黄网站 | 国产精品成人va在线观看入口 | 日韩免费网站 | 精品一精品国产一级毛片 | 男人j进女人j的一进一出视频 | tom影院亚洲国产日本一区 | 伊人丁香婷婷综合一区二区 | 日日操天天操夜夜操 | 777午夜精品免费播放 | 国产精品资源网站在线观看 | 午夜看片在线 | 成年视频在线观看 | 久久国产精品久久久久久久久久 |