У меня нет абсолютно никакого опыта или знаний относительно аппаратных регистров и как взаимодействовать с ними через код. Однако мой текущий проект на C # требует, чтобы я считывал температуру с микросхемы на SMBus, и я думаю, что мне придется испачкать руки. Если вы хотите знать, датчик температуры Winbond W83793G.
Мне предстоит пройти долгий путь, но я начал с просмотра этого документа на странице 5:
smbus.org/specs/smbb10.pdf
Кажется, первым шагом к выполнению моей задачи является запись в следующие аппаратные регистры: AX, BH, BL, CH, CL и чтение возвращаемых значений из следующих: Carry, AH, AL, BL, CH, CL, DX. Используя это, я могу определить, доступен ли «SMBus BIOS Interface». Что еще более важно, если мне удастся справиться с этим в C #, я смогу проследить остальную часть документации, чтобы в конечном итоге прочитать ее с Winbond W83793G и извлечь нужные мне значения из датчиков температуры. И нет, OpenHardwareMonitor в настоящее время не поддерживает SMBus, поэтому я не могу обратиться к нему за кодом.
Итак, мой основной вопрос: каков простой и эффективный способ чтения и записи в аппаратные регистры с использованием C #?
И, кроме того, если бы вы могли оставить отзыв о моей конкретной проблеме чтения с чипа, это было бы бонусом для меня, и я был бы очень признателен!