2010-06-10 3 views
3

У меня есть функция BIOS, которую мне нужно время от времени вызывать во встроенной системе, а с помощью LRMI я смог успешно ее вызвать из пользовательской космической программы. Теперь я хочу сделать то же самое из загружаемого модуля ядра.Интерфейс реального интерфейса Linux в модуле ядра Linux

Есть ли способ сделать это? Может быть, какая-то другая библиотека?

+0

Встраиваемая система использует BIOS? Какая встроенная система? – Daniel

+0

Если это встроенная система, вы должны найти работу. Возможно, вам следует объяснить, ПОЧЕМУ вы хотите вызвать BIOS из Linux? Например, если вы пытаетесь перепрограммировать BIOS, то, возможно, вы можете загрузиться в раздел DOS, чтобы выполнить эту работу. – BraveNewCurrency

ответ

0

Он имеет отношение к режиму, в котором находится процессор (который является защищенным режимом, который включается после того, как BIOS инициализирует все ресурсы). Чтобы снова использовать прерывания BIOS, вам нужно будет использовать режим v8086, то есть когда процессор эмулирует 16-битную машину реального режима. Затем вы можете установить свои регистры и вызвать прерывание с помощью программы виртуального режима.

Вот как попасть в виртуальный режим: http://www.brokenthorn.com/Resources/OSDev23.html

Вы также можете попробовать и переключение в реальном режиме, но это предполагает сброс процессора. Я не знаю, как вы это сделаете программно, поскольку вы, вероятно, не можете.

+0

На самом деле, LRMI, вероятно, автоматически загружает CPU в состояние v8086, чтобы достичь вызовов BIOS. Если вы хотите сделать это вручную, некоторые быстрые исследования помогут вам разобраться в этом, хотя, по-видимому, это b'eotch. – Magn3s1um

Смежные вопросы