【发布时间】:2021-09-18 00:01:44
【问题描述】:
ACPI 命名空间中的全局变量存储在 RAM 中的什么位置?该区域是否由 BIOS 保留?请参见下面的示例:
Scope (_SB.PC00.LPCB.XYZ_)
{
Device (ABCD)
{
Name (VAR1, "foo")
Method (BAR_)
{
VAR1 = "bar"
}
}
}
VAR1 最终存储在哪里,因为我们没有手动为这个变量定义内存操作区域?
【问题讨论】:
-
操作系统的职责是解析 AML(这是 ASL 源的编译版本,就像您发布的那样)并执行操作码,不是吗?包括 NameOp 和 StoreOp (我认为,不确定,但你明白了)将在
Name和=的编译版本中使用。我不认为涉及BIOS。作为参考,ACPI 表位于 RAM 中,并且当操作系统请求内存映射时,该区域被标记为保留。但这与执行 AML 无关。 -
内存由操作系统中的 ACPI 解释器或任何消耗它的东西保留(它很可能是引导加载程序或任何其他自定义启动代码)。