<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
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,對于系統而言,是足夠性能整合的。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 嵌入式
    +關注

    關注

    5001

    文章

    18394

    瀏覽量

    291010
收藏 人收藏

    評論

    相關推薦

    解決HPM6750EVK2jlink下載

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

    開創數實融合新天地,上海市工商聯數字經濟商會成立

    1 2月21日, 由西井科技等18家滬上數字經濟領軍企業共同發起的上海市工商聯數字經濟商會 正式成立,并召開第一屆一次會員大會和“開創數實融合新天地“主題論壇。上海市委常委、統戰部部長陳通出席會議
    的頭像 發表于 12-22 17:10 ?212次閱讀
    開創數實融合<b class='flag-5'>新天地</b>,上海市工商聯數字經濟商會成立

    Linux 下編譯HPM_Math 工程報錯

    /hpm/hpm_sdk/soc/HPM6750/toolchains/gcc/flash_xip.ld -- Segger device name: HPM6750xVMx -- S
    發表于 12-20 12:54

    分享一款獨一無二的放大器—FUTEK IAA105

    IAA105是一款獨一無二的放大器,在傳感器電子領域開辟新天地。
    的頭像 發表于 12-13 09:14 ?229次閱讀

    RT_thread studio中如何配置先輯的hpm_math數學庫?

    hpm6750不知道如何在RTThread studio中使用hpm_math中的數學庫,想要使用libdspf.a,但是不知道如何配置
    發表于 12-06 18:32

    【深度測評】HPM6750 MCU片內16位ADC精度測試

    【深度測評】HPM6750 MCU片內16位ADC精度測試
    的頭像 發表于 10-30 17:43 ?2051次閱讀
    【深度測評】<b class='flag-5'>HPM6750</b> MCU片內16位ADC精度測試

    想找一個先楫半導體的HPM6750 使用linux剪裁操作系統的例程

    想找一個先楫半導體的HPM6750 使用linux剪裁操作系統的例程,SDK里給了FREERT的,沒有LINUX的。哪里可以下載的到?
    發表于 10-25 16:18

    HPM6750 從 XPI0 CB 端口啟動

    XPI0CA端口的引腳,如下圖所示。所以最后選擇了XPI0的CB端口用于連接NORFlash。部分引腳復用功能(來源:HPM6750數據手冊)XPI部分原理圖2問題在HP
    的頭像 發表于 10-21 08:18 ?562次閱讀
    <b class='flag-5'>HPM6750</b> 從 XPI0 CB 端口啟動

    HPM6750從XPI0 CB端口啟動步驟

    在我的某個項目中由于希望把板子做的小一點,所以選擇了 BGA196 封裝的 HPM6750IAN2 芯片,在畫板子的過程中,注意到相比 BGA289 封裝的 HPM6750IVM2 芯片,其并沒有
    的頭像 發表于 10-20 14:42 ?468次閱讀
    <b class='flag-5'>HPM6750</b>從XPI0 CB端口啟動步驟

    HPM6750 ADC EVK用戶使用手冊

    電子發燒友網站提供《HPM6750 ADC EVK用戶使用手冊.pdf》資料免費下載
    發表于 09-19 15:46 ?0次下載
    <b class='flag-5'>HPM6750</b> ADC EVK用戶使用手冊

    HPM6750支持硬件串口空閑中斷檢測嗎?

    使用官方的SDK1.2打開uart_hardware_rx_idle例程后終端輸入指令generate_project -list后顯示支持hpm6750evkmini 但是使用指令
    發表于 09-05 13:49

    HPM SDK Linux開發環境搭建指南

    準備 硬件環境準備 HPM MCU的開發板:例如HPM6750 EVK開發板或HPM6750 EVK mini開發板。 一條USB-TypeC線纜,用于給HPM6750 EVK min
    發表于 06-08 13:59

    HPM6750HPM6450是PIN to PIN的嗎?

    相同的封裝,HPM6750HPM6450是PINto PIN的嗎?
    發表于 06-08 08:27

    HPM6750EVK微控制器使用手冊

    HPM6750EVK使用手冊
    發表于 06-05 07:33

    HPM6750EVKmini微控制器使用手冊

    HPM6750EVKmini使用手冊
    發表于 06-05 06:15
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>