5512|6

3

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

一进中断处理程序就死机,大家帮忙看看这段代码 [复制链接]

这是一个简单的并口驱动,要求能够处理并口的中断,并给出一个打印信息。个人感觉没有问题,但是一给中断就死机。大家帮忙看看吧。 #include <linux/module.h> #include <linux/kernel.h> #include <linux/sched.h> #include <linux/ioport.h> #include <asm/io.h> #define TOGNUM 2000 #define BASE 0x378 MODULE_LICENSE("GPL"); //static int count; static int major=240; static int irq=7; void int_handler(int irq,void* dev_id,struct pt_regs *regs) { printk("<1>Get Interrupt!\n"); } struct file_operations par_fops={ }; int init_module(void) { int rc; if((major=register_chrdev(major,"parport_test",&par_fops))<0) { printk("Cannot register character device\n"); return 0; } if(check_region(BASE,4)) { printk("Port is been using\n"); unregister_chrdev(major,"parport_test"); } request_region(BASE,4,"parport_test"); printk("<1>Line:%d\n",__LINE__); rc=request_irq(irq,int_handler,SA_INTERRUPT,"parport_test",NULL); printk("<1>Line:%d\n",__LINE__); if(rc) return rc; return 0; } void cleanup_module(void) { release_region(BASE,4); free_irq(irq,NULL); unregister_chrdev(major,"parport_test"); }

最新回复

进中断时你有没有保护现场  详情 回复 发表于 2008-1-28 14:10
点赞 关注

回复
举报

2

帖子

0

TA的资源

一粒金砂(初级)

沙发
 

回复:一进中断处理程序就死机,大家帮忙看看这段代码

有没有这个可能,你的中断是电平触发,结果进了中断后你没关中断,导致不停触发中断处理函数,系统就down 掉了?
 
 

回复

3

帖子

0

TA的资源

一粒金砂(初级)

板凳
 

回复:一进中断处理程序就死机,大家帮忙看看这段代码

我用的中断确实是电平触发,我是在触发程序里做的关中断。我也尝试过在ISR中关中断,结果一样。
 
 
 

回复

2

帖子

0

TA的资源

一粒金砂(初级)

4
 

回复:一进中断处理程序就死机,大家帮忙看看这段代码

你确认你关中断的操作成功了吗,如何确认的? 你的关中断操作只在linux系统成面实现了吗?对应相应寄存器有没有做出相应操作。 系统终端显示ISR中printk的次数。。
 
 
 

回复

3

帖子

0

TA的资源

一粒金砂(初级)

5
 

回复:一进中断处理程序就死机,大家帮忙看看这段代码

触发中断时,我用示波器看了并口的pin9,有波形输出,关中断时就是对并口的0x378寄存器进行操作。ISR一次都没有执行。 怀疑是硬件问题
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

6
 

回复:一进中断处理程序就死机,大家帮忙看看这段代码

前辈,是否将此问题解决?我在作驱动的时候也遇到了想你那样的问题,只要外部的硬件中断以来系统直接死机
 
 
 

回复

399

帖子

0

TA的资源

裸片初长成(初级)

7
 

回复:一进中断处理程序就死机,大家帮忙看看这段代码

进中断时你有没有保护现场
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表