首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

x86平台下关于读写寄存器,喂看门狗的有关问题

2013-03-26 
x86平台下关于读写寄存器,喂看门狗的问题 是这样的,小弟我是搞软件的,完全不懂硬件,现在接着一个任务需要

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);


疑问如下:
  这里地址指的是什么地址? 我怎么能访问到呢?
  这里的寄存器指的是什么?为什么不是eax,ebx...什么的。
  这里给的是伪代码,我怎么能真正的访问到呢? 准备用c或者汇编写。
  流程很简单,就是概念我不清楚,望前辈解答!感谢了!
[解决办法]
看看‘看门狗’资料,
以地址表示的寄存器,只是硬件的一种说法。(叫口地址更好)
嵌入式CPU中寄存器是可以 以地址寻址的。
X86的寄存器是以名(EAX。。。)寻址的

[解决办法]
windows操作系统不能直接操作硬件,因此你需要用WINIO这个库进行操作硬件,你从网上下个最新的WINIO这个库,并执行这个库的驱动,然后你就调用WINIO这个库函数进行操作硬件端口,具体用法你从网上可以查到

热点排行