我有一个需要在嵌入式系统上不时调用的 BIOS 功能,并且使用 LRMI 我能够从用户空间程序中成功调用它。现在我想从一个可加载的内核模块做同样的事情。
有没有办法做到这一点?也许其他一些图书馆?
我有一个需要在嵌入式系统上不时调用的 BIOS 功能,并且使用 LRMI 我能够从用户空间程序中成功调用它。现在我想从一个可加载的内核模块做同样的事情。
有没有办法做到这一点?也许其他一些图书馆?
它与处理器所处的模式有关(这是保护模式,在 bios 初始化所有资源后打开)。为了再次使用 BIOS 中断,您必须使用 v8086 模式,这是处理器模拟 16 位实模式机器的时候。然后,您可以设置寄存器并使用虚拟模式程序调用中断。
以下是进入虚拟模式的方法:http ://www.brokenthorn.com/Resources/OSDev23.html
您也可以尝试切换到实模式,但这涉及重置处理器。我不知道您将如何以编程方式执行此操作,因为您可能不能。