一、基本概念
ACPI(高级配置和电源管理接口)是一个标准化的接口,用于操作系统与固件之间的硬件配置和电源管理通信。主要包括:
系统硬件配置: 描述系统中的设备、接口和它们的属性,例如设备的 ID、资源分配等。
电源管理: 提供电源状态、睡眠模式、唤醒条件等信息。
中断信息: 定义中断源和中断配置。
系统资源: 描述内存、IO 端口、DMA 通道等系统资源的分配和使用。
二、ASL语言
ASL(ACPI Source Language)是用于编写和描述 DSDT 内容的语言。ASL 代码被编译成二进制的 DSDT 表供操作系统使用。
1、ASL的一些基本准则
1)Scope形成作用域,概念类似于C++中的namespace
2)Method 或者 Function 定义函数,函数可以定义在 Device 下或者 Scope 下,但是不能脱离 Scope 定义 单独的函数,也就是说,函数必须依附于对象
3)以"_"字符开头的函数,都是系统保留的,不得给自己的函数取这样的名字
4)变量名必须由4个字符组成,第1个字符不能是数字
2、ASL数据类型
TPYE | 类型 |
---|---|
Integer | 整数 |
String | 字符串 |
Event | 事件 |
Buffer | 数组 |
Package | 对象集合 |
3、常用关键字
1)Name
Name 关键字用于定义命名的对象或常量。
定义字符串:
Name (_HID, "ACPI0002")
定义整数:
Name (_UID, 0)
定义Package:
Name (_PRW, Package (