运行时平台抽象层 (PAL)¶
ExecuTorch 平台抽象层 (PAL) 为执行环境提供了一种覆盖以下操作的方法:
获取当前时间。
打印一条日志语句。
使进程/系统进入恐慌状态。
PAL 函数声明位于
executorch/runtime/platform/platform.h。
覆盖默认 PAL¶
默认的 PAL 实现在
executorch/runtime/platform/default/posix.cpp。
它使用 std::chrono::steady_clock 表示时间,将日志消息打印到
stderr,并采用其他默认假设。
但是,如果它们不适用于您的系统,您可以通过以下方式覆盖默认的 PAL:
包括
executorch/runtime/platform/platform.h在您的应用程序的.c或.cpp文件中。定义一个或多个
et_pal_*()函数的实现。
默认的 PAL 函数是弱符号,因此提供您自己的强符号定义可以在链接时覆盖它们。为确保您的定义具有优先权,您可能需要确保在链接顺序中强定义位于弱定义之前。
最小化 PAL¶
如果您的系统不支持posix.cpp所调用的函数从而导致构建问题,您可以通过向cmake传递-DEXECUTORCH_PAL_DEFAULT=minimal来改用位于executorch/runtime/platform/default/minimal.cpp的无操作(no-op)最小PAL。这将避免调用fprintf()、std::chrono::steady_clock以及posix.cpp使用的任何其他内容。但由于minimal.cppet_pal_*()函数是无操作,您需要覆盖所有这些函数。