- 积分
- 28
- 最后登录
- 2023-10-10
- 精华
- 0
- 阅读权限
- 10
- 主题
- 15
- UID
- 4872855
- 帖子
- 69
- PB币
- 200
- 威望
- 0
- 贡献
- 0
- 技术
- 0
- 活跃
- 136
- UID
- 4872855
- 帖子
- 69
- PB币
- 200
- 贡献
- 0
- 技术
- 0
- 活跃
- 136
|
发表于 2020-8-10 18:40:03
IP属地浙江
|显示全部楼层
根作用域
我们在制作热补丁的时候,首先会写一个根作用域,也就是DefinitionBlock那一条- DefinitionBlock ("xxxx", "DSDT", 0x02, "xxxx", "xxxx", xxxx)
- {
- }
复制代码 也就是上面那一条,记住,根作用域,有且只有一条!
解释一下,这上面几个参数都是什么,依次是文件名 、 OEMID 、 表ID 、 OEM版本 。如果是DSDT,第三个参数位就一定是0x02,其他参数可以随意更改。
做热补丁的时候,我们写根作用域,可以直接把DSDT中的复制过来,然后把DSDT改成SSDT就行了,如下
- DefinitionBlock ("xxxx", "SSDT", 0x02, "xxxx", "xxxx", xxxx)
- {
- }
复制代码
方法与设备
如题,这里讲的就是方法,也就是Method这一定义函数,我们在ACPI中会经常看见,Method一定是在Scope作用域下的或者Device下的,绝不可能脱离Scope!
样式如下
- Method (xxxx, 0, NotSerialized)
- {
- ...
- }
复制代码
标题中所讲的设备即是指Device,这些我都是直接翻译过来的,Device放在Scope作用域中,如下
- Scope (\_SB)
- {
- Device (XXXX)
- {
- ...
- } ...
- }
复制代码 当然Device(XXXX)也可以看作是一个作用域,里面可以包含例如有_ADR 、 _CID 、 _UID 、 _DSM 、 _STA 等Method。
赋值语句
在ASL语法中,我们只有一种赋值语句的存在,就是下面这种
两种语句意思都是一样的,在Store语句中,X为读取操作,Y为写入操作,可以记为左读右写
在新的ASL中,Store(X,Y)变为Y = X,更加的简洁,但意义相同,X依旧为读取操作,Y依旧为写入操作,不过,方向相反,需要注意,可以记为左写右读
|
|