執行時平臺抽象層 (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_*() 函式是無操作的,您需要全部覆蓋它們。