Получить байт диагностики на python/c++
Подскажите пожалуйста, как можно получить байт диагностики в python / c++? Есть код на плюсах с outp/inp, но их выпилили из функционала в 2015, а аналогов не нашёл.
P.S.: в cmos по адресу 0Eh располагается байт состояния диагностики.
Ответы (1 шт):
Автор решения: Resistance杀杀杀
→ Ссылка
Извиняюсь, что не отписался сразу (если вдруг кому надо было)
Для получения байта диагностики надо учитывать несколько "неадекваток":
- В новых линейках процессора, судя по всему, нет такого байта по такому адресу (0Eh)
- Под новыми линейками процессора я понимаю процессоры, которые вышли с, примерно, 2010 года
Если вдруг у вас проц <2010 года, то предлагаю вам склонировать PyPmx себе (https://github.com/15432/PyPmx) и работать через этот модуль. Пример кода вот тут, по названиям функций можно понять, что делает каждая
from PyPmx import PmxInterface
pmx = PmxInterface()
def readCmos(addr):
pmx.IoWrite8(0x70, addr | (1 << 7))
return pmx.IoRead8(0x71)
def printCmosTime():
hours = readCmos(4)
minutes = readCmos(2)
seconds = readCmos(0)
print ("time: %x:%x.%x" % (hours, minutes, seconds))
def printCmosDbg():
print ("dbg: %x" % (readCmos(0xe)))
printCmosTime()
printCmosDbg()