- 积分
- 4078
- 最后登录
- 2018-6-18
- 精华
- 0
- 阅读权限
- 205
- 主题
- 86
- UID
- 424619
- 帖子
- 4181
- PB币
- 535
- 威望
- 401
- 贡献
- 0
- 技术
- 748
- 活跃
- 2222
远景FANS
- UID
- 424619
- 帖子
- 4181
- PB币
- 535
- 贡献
- 0
- 技术
- 748
- 活跃
- 2222
|
发表于 2015-4-5 18:09:47
IP属地北京
|显示全部楼层
DSDT警告 (Warnings)
- ResourceTag larger than Field (Size mismatch, Tag: 64 bits, Field: 32 bits)
复制代码 或者
- ResourceTag smaller than Field (Size mismatch, Tag: 32 bits, Field: 64 bits)
复制代码
定位到警告所在行
- CreateBitField (...)
- CreateByteField (...)
- CreateWordField (...)
- CreateDWordField (...)
- CreateQWordField (...)
创建类型分别是
Bit | 1 bit | Byte | 8 bits | Word | 16 bits | DWord | 32 bits | QWord | 64 bits |
产生这类错误/警告的原因是创建的类型(Field)和目标类型(Tag)的大小不一致。解决方法是将资源创建类型(Field)修改成与目标类型(Tag)一致的类型即可。
例如
- ResourceTag larger than Field (Size mismatch, Tag: 64 bits, Field: 32 bits)
复制代码 将『CreateDWordField』改成『CreateQWordField』
- ResourceTag smaller than Field (Size mismatch, Tag: 64 bits, Field: 32 bits)
复制代码 将『CreateQWordField』改成『CreateDWordField』
SSDT警告(常见于SSDT-4)
**警告是因为有下列代码
- External (_SB_.PCI0.PEG0.PEGP.SGPO, MethodObj) // Warning: Unresolved method, guessing 5 arguments
复制代码 和
Method (GPPR, 2, NotSerialized)
{
If (LEqual (Arg1, Zero))
{
If (LEqual (Arg0, Zero))
{
If (CondRefOf (\_SB.PCI0.PEG0.PEGP.SGPO))
{
\_SB.PCI0.PEG0.PEGP.SGPO (HLRS, One, \_SB.PCI0.PEG0.PEGP.SGPO (PWEN, Zero, Else
{
If (LEqual (Arg1, One))
{
If (LEqual (Arg0, Zero))
{
If (CondRefOf (\_SB.PCI0.PEG0.PEGP.SGPO))
{
\_SB.PCI0.PEG0.PEGP.SGPO (HLRS, One, \_SB.PCI0.PEG0.PEGP.SGPO (PWEN, One, Sleep (DLPW), \_SB.PCI0.PEG0.PEGP.SGPO (HLRS, Zero, Sleep (
DLHR))))
}
}
}
}))
}
}
}
}
**
这个错误是因为编译器错误猜测了SSDT中的一个方法。我的方法是移去上述代码。目前没有反馈到存在问题,但是觉得有更好的方法修正这个错误,希望知道的朋友指正。
////
|
-
2
查看全部评分
-
|