运行时平台抽象层 (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
中调用的函数而遇到构建问题,则可以通过将 -DEXECUTORCH_PAL_DEFAULT=minimal
传递给 cmake
来改用 executorch/runtime/platform/default/minimal.cpp
中的无操作最小 PAL。这将避免调用 fprintf()
、std::chrono::steady_clock
以及 posix.cpp
使用的任何其他内容。但是,由于 minimal.cpp
中的 et_pal_*()
函数是无操作的,您需要重写所有这些函数。