我有一个需要在嵌入式系统上定期调用的BIOS函数,使用LRMI,我已经成功地从用户空间程序中调用它。现在,我想从可加载内核模块中执行相同的操作。
是否有任何方法可以实现这一点?或者可能使用其他库吗?
我有一个需要在嵌入式系统上定期调用的BIOS函数,使用LRMI,我已经成功地从用户空间程序中调用它。现在,我想从可加载内核模块中执行相同的操作。
是否有任何方法可以实现这一点?或者可能使用其他库吗?
这与处理器所处的模式有关(即保护模式,在BIOS初始化所有资源后启用)。为了再次使用BIOS中断,您将需要使用v8086模式,这是处理器模拟16位实模式机器的模式。然后,您可以设置寄存器并使用虚拟模式程序调用中断。
以下是进入虚拟模式的方法:http://www.brokenthorn.com/Resources/OSDev23.html
您也可以尝试切换到实模式,但这涉及重置处理器。由于可能无法进行编程,因此我不知道该如何执行此操作。