2266934_ja-JP

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

2266934_ja-JP

2266934_ja-JP

MIMXRT1064-EVK 上の LVGL に Harfbuzz + Freetype を統合する

こんにちは、皆さん

私は、カスタム LED ディスプレイ パネルを駆動するために、ベアメタル C プロジェクト(OS なし) でMIMXRT1064-EVKを使用しています。
私はMCUXpresso IDE 25.6.136を使用しています最新の SDKs を使用します。

ソフトウェアスタック

  • レベルGL: 9.2.1

  • フリータイプ: 2.13.3

  • ハーフバズ: 8.3.0

  • RTOSなし – 純粋なベアメタル

HarfBuzz + FreeType を追加した目的は、LVGL の組み込みレンダラーがインド系文字 (マラヤーラム語、デーヴァナーガリー文字の合字、マトラなど) を処理できないため、インド系文字の複雑なテキスト形成をサポートすることです。

フォント

  • アンジャリオールドリピ-レギュラー (マラヤーラム語)

  • NotoSansDevanagari

  • フォントは埋め込みC配列形式でFlashに保存されます。

  • FreeType (FT_New_Memory_Face) 経由でメモリにロードされます

メモリ・コンフィグレーション

  • スタック: SRAM_DTCに 32 KB 配置

  • ヒープ: SRAM_OC2に 256 KB

  • ヒープ増加に使用される_sbrk_r()実装

問題
HarfBuzz を介してインド語のテキストを形成する場合、システムは最終的にHardFault_Handlerに入ります。
障害は次の内部で発生します:


 
hb_shape () ↳ hb_ot_shape_full () ↳ apply_forward ()
 

これは、HarfBuzz が複雑なシェーピング中に GSUB/GPOS ルックアップを適用するときに発生するようです。

これまでのSOの観察

  • ヒープサイズは十分に大きく(256 KB)、SRAM_OC2 に配置されています。

  • スタックは32KB(DTCM)

  • Linuxでは同じライブラリバージョンを使用してもフォントは有効で、正しい形状になります。

  • HarfBuzzシェーピング中にCortex-M7ベアメタルでクラッシュが発生する

  • ENOMEMは_sbrk_r()から以前に見られましたが、ヒープを増やした後もハードフォールトは発生します

コミュニティへの質問

  1. Cortex-M7 で HarfBuzz を使用する場合、既知のスタック深度の要件や落とし穴はありますか?

  2. GSUB/GPOS OpenType ルックアップ テーブルには、OCRAM での特定の配置または MPU 設定が必要ですか?

  3. インド語のテキストを形成する場合、FreeType + HarfBuzz には 32 KB のスタックは小さすぎますか?

  4. MCU 上のHarfBuzz メモリ最小化に推奨されるビルド フラグはありますか?

  5. RT106x シリーズでマラヤーラム語/デーバナーガリ語のシェーピングを正常に実行できた人はいますか?

あらゆるガイダンス、推奨されるリンカーの変更、またはメモリ設定の例があれば、大変助かります。

ありがとう、

アイスワリヤ

Tags (1)
No ratings
Version history
Last update:
‎12-20-2025 02:31 AM
Updated by: