我們的免費(fèi)圖形用戶界面TouchGFX現(xiàn)在正在對(duì)其引擎和設(shè)計(jì)器工具進(jìn)行重要更新。TouchGFX 4.12 為公眾帶來(lái)了可緩存容器、部分幀緩沖區(qū)和我們的L8 圖形壓縮格式等功能,所有這些都將提高更多 STM32 微控制器的性能。隨著嵌入式系統(tǒng)繼續(xù)滲透主流市場(chǎng),顯示器和ipso facto的出現(xiàn)圖形用戶界面可以極大地改善消費(fèi)者的體驗(yàn)。它解釋了為什么報(bào)告顯示越來(lái)越多的嵌入式系統(tǒng)工程師現(xiàn)在使用 GUI,以及為什么業(yè)界試圖將它們安裝在具有更嚴(yán)格計(jì)算吞吐量的 MCU 上。TouchGFX Designer 是我們的桌面工具,可幫助開發(fā)人員更快地利用 TouchGFX 引擎,減少編寫 C++ 代碼的需要,從而促進(jìn) MCU 的 GUI 開發(fā)。
TouchGFX 4.12 也具有很高的象征意義,因?yàn)樗俏覀冏?2018 年獲得該解決方案以來(lái)的第一次重大升級(jí),它成為我們STM32 生態(tài)系統(tǒng)不可或缺的一部分。我們的 MCU 背后的驅(qū)動(dòng)理念之一是,無(wú)論工程師想要使用何種工具或解決方案,它們都能提供最佳性能和最廣泛的功能集。這就是為什么我們很高興也可以使用 Qt 等其他 GUI 解決方案,并且最近參加了一個(gè)研討會(huì),幫助想要在我們的微控制器上使用著名工具包的開發(fā)人員。但是,我們很高興為 TouchGFX 帶來(lái)有意義的更新,我們將繼續(xù)致力于我們的解決方案,因?yàn)樗鼮槿魏螌I(yè)人士或愛(ài)好者提供了一個(gè)免費(fèi)且強(qiáng)大的工具,目前智能手表制造商和家電制造商僅舉兩個(gè)例子,因此為所有 STM32 開發(fā)人員帶來(lái)行業(yè)巨頭。
CacheableContainers:重新思考如何渲染框架
CacheableContainer 是我們的 TouchGFX 團(tuán)隊(duì)在向公眾提供之前開始為各種客戶開發(fā)的技術(shù)。顧名思義,它使用位圖緩存來(lái)顯著加速圖形性能,并通過(guò)大規(guī)模優(yōu)化性能來(lái)實(shí)現(xiàn)更高的幀速率以實(shí)現(xiàn)更平滑的過(guò)渡。下面的視頻顯示了在STM32F429I 探索套件上運(yùn)行的演示。如果沒(méi)有 CacheableContainer 技術(shù),簡(jiǎn)單的全屏 (240×320) 幻燈片動(dòng)畫以每秒 9 幀的速度運(yùn)行。啟用新的 TouchGFX 技術(shù)后,系統(tǒng)可達(dá)到每秒 60 幀,實(shí)現(xiàn)更平滑的過(guò)渡。 一些智能手表目前使用此功能來(lái)確保更無(wú)縫的用戶體驗(yàn),盡管其外形尺寸固有的重大硬件限制以及需要更長(zhǎng)的電池壽命。當(dāng)嘗試為復(fù)雜的小部件(例如紋理映射器或靜態(tài)背景前顯示的小型動(dòng)態(tài)元素)設(shè)置動(dòng)畫時(shí),它可以最大限度地提高性能。
在傳統(tǒng)系統(tǒng)中,動(dòng)畫要求系統(tǒng)重繪每一幀,這會(huì)導(dǎo)致計(jì)算量大增。在屏幕 1 和屏幕 2 之間的動(dòng)畫中,大約需要 20 幀,每幀重繪大約需要 100 毫秒。CacheableContainer 通過(guò)將第一幀和最后一幀以系統(tǒng)保存在 RAM 中的位圖形式存儲(chǔ)在單獨(dú)的容器中來(lái)繞過(guò)這個(gè)問(wèn)題。系統(tǒng)不計(jì)算動(dòng)畫,而是使用 DMA 從內(nèi)存中檢索兩個(gè)圖像,并通過(guò)一個(gè)簡(jiǎn)單的 DynamicBitmap 方法將它們顯示在不同的位置。MCU 不再需要渲染每一幀,從而顯著優(yōu)化性能。開發(fā)者只需勾選Cacheable在 TouchGFX Designer 中,選擇要緩存的容器在內(nèi)存中的位置,并在需要時(shí)調(diào)用它們。使用這種技術(shù),渲染時(shí)間從 100 ms 下降到 5 ms。
部分幀緩沖區(qū):優(yōu)化如何存儲(chǔ)幀
部分幀緩沖是我們?yōu)榭蛻糸_發(fā)的另一項(xiàng)技術(shù),在見證了它的巨大成果后,現(xiàn)在正在向公眾推出。幀緩沖區(qū)是一個(gè)連續(xù)的內(nèi)存空間,用于存儲(chǔ)將出現(xiàn)在顯示器上的每個(gè)像素的表示。例如,用于智能手表顯示屏的標(biāo)準(zhǔn) 24 位 390 x 390 圖像需要 3,650,400 位或 440 KB 的幀緩沖區(qū)(

),這幾乎是STM32L4+ 上可用 SRAM 的 70%,在智能手表和可穿戴設(shè)備上表現(xiàn)出色。如果應(yīng)用程序需要兩個(gè)或三個(gè)幀緩沖區(qū),這個(gè)數(shù)字可能會(huì)激增,從而使內(nèi)存需求增加一倍或三倍。除了容量限制之外,大型幀緩沖區(qū)需要更長(zhǎng)的時(shí)間來(lái)獲取,因?yàn)楦嗟臄?shù)據(jù)必須從內(nèi)存?zhèn)鬏數(shù)斤@示器,這會(huì)降低性能。
顧名思義,一個(gè)Partial Framebuffer只存儲(chǔ)了一部分framebuffer,它在內(nèi)存中的大小平均減少了10。開發(fā)者可以根據(jù)屏幕實(shí)際變化的部分來(lái)配置它的大小,然后存儲(chǔ)多個(gè)partial framebuffer 。 然后,TouchGFX 引擎將選擇合適的引擎并將其發(fā)送到顯示器。因此,系統(tǒng)不必獲取整個(gè)緩沖區(qū),而是使用小得多的文件,從而提高整體性能。 該技術(shù)最適用于短動(dòng)畫,例如時(shí)鐘或隨時(shí)間推移而構(gòu)建的圖表。它還要求屏幕使用嵌入式控制器,因?yàn)樗鼘⒅苯訌?MCU 的 RAM 接收部分幀緩沖區(qū),從而繞過(guò) Flash 以進(jìn)一步提高性能。該技術(shù)適用于并行/8080、DSI 和 SPI 顯示器。
L8 壓縮格式和 TouchGFX Designer:優(yōu)化資產(chǎn)和工作流程
圖形資源占用大量?jī)?nèi)存空間,直到現(xiàn)在,開發(fā)人員唯一能做的就是降低細(xì)節(jié)級(jí)別以縮小文件大小。不幸的是,這也意味著提供一個(gè)不那么引人注目的圖形用戶界面。L8 是獨(dú)一無(wú)二的,因?yàn)樗梢岳?STM32 微控制器中的 ChromART 加速器顯著壓縮圖像文件。 只要資源最多使用 256 種顏色,這在小型嵌入式設(shè)備上的背景、圖標(biāo)或按鈕通常是這種情況,開發(fā)人員只需在 TouchGFX Designer 中勾選一個(gè)框,就可以選擇使用 L8 格式壓縮資源。該系統(tǒng)生成的圖像最多可縮小 75%,并且解壓階段的計(jì)算效率很高,因?yàn)樗褂?ChromART 引擎在表格中查找各種顏色并在不損失質(zhì)量的情況下解壓資產(chǎn)。
TouchGFX Designer 也有一些令人興奮的更新。除了使這些新功能更易于訪問(wèn)之外,新工具還提供了新的小部件,例如模擬和數(shù)字時(shí)鐘或紋理映射器,這意味著開發(fā)人員可以通過(guò)簡(jiǎn)單的拖放開始創(chuàng)建他們的映射程序。他們?nèi)匀恍枰斎胨麄兊?C++ 代碼,但這會(huì)使整個(gè)過(guò)程更加順暢。同樣,該工具還支持添加自定義觸發(fā)器和操作,以使工程師即使不具備深入研究源代碼所需的編程技能也能對(duì)其進(jìn)行試驗(yàn)和測(cè)試。最后,TouchGFX Designer 現(xiàn)在能夠以兩倍的速度生成和加載系統(tǒng),并且只在請(qǐng)求時(shí)執(zhí)行,而不是自動(dòng),這可能會(huì)減慢開發(fā)人員的工作流程。
審核編輯:郭婷
-
顯示器
+關(guān)注
關(guān)注
21文章
5063瀏覽量
141353 -
控制器
+關(guān)注
關(guān)注
114文章
16963瀏覽量
182893 -
觸發(fā)器
+關(guān)注
關(guān)注
14文章
2032瀏覽量
61874
發(fā)布評(píng)論請(qǐng)先 登錄
STM32WBA6無(wú)線微控制器 數(shù)據(jù)手冊(cè)和選型解讀

STM32H743ZIT6微控制器復(fù)位后引腳狀態(tài)是怎么樣的?
TouchGFX助力STM32打造高效GUI顯示方案

STM32F405xx和STM32F407xx微控制器數(shù)據(jù)手冊(cè)
SEGGER工具全面支持STM32N6微控制器開發(fā)
FPGA 與微控制器優(yōu)缺點(diǎn)比較
stm32與Arduino的比較
簡(jiǎn)單認(rèn)識(shí)意法半導(dǎo)體STM32C0系列微控制器
STM32WB0系列無(wú)線微控制器滿足低功耗藍(lán)牙應(yīng)用需求

增強(qiáng)C2000?微控制器系列的計(jì)算性能


評(píng)論