執行時期平台抽象層 (PAL)¶
ExecuTorch 的平台抽象層 (PAL) 提供執行環境覆寫操作的方式,例如:
取得目前時間。
列印日誌陳述。
使程序/系統崩潰。
PAL 函式宣告位於 executorch/runtime/platform/platform.h
。
覆寫預設 PAL¶
預設的 PAL 實作位於 executorch/runtime/platform/default/posix.cpp
。它使用 std::chrono::steady_clock
取得時間、將日誌訊息列印到 stderr
,並進行其他預設假設。
但是,如果它們不適用於您的系統,您可以透過以下方式覆寫預設 PAL:
在您的應用程式的
.c
或.cpp
檔案中包含executorch/runtime/platform/platform.h
。定義一個或多個
et_pal_*()
函式的實作。
預設 PAL 函式是弱符號,因此提供您自己的強符號定義可以在連結時覆寫它們。為了確保您的定義優先,您可能需要確保強定義在連結順序中位於弱定義之前。
最小 PAL¶
如果您因為您的系統不支援 posix.cpp
呼叫的函式而遇到建置問題,您可以改為使用位於 executorch/runtime/platform/default/minimal.cpp
的無操作最小 PAL,方法是將 -DEXECUTORCH_PAL_DEFAULT=minimal
傳遞給 cmake
。這將避免呼叫 fprintf()
、std::chrono::steady_clock
以及 posix.cpp
使用的任何其他東西。但是,由於 minimal.cpp
的 et_pal_*()
函式是無操作的,因此您需要覆寫所有這些函式。