Condividi tramite


Compilatore Microsoft ASL

La versione 5.0 del compilatore ASL (Microsoft ACPI Source Language) supporta le funzionalità nella specifica Advanced Configuration and Power Interface, Revision 5.0 (ACPI 5.0). Il compilatore ASL viene distribuito con Windows Driver Kit (WDK).

Scarica il Windows Driver Kit (WDK)

Il compilatore ASL (asl.exe) si trova nelle directory Tools\arm\ACPIVerify, Tools\arm64\ACPIVerify, Tools\x86\ACPIVerify e Tools\x64\ACPIVerify del WDK installato, C:\Program Files (x86)\Windows Kits\10\Tools\<build #>\<build architecture>\ACPIVerifyad esempio .

È necessario installare prima l'SDK, seguito da WDK. I numeri di build per i due kit devono corrispondere.

Opzioni della riga di comando

Il compilatore ASL supporta diverse opzioni della riga di comando. Per elencare le informazioni sulla versione e le opzioni della riga di comando disponibili, eseguire il comando "asl /?" in una finestra del prompt dei comandi.

Utilizzo del compilatore ASL

Il compilatore ASL supporta le opzioni della riga di comando seguenti:

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>
Opzione Descrizione
? Stampare questo messaggio della Guida.
nologo Eliminare il banner del logo.
Fo=<AMLFile> Eseguire l'override del nome file AML in DefinitionBlock.
Fa=<ASMFile> Generare un oggetto . File ASM con il nome <ASMFile>.
Fn=<NSDFile> Generare un file NameSpace Dump con il nome <NSDFile>.
d Eseguire il dump del file binario in formato testo.
u Annullare ilassemble di un file AML in un oggetto . File ASL (impostazione predefinita) o . File LST.
tab=<TabSig> Annullare ilassemble della tabella ASL in un oggetto . File ASL (impostazione predefinita) o . File LST. Eseguire il dump di una tabella non ASL in un file .TXT. Se <TabSig> è '*', viene eseguito il dump di tutte le tabelle in ACPI.TXT. <TabSig> può anche essere l'indirizzo fisico della tabella.
c Creare file binari da tabelle.

Uso della funzionalità ACPI-table-load del compilatore MICROSOFT ASL

Durante lo sviluppo del sistema, è utile avere un modo per simulare vari costrutti BIOS ACPI e testarli nel sistema di sviluppo. Il sistema operativo Windows consente di caricare determinate tabelle ACPI dal Registro di sistema di Windows anziché dal BIOS ROM del PC. L'uso di questa funzionalità richiede privilegi di amministratore e richiede anche l'abilitazione della firma di test nel sistema. Per i sistemi che supportano l'avvio protetto UEFI, la firma di test non può essere abilitata e la funzionalità di caricamento delle tabelle del compilatore non può essere usata a meno che l'avvio protetto UEFI non sia disabilitato o che il criterio di debug di Windows sia installato nel sistema.

Per utilizzare la funzionalità di caricamento tabelle, la tabella ACPI da sottoporre a overload deve soddisfare i requisiti seguenti:

  • La tabella da sottoporre a overload deve essere già presente nella ROM BIOS del sistema. Ad esempio, il DSDT può essere sottoposto a overload; Tuttavia, se il computer non dispone di un SSDT, non è possibile forzare il caricamento di un SSDT da questo meccanismo di override del Registro di sistema.

  • La tabella deve contenere codice AML normalmente utilizzato dall'interprete ACPI di Windows (il driver Acpi.sys).

  • Verrà caricata la tabella con il numero di versione più alto. La tabella caricata nel Registro di sistema per il test deve avere un numero di versione superiore rispetto alla stessa tabella nel BIOS ROM.

  • La tabella da caricare deve essere in formato compilato (AML) e caricata nel Registro di sistema nel percorso corretto, con i parametri corretti specificati. Il meccanismo descritto nel presente documento è progettato per gestire tutti gli aspetti del caricamento della tabella e della configurazione del Registro di sistema.

Avviso

Il processo descritto in questo argomento può lasciare il sistema Windows in uno stato non di avvio. Assicurarsi di avere accesso a un altro sistema operativo con il supporto del file system NTFS (ovvero una "compilazione sicura") nello stesso computer prima di tentare le procedure descritte qui. Questo processo viene fornito solo per sviluppatori di sistema e tester e NON deve essere usato in qualsiasi computer per scopi di sviluppo o produzione.

Utilizzo di ACPI-table-load

Per caricare una tabella ACPI nel Registro di sistema a scopo di test, il compilatore ASL viene richiamato come segue:

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

dove AMLFile è il nome del file AML compilato che contiene la tabella da caricare nel Registro di sistema.

Opzione Descrizione
-v Modalità dettagliata. Attiva l'output di debug aggiuntivo dall'utilità.
-d Delete. Rimuove un file AML caricato in precedenza dal Registro di sistema ed elimina tutte le chiavi del Registro di sistema associate.

Risorse aggiuntive