歡迎來到 Altia 開發者博客系列! 這些帖子由我們自己的 GUI 專家撰寫,旨在展示使用我們的 UI 編輯器 Altia Design 和我們的自動圖形代碼生成器 Altia DeepScreen 開發和部署嵌入式用戶界面的設計理念和智能解決方案。

一定要 註冊帳戶 讓我們的時事通訊將這些內容直接發送給您!


減少 miniGL 目標的 RAM 使用量

Altia miniGL 是一個 Altia深屏 與 OpenVG 和軟件渲染等東西一起使用的架構實現,用於為功能較弱、資源受限的目標或環境生成設計。

Altia miniGL 代碼在 RAM 消耗方面已經非常優化,但如果您仍在尋找減少 RAM 的方法,這裡有一些值得研究的建議。

避免不必要的物體

Altia miniGL 非常有效地打包數據,但有一些設計選擇可以進一步提高這種優化的有效性。 這 內置動畫圖像對象使用文件系統 代碼生成屏幕中的選項將增加使用的 RAM 量。 這些選項強制您的 DeepScreen 代碼允許更多的可變性,從而減少優化,因為數據的範圍是未知的。 使用時也會出現同樣的效果 快照對象。 如果您不需要它們,請避免使用這些對像或代碼生成選項。

通常,下一個減少 RAM 的候選是 文本 I/O 對象. 這些可以通過檢查每個對象的長度來修剪,以便它只消耗所需的最小 RAM 量。 您可以將代碼生成設置最大文本字符串長度(靜態內存)調整為可能的最長文本 I/O 的字符長度。 這也可以節省內部數據數組的空間。 如果這些數組中的任何文本 I/O 未被語言對像或邏輯尋址,則可以將它們更改為靜態標籤。 靜態標籤存儲在 ROM 而不是 RAM 上。

一樣的圖片,一樣的名字

如果您的設計包含對同一圖像源文件的多個引用,請確保使用此圖像的所有動畫共享相同的名稱。 如果您複製和粘貼圖像對象,則名稱會自動遞增。 您可以在下面看到一個示例。

這可以通過將 _global 附加到動畫變量名稱來防止,下面也進行了演示。

現在,所有這些不同的對像都將加載和引用 RAM 中的同一個圖像實例。 這可以實現嵌入式魔法,例如將純色背景圖像減少為為顯示寬度複製的單列像素。 與加載整個圖像相比,這將使用最少的 RAM。 這必須在取消選擇代碼生成下的圖像對象使用文件系統選項的同時完成。 現在,無論許多圖像動畫在生成的二進製文件中共享一個名稱,都引用了相同的圖像數據。

最好測試一下

最後,請記住測試和比較本文中提到的所有方法的結果。 估算 RAM 使用率高度依賴於系統,對您的問題最可靠的答案是為您的設備和設計生成和編譯代碼。 由於設計實現的不同,外觀相似的設計在 RAM 使用方面可能會有很大差異。 此外,相同的設計在不同的硬件上可能具有完全不同的內存使用情況。 例如,某些設備可以直接從 Flash 中引用圖像數據並將其放入幀緩衝區。 但其他設備可能需要有圖像的 RAM 副本來渲染它們。

請記住,嵌入式平台上有很多變量在起作用,因此對項目總 RAM 使用量的估計可能不准確。 沒有比在 你的硬件 – Altia 可以輕鬆做到這一點。

想了解有關 Altia 代碼生成的更多信息? 請求現場演示 今天和我們在一起!