arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
阅读:867回复:4

关于8259的问题

楼主#
更多 发布于:2002-05-29 13:28
在我的ISA板上,带了一个8259,偶地址0xc,奇地址0xd
我这样初始化它:
outp(BASE, 0xc, 0x13); //ICW1
outp(BASE, 0xd, 0x60); //ICW2
outp(BASE, 0xd, 0x01); //ICW4,no bufer,8086 mode
outp(BASE, 0xc, 0x00); //OCW2, write IMR
可是我从来没有接收到它的中断。
还要什么操作呀?
在ISR:
outp(BASE, 0xc, 0x0b); //OCW3, requst to read ISR
btReg = intp(BASE, 0xc);
...
outp(BASE, 0xc, 0x20); //OCW2, send EOI
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
沙发#
发布于:2002-05-29 13:48
是问的太弱智了,还是怎么地? :P
FoolishMan
驱动牛犊
驱动牛犊
  • 注册日期2002-05-10
  • 最后登录2002-10-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-05-29 23:29
不是,是太难了,我是无能为力
Alexander
驱动大牛
驱动大牛
  • 注册日期2002-02-04
  • 最后登录2005-06-16
  • 粉丝0
  • 关注0
  • 积分-5分
  • 威望-1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-05-30 01:53
希望对你有帮助:
1.书上说是8259里的中断控制寄存器地址是20h,你用的是0xc.
2.outp(BASE, 0xc, 0x00); //OCW2, write IMR,如果用0xc是对的,你是不是应该这样:outp(BASE, 0xc, 0x20); //OCW2, write IMR?
Ares
驱动小牛
驱动小牛
  • 注册日期2001-03-28
  • 最后登录2020-04-09
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望114点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
  • 社区居民
地下室#
发布于:2002-05-30 17:36
你的卡上的8259接到PC的中断线上了吗?
易水
游客

返回顶部