1. gzyueqian
      13352868059

      嵌入式開發:在工業應用中優化 GUI 的 5 個技巧

      更新時間: 2022-02-04 10:05:00來源: 粵嵌教育瀏覽量:12977

        傳統上,工業應用包括模擬按鈕、開關和撥號,以與用戶進行交互。如你所知,時代在變,工業應用用戶現在需要豐富的圖形用戶界面 (GUI)。許多接口建立在嵌入式系統之上,這些系統非常強大,但它們仍然是資源受限的系統。在嵌入式開發中,它們可能在處理能力、內存或電池壽命方面受到資源限制。


        在今天的文章中,我們將探討一些在工業應用中優化 GUI 的技巧。


        技巧1:直接從 flash 中繪制圖像


        GUI 圖像通常以 PNG 格式存儲在閃存中。 PNG 文件格式是一種壓縮圖像格式,旨在節省空間。這聽起來不錯,但如果圖像被壓縮,這意味著處理器需要解壓縮圖像才能將其寫入幀緩沖區。解壓縮圖像不僅需要內部 RAM,而且還會浪費潛在的寶貴時鐘周期來解壓縮圖像。


        開發人員可以利用的優化是解壓縮他們的 PNG 并將它們以 TGA 格式存儲在閃存中。此格式是一種未壓縮的文件格式,支持 8、16、24 或 32 位/像素,帶有 8 位 Alpha 通道。雖然每個圖像都會比 PNG 大,但它可以直接從閃存寫入幀緩沖區,而無需浪費 CPU 周期和 RAM 進行解壓縮。值得慶幸的是,閃存通常非常便宜,而且許多系統設計人員無論如何都會加大它們的尺寸,因此這種優化不僅會提高系統性能,而且對系統成本的影響也應該很小。


        技巧2:優化圖像存儲格式


        有幾種不同的圖像格式可用于與顯示器交互,但它們的創建方式并不相同,并且具有各種優點和缺點。例如,RGB888 格式為嵌入式開發人員提供了每像素 24 位的顏色深度,這意味著每個紅色、綠色和藍色顏色控制使用 8 位。雖然這確實提供了豐富的色彩,但除了更復雜的硬件和利用要求之外,存儲圖像可能需要額外的存儲空間。


        工業應用的一個很好的權衡是改用 RGB565 格式。 RGB565 格式為開發人員提供了每像素 16 位的顏色深度,其中 5 位用于表示紅色,6 位用于表示綠色,5 位用于表示藍色。顯然,顏色保真度不會像 RGB888 格式那樣豐富,因為我們使用的是 16 位而不是 24 位表示。為了恢復由于可用位較少而丟失的一些顏色保真度,我們可以在圖像中添加抖動。結果是一個漂亮的圖像,節省了存儲和計算能力。



        技巧3:仔細優化動畫


        一般來說,動畫可以在修飾 GUI 方面發揮很大作用。無論是創建精美的閃屏還是在屏幕上顯示實時數據。動畫的問題在于它們通常使用大量的處理能力。在播放動畫時,CPU 利用率長時間飆升至 100% 的情況并不少見。這可能是不可取的,特別是如果有其他實時活動正在進行。值得慶幸的是,可以使用一些很棒的優化。


        首先,限制動畫空間的大小。動畫只占屏幕的一小部分是很常見的。但是,嵌入式開發人員經常一遍又一遍地重寫整個屏幕。開發人員可以縮小它們的大小,使其不使用整個屏幕。通過這樣做,他們可以只更新屏幕的一小部分。這會導致圖像存儲大小、使用的內存以及處理動畫所需的時鐘周期減少。


        另一個建議是使用快速 RAM 來優化像素寫入。大多數基于微控制器的系統都有一定數量的快速、零等待 RAM,甚至是設計用于與圖形加速器和幀緩沖區一起使用的 RAM。使用此 RAM 可以最大限度地減少執行周期,并在屏幕動畫時將 CPU 負載保持在 100% 以下。


        技巧4:利用 DMA


        嵌入式開發人員經常忽略的另一種簡單技術是利用微控制器 (MCU) 直接存儲器訪問 (DMA) 控制器。DMA 控制器由多個通道組成,可用于執行以下類型的內存傳輸:


        外設到 RAM

        RAM 到外圍設備

        內存到內存


        這對于在沒有 CPU 干預的情況下在應用程序中移動大量數據非常有用!這意味著可以在 CPU 忙于處理模數轉換時在后臺更新幀緩沖區。


        一些 MCU 還可以執行以下類型的 DMA 傳輸:


        閃存到 RAM

        閃存到外設


        這對于直接從閃存中讀取圖像并將它們推送到幀緩沖區非常有用。基于閃存的 DMA 通道往往不太常見,盡管它們正在尋找進入高性能 MCU 的途徑。


        技巧5:預渲染字體


        GUI 顯示文本是很常見的,而文本又使用某種字體。開發人員可以通過預渲染字體再次以更少的 CPU 周期換取存儲空間,從而提高他們的圖形系統效率。當字體已經被渲染時,它們可以直接寫入屏幕。如果它們沒有被渲染,那么這意味著 CPU 必須使用一些周期和時間來渲染字體,然后才能將它們推入幀緩沖區。


        工業應用越來越多地利用 GUI 為客戶和用戶提供直觀且易于使用的界面。雖然工業 GUI 設計人員起初可能對利用基于嵌入式系統的解決方案猶豫不決,但我們在今天的帖子中看到,有許多優化技術可用于顯著簡化和優化這些應用程序。這些技術包括調整圖像格式、圖像存儲方式以及減少 CPU 周期。歸根結底,嵌入式開發人員需要仔細檢查顯示系統中的每個鏈接,并確定可以采取哪些措施來最小化所需的處理能力。

      免費預約試聽課

      亚洲另类欧美综合久久图片区_亚洲中文字幕日产无码2020_欧美日本一区二区三区桃色视频_亚洲AⅤ天堂一区二区三区

      
      

      1. 午夜福利视频欧美日韩一区 | 亚国产亚洲亚洲精品视频 | 丝袜亚洲精品中文字幕 | 开心六月综合激情婷婷 | 亚洲国产专区校园欧美 | 亚洲综合在线区尤物 |