固件C字营·版权所有
敬请关注微信公众号:“固件C字营”
=====================================================================
第3章:Hello World
第一个ACPI/ASL程序“Hello World”,该程序会在调试终端输出“Hello World!”字符串。
第一行,表示该程序需要引用外部的方法(Method)。
第二行,空行,编译器会自动忽略。
第三行,表示定义一个方法“HOWD()“,该方法用“大括号”表示其作用域。
第四/六行,空行,编译器会直接忽略,每一条代码以行结尾。
第五行,调用ADBG()方法从调试终端输出字符串。

以上便是最简单的ACPI/ASL语言“Hello World”程序,同时它也是最复杂的程序,为什么这么说呢?原因是:
- ASL代码一般必须要固化到BIOS ROM内部,所以你必须要把ASL代码根BIOS源码一起 编译进BIOS,并且烧到主板上才可以执行。
- 这里只写了一个Method,具体如何调用Method并没有详细说明,因为ACPI当中并没有一个类似C语言的统一的Main()函数入。当然要想调用这个Method我们有很多的办法比如:放在特定的ACPI设备内部,或自定义一个ACPI设备然后在OS下通过OS提供的接口直接调用ACPI Method,或把Method放在系统睡眠/唤醒调用流程中等等不一而足,后面会详细说明。
- ACPI/ASL语言写的代码如何调试?调试方法又很多,比如:人肉调试,直接写出没错误的代码、用终端打印、插桩法、用WinDebug单步调试等等
调试方法见 第14章:ACPI/ASL调试简介

固件C字营·版权所有
敬请关注微信公众号:“固件C字营”
本文介绍了ACPI编程的第一个程序——Hello World,解释了代码的结构和含义。ACPI/ASL代码通常需要与BIOS源码一起编译并烧录到主板上才能执行。由于没有统一的Main()函数,调用Method的方式多样,包括在特定设备内部、自定义设备或睡眠/唤醒流程中。调试方法包括人肉调试、终端打印、插桩和WinDebug等,更多内容将在后续章节讲解。
1233

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



