这几天一直在回忆HW Monitor的读取方法,因为之前的source code 被误删掉了,所以翻出ICH10和SIO的datasheet重看了一下。找到一个很好的论坛,需要了解硬体操作的可以看下 :http://bbs.2beanet.com/map.php?forum=5&news
1.AP访问底层需要通过驱动中转,常用的工具是WinIo,它通过加载内核级驱动来提供底层操作,也正因如此在使用读写函数前需要初始化。
2.SIO的型号是W83627DHG ,是通过LPT BUS连接到ICH10的,通常LPT bus的入口是0x295和0x296 ,这个是I\O map可以用inputb和ouputb直接操作。 W83627DHG也可以通过IIC连接ICH10 ,这种情况地址是0x48。如果不确定连接方式可以通过0x2E 0x2F或者0X4E 0X4F(if HEFRAS pin pulse hight) 读取CR60和CR61得到SIO的基地址。下面是一段demo code
;-----------------------------------------------------
; Enter the Extended Function Mode
;-----------------------------------------------------
MOV DX, 2EH
MOV AL, 87H
OUT DX, AL
OUT DX, AL
;-----------------------------------------------------------------------------
; Configure Logical Device 1, Co