固件C字营·版权所有
敬请关注微信公众号:“固件C字营”
=====================================================================
目录
第7章:特殊对象与类型... 4
第8章:类型转换及规则... 4
第9章:常用ASL算子(operator)简介... 4
第10章:ACPI表... 4
第11章:ACPI硬件... 4
第12章:ACPI操作系统... 4
第13章:Low Power S0 Idle简介... 4
第14章:ACPI/ASL调试简介... 4
ACPI(Advanced Configuration and Power Interface)是由intel及微软等企业在1990年左右提出的PC电源管理接口规范。其目标是把操作系统和系统固件(UEFI/BIOS)隔离开来,使操作系统和硬件(固件)厂商可以在共同标准下相互解耦独立发展。ACPI最新的版本是6.4,下文内容都是基于6.4的版本进行说明。
ACPI规范包含了ACPI硬件、ACPI软件、ACPI表、设备管理、电源管理、热管理等内容。其中ASL(ACPI Source Language)语言是默认用来编写ACPI代码的“声明式编程语言”,AML(ACPI Machine Language)是ASL源码被编译器编译后被AML解释器解释执行的字节码。AML是所有ACPI兼容的操作系统必须支持的,但是ASL是非必须的,只要是能最终被转换成AML的其他的任何语言都可以用来编写ACPI代码。
ASL用来定义ACPI对象(object)和ACPI控制方法(Method),ASL支持预定义的算子供程序(一般是BIOS工程师编写)或OS调用,也支持各种内置的算子和宏,如:数学运算、逻辑运算等。
ACPI规范定义了大量的与硬件和OS相关的内容,整个文档洋洋洒洒有数千页之多,阅读起来甚是难以理解,本文试图以BIOS工程师的视角来对其进行简单的梳理,按照一般的编程语言比如“C语言“一样的逻辑从“Hello World”开始,介绍如何使用ACPI/ASL编写自己的程序,如何编译、运行、调试代码。以及ACPI表、ACPI硬件、ACPI操作系统、系统睡眠唤醒流程等。
固件C字营·版权所有
敬请关注微信公众号:“固件C字营”

本文档是UEFI内核导读的一部分,主要介绍了ACPI规范的基础知识,包括ACPI的起源、目标和最新版本。内容涵盖了ACPI硬件、软件、表、设备管理、电源和热管理等方面。通过ASL(ACPI Source Language)和AML(ACPI Machine Language)的概念,讲解了如何使用ASL编写ACPI代码,并从简单的"Hello World"开始,逐步引导读者了解ACPI编程、编译、运行和调试。此外,还涉及ACPI表、硬件、操作系统以及系统睡眠唤醒流程等关键概念。
1767

被折叠的 条评论
为什么被折叠?



