Поделиться через


Компилятор Microsoft ASL

Версия 5.0 компилятора исходного языка MICROSOFT ACPI (ASL) поддерживает функции в спецификации расширенной конфигурации и интерфейса питания, редакции 5.0 (спецификация ACPI 5.0). Компилятор ASL распространяется с помощью комплекта драйверов Windows (WDK).

Скачайте комплект драйверов Windows (WDK)

Компилятор ASL (asl.exe) находится в каталогах Tools\arm\ACPIVerify, Tools\arm64\ACPIVerify, Tools\x86\ACPIVerify и Tools\x64\ACPIVerify установленного WDK. 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> Переопределите имя файла AML в DefinitionBlock.
Fa=<ASMFile> Создайте . ASM-файл с именем <ASMFile>.
Fn=<NSDFile> Создайте файл дампа пространства имен с именем <NSDFile>.
d Дампа двоичного файла в текстовой форме.
u Распакуйте файл AML в файл . ASL-файл (по умолчанию) или . LST-файл.
tab=<TabSig> Распакуемная таблица ASL в таблицу . ASL-файл (по умолчанию) или . LST-файл. Дампа таблицы, отличной от ASL, в файл .TXT. Если <tabSig> имеет значение "*", все таблицы сбрасываются в ACPI.TXT. <TabSig> также может быть физическим адресом таблицы.
c Создайте двоичные файлы из таблиц.

Использование функции ACPI-table-load компилятора Microsoft ASL

Во время разработки системы полезно имитировать различные конструкции BIOS ACPI и тестировать их в системе разработки. Операционная система Windows позволяет загружать определенные таблицы ACPI из реестра Windows вместо BIOS КОМПЬЮТЕРА. Для использования этой функции требуются права администратора, а также требуется, чтобы в системе включена проверка подписи. В системах, поддерживающих безопасную загрузку UEFI, невозможно включить подписывание тестов, а компонент загрузки таблицы компилятора не может использоваться, если только не отключена безопасная загрузка UEFI или политика отладки Windows установлена в системе.

Чтобы использовать функцию загрузки таблиц, таблица ACPI, которая должна быть перегружена, должна соответствовать следующим требованиям:

  • Таблица, которую необходимо перегружать, уже должна присутствовать в BIOS системы. Например, DSDT можно перегружать; Однако если компьютер не имеет SSDT, вы не можете принудительно загрузить SSDT из этого механизма переопределения реестра.

  • Таблица должна содержать код AML, который обычно используется интерпретатором Windows ACPI (драйвером Acpi.sys).

  • Таблица с наибольшим номером версии загружается. Таблица, загруженная в реестр для тестирования, должна иметь более высокий номер версии, чем та же таблица в BIOS ROM.

  • Таблица, загружаемая, должна быть в скомпилированном формате (AML) и загружена в реестр в правильном расположении с правильными параметрами. Описанный механизм предназначен для обработки всех аспектов загрузки таблицы и настройки реестра.

Предупреждение

Процесс, описанный в этом разделе, может оставить систему Windows в состоянии, отличном от загрузки. Убедитесь, что у вас есть доступ к другой операционной системе с поддержкой файловой системы NTFS (т. е. безопасной сборки) на том же компьютере, прежде чем пытаться выполнить описанные здесь процедуры. Этот процесс предоставляется только для системных разработчиков и тестировщиков и не следует использовать на любом компьютере, жизненно важном для разработки или рабочей среды.

Использование ACPI-table-load

Чтобы загрузить таблицу ACPI в реестр для тестирования, компилятор ASL вызывается следующим образом:

asl.exe /loadtable [-v] [-d] <AMLFile>

Где AMLFile — это имя скомпилированного AML-файла, содержащего таблицу, которую вы хотите загрузить в реестр.

Вариант Описание
-v Режим подробного вывода. Включает дополнительные выходные данные отладки из служебной программы.
-d Удалить. Удаляет ранее загруженный файл AML из реестра и удаляет все связанные разделы реестра.

Дополнительные ресурсы