Microsoft ASL 编译器
Microsoft ACPI 源语言 (ASL) 编译器版本 5.0 支持高级配置和电源接口规范 5.0(ACPI 5.0 规范)中的功能。 ASL 编译器随 Windows 驱动程序工具包 (WDK) 一起分发。
ASL 编译器(asl.exe)位于已安装 WDK 的 Tools\arm\ACPIVerify、Tools\arm64\ACPIVerify、Tools\x86\ACPIVerify 和 Tools\x64\ACPIVerify 目录中, C:\Program Files (x86)\Windows Kits\10\Tools\<build #>\<build architecture>\ACPIVerify
例如。
首先需要安装 SDK,然后安装 WDK。 两个工具包的内部版本号必须匹配。
命令行选项
ASL 编译器支持多个命令行选项。 若要列出版本信息和可用的命令行选项,请在命令提示符窗口中运行命令“asl /?
”。
ASL 编译器用法
ASL 编译器支持以下命令行选项:
asl /?
asl [/nologo] /d <BinFile>
asl [/nologo] /u [/Fa=<ASMFile>] [/Fl=<LSTFile>] [/Fn=<NSDFile>] <AMLFile>
asl [/nologo] /tab=<TabSig> [/c] [/Fa=<ASMfile>] [/Fl=<LSTFile>] [/Fn=<NSDFile>]
asl [/nologo] [/Fo=<AMLFile>] [/Fa=<ASMFile>] [/Fl=<LSTFile>] [/Fn=<NSDFile>] <ASLFile>
选项 | 说明 |
---|---|
? | 打印此帮助消息。 |
nologo | 禁止显示徽标横幅。 |
Fo=<AMLFile> | 重写 DefinitionBlock 中的 AML 文件名。 |
Fa=<ASMFile> | 生成一个 。名为 ASMFile> 的 <ASM 文件。 |
Fn=<NSDFile> | 使用名称 NSDFile> 生成 NameSpace <转储文件。 |
d | 以文本形式转储二进制文件。 |
u | 将 AML 文件取消组合到 .ASL 文件(默认值)或 .LST 文件。 |
tab=<TabSig> | 将 ASL 表取消组合到 .ASL 文件(默认值)或 .LST 文件。 将非 ASL 表转储到.TXT文件。 如果 <TabSig> 为“*”,则会将所有表转储到ACPI.TXT。 <TabSig> 也可以是表的物理地址。 |
c | 从表创建二进制文件。 |
使用 Microsoft ASL 编译器的 ACPI 表加载功能
在系统开发期间,有一种方法可以模拟各种 ACPI BIOS 构造并在开发系统上测试它们。 Windows 操作系统允许从 Windows 注册表而不是从电脑的 BIOS ROM 加载某些 ACPI 表。 使用此功能需要管理员权限,还需要在系统上启用测试签名。 对于支持 UEFI 安全启动的系统,无法启用测试签名,并且除非禁用 UEFI 安全启动或系统上安装了 Windows 调试策略,否则无法使用编译器的表加载功能。
若要使用表加载功能,要重载的 ACPI 表必须满足以下要求:
要重载的表必须已存在于系统的 BIOS ROM 中。 例如,DSDT 可以重载;但是,如果计算机没有 SSDT,则无法强制从此注册表替代机制加载 SSDT。
该表必须包含 Windows ACPI 解释器(Acpi.sys驱动程序)通常使用的 AML 代码。
将加载版本号最高的表。 加载到注册表中进行测试的表的版本号必须高于 BIOS ROM 中的同一个表。
要加载的表必须采用编译格式(AML)格式,并在正确的位置加载到注册表中,并指定了正确的参数。 本文所述的机制旨在处理加载表和配置注册表的所有方面。
警告
本主题中所述的过程可能会使 Windows 系统处于不可启动状态。 在尝试此处概述的过程之前,请确保你有权访问具有 NTFS 文件系统支持(即同一台计算机上的“安全生成”)的另一个操作系统。 此过程仅适用于系统开发人员和测试人员,不应在任何对于开发或生产目的至关重要的计算机上使用。
ACPI-table-load usage
若要将 ACPI 表加载到注册表中以进行测试,将按如下所示调用 ASL 编译器:
asl.exe /loadtable [-v] [-d] <AMLFile>
其中,AMLFile 是编译的 AML 文件的名称,其中包含要加载到注册表中的表。
选项 | 说明 |
---|---|
-v | 详细模式。 打开实用工具的额外调试输出。 |
-d | 删除。 从注册表中删除以前加载的 AML 文件,并删除所有关联的注册表项。 |
其他资源
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈