在Linux内核模块中的Linux实模式接口

3

我有一个需要在嵌入式系统上定期调用的BIOS函数,使用LRMI,我已经成功地从用户空间程序中调用它。现在,我想从可加载内核模块中执行相同的操作。

是否有任何方法可以实现这一点?或者可能使用其他库吗?


嵌入式系统使用BIOS吗?是哪种嵌入式系统? - Daniel
如果这是一个嵌入式系统,你应该找到一个解决方法。也许你应该解释一下为什么想要从Linux调用BIOS?例如,如果你试图重新刷写BIOS,那么或许可以引导进入DOS分区来完成工作。 - BraveNewCurrency
1个回答

0

这与处理器所处的模式有关(即保护模式,在BIOS初始化所有资源后启用)。为了再次使用BIOS中断,您将需要使用v8086模式,这是处理器模拟16位实模式机器的模式。然后,您可以设置寄存器并使用虚拟模式程序调用中断。

以下是进入虚拟模式的方法:http://www.brokenthorn.com/Resources/OSDev23.html

您也可以尝试切换到实模式,但这涉及重置处理器。由于可能无法进行编程,因此我不知道该如何执行此操作。


实际上,LRMI 可能会自动将 CPU 置于 v8086 状态以便调用 BIOS。如果您想手动执行此操作,一些快速的研究应该可以帮助您弄清楚,尽管显然这是一个麻烦的过程。 - KrisSodroski

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接