x86平台下关于读写寄存器,喂看门狗的问题
是这样的,小弟我是搞软件的,完全不懂硬件,现在接着一个任务需要访问寄存器,定期喂看门狗。程序运行在x86平台下,windows操作系统,然后主板上已带有看门狗, 我只需激活并定期喂它即可。
我要定期往寄存器上写东西, 可是小弟我是搞软件的, 寄存器对我来说就是eax ,ebx, esp ... 之类的, 对于下面的描述完全不懂,大家帮忙看看:
1)IO 访问往地址0x2E写数值0x87,连续写入两次:
IoWrite8(0x2E,0x87);
IoWrite8(0x2E,0x87);
2)选择Watch Dog逻辑设备并激活Watch Dog(设置0x30寄存器的bit0即可):
IoWrite8(0x2E,0x07);
IoWrite8(0x2F,0x08); //逻辑设备0x08
IoWrite8(0x2E,0x30);
IoWrite8(0x2F,(IoRead8(0x2F)| 0x01)); //激活Watch Dog
3)设置Watch Dog计数单位为分钟还是秒钟(设置0xF5寄存器的bit3即可):
IoWrite8(0x2E,0xF5);
IoWrite8(0x2F,(IoRead8(0x2F)& 0xF7)); //这里以秒钟计数为例(设置bit3为0),分钟则设置bit3为1即可
4)设置计数时间(往0xF6写所需要的时间值即可):
IoWrite8(0x2E,0xF6);
IoWrite8(0x2F,value); //value为所设置的时间值大小
5)退出IO访问:
IoWrite8(0x2E,0xAA);