《UEFI 内核导读》之ACPI 编程入门20211118.pdf

时间:2021-11-18 21:13:53
【文件属性】:
文件名称:《UEFI 内核导读》之ACPI 编程入门20211118.pdf
文件大小:976KB
文件格式:PDF
更新时间:2021-11-18 21:13:53
UEFI内核导读 cstyle ACPI编程入门 固件C字营 目录 序 2 第1章:ACPI规范简介 3 第2章:名词术语(Term) 4 第3章:Hello World 5 第4章:方法(Method) 6 第5章:对象(Object) 7 第6章:对象类型及命名 8 第7章:特殊对象与类型 10 第8章:类型转换及规则 11 第9章:常用ASL算子(operator)简介 14 第10章:ACPI表 15 第11章:ACPI硬件 16 第12章:ACPI操作系统 17 第13章:Low Power S0 Idle简介 18 第14章:ACPI/ASL调试简介 19 目录 序 2 第1章:ACPI规范简介 3 第2章:名词术语(Term) 4 第3章:Hello World 5 第4章:方法(Method) 6 第5章:对象(Object) 7 第6章:对象类型及命名 8 第7章:特殊对象与类型 10 第8章:类型转换及规则 11 第9章:常用ASL算子(operator)简介 14 第10章:ACPI表 15 第11章:ACPI硬件 16 第12章:ACPI操作系统 17 第13章:Low Power S0 Idle简介 18 第14章:ACPI/ASL调试简介 19 第1章:ACPI规范简介 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操作系统、系统睡眠唤醒流程等。

网友评论