免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2850 | 回复: 5
打印 上一主题 下一主题

为什么不能向并口地址写入数据? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-11-18 14:21 |只看该作者 |倒序浏览
使用out_p向并口中写数据,但是其值总是不变,总是为0xff,例如outb_p(0x10, BASEPORT + 2); 加入调试语句printk("0x37A=%x\n",inb_p(BASEPORT+2));结果输入为0x37A=ff,以下几个outb_p也是一样,无法向并口地址写入数据,这是为什么?
#include <linux/module.h>
#include <linux/interrupt.h>
#include <asm/io.h>

#define BASEPORT 0x378
static unsigned long devid;
int cntr;

static irqreturn_t handler(int irq, void *data)
{
        cntr++;
        printk("parint: >>> Interrupt PARALLEL PORT INT %d HANDLED\n", cntr);
        return IRQ_HANDLED;
}

int xinit_module(void)
{
        int ret;
        ret = request_irq(7, handler,  SA_INTERRUPT   , "parallelport", (void *)&devid);
        if (ret)        { printk ("parint: error requesting irq 7: returned %d\n", ret); }
        outb_p(0x10, BASEPORT + 2);

        printk("parint: Generating Interrupt now on all output pins (intr/ACK = pin 10)\n");
        //generate interrupt
        outb_p(0, BASEPORT);
        outb_p(255, BASEPORT);
        outb_p(0, BASEPORT);
        printk("parint: Interrupt generated. You should see the handler-message\n");
        return 0;
}

void xcleanup_module(void)
{
        disable_irq(7);
        free_irq(7, (void *)&devid);
}

module_init(xinit_module);
module_exit(xcleanup_module);
MODULE_LICENSE("GPL");

论坛徽章:
0
2 [报告]
发表于 2008-11-20 15:49 |只看该作者
已经搞定了

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
3 [报告]
发表于 2008-11-20 15:59 |只看该作者
原帖由 wendy0552 于 2008-11-20 15:49 发表
已经搞定了

楼主,这里不是自动答题机,在你发问的同时,我希望你也能和别人共享下你的经验,例如问题是什么、如何解决的,等等。

论坛徽章:
0
4 [报告]
发表于 2008-11-21 10:45 |只看该作者
搞定了也说说如何搞定的吗。

论坛徽章:
0
5 [报告]
发表于 2009-06-15 17:11 |只看该作者
十分不好意思,我都把这个帖子忘了,虽然时间过去很久了,还是把解决方法说下吧,要不实在是不太厚道。其实程序没有问题,而是犯了一个很低级的错误,就是没有把BIOS中的并口打开,实在惭愧,所以都不敢把解决方法贴出来了, 以后发贴问问题之前一定会先想清楚。

论坛徽章:
0
6 [报告]
发表于 2012-04-02 19:56 |只看该作者
我的也碰到了这个问题,但不是并口没打开。请问还有其他可能的原因吗
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP