duhao

duhao

0个粉丝

8

问答

0

专栏

0

资料

duhao  发布于  2014-12-11 20:44:47
采纳率 0%
8个问答
8464

配置寄存器设置中断触发方式

 
大家好,想问一下,海思配置寄存器来设置中断触发方式的问题,寄存器设置我是按下面步骤来的
1. 配置GPIO_IS,选择边沿触发或电平触发。
2. 配置GPIO_IEV,选择下降沿/上升沿触发和高电平/低电平触发。
3. 如果选择边沿触发,需配置GPIO_IBE,选择单沿或双沿触发方式。
4. 保证GPIO 数据线在以上操作过程中保持稳定。
5. 向寄存器GPIO_IC 写0xFF,清中断。
6. 配置GPIO_IE 为1,使能中断。

然后申请中断request_irqs(),为什么老是出错。

下面是代码是驱动程序里面open函数里面的,gpio7的中断号为112
*gpio7_6_reg &= ~0x1;   //设置gpio7-6为通用寄存器
*gpio7_7_reg &= ~0x1;   //设置gpio7-7为通用寄存器
        *gpio7_dir &= 0x0<<6; //gpio6.7为输入Î
       // *gpio7_is&=0x00<<6;
          *gpio7_is|=0x03<<6;gpio6,7为电平触发
          *gpio7_iev&=0x0<<6;gpio6,7为低电平触发
       // *gpio7_ibe&=0x00<<6;
        *gpio7_ic|=0xff;清中断
        *gpio7_ie|=0x3<<6;使能中断
       irq_err0 = request_irq(wiegand_irqs[0].irq, wiegand_irq0,IRQ_TYPE_LEVEL_HIGH,wiegand_irqs[0].name, (void *)&wiegand_irqs[0].id);
        if (irq_err0)
         {
            printk("request_irq error %d",wiegand_irqs[0].id);
         }
irq_err1 = request_irq(wiegand_irqs[1].irq, wiegand_irq1,IRQ_TYPE_LEVEL_HIGH,wiegand_irqs[1].name, (void *)&wiegand_irqs[1].id);
        if (irq_err1)
         {
            printk("request_irq error %d",wiegand_irqs[1].id);
         }


驱动安装成功后,运行测试程序时,调用open函数打开设备时就显示打开设备失败:
setting trigger mode 2 for irq 112 failed (gic_set_type+0x0/0xc4)
request_irq error 6
setting trigger mode 2 for irq 112 failed (gic_set_type+0x0/0xc4)
request_irq error 7

还是不懂为什么,有人指导一下么?谢谢。。。
我来回答
回答6个
时间排序
认可量排序

hilinux

0个粉丝

17

问答

0

专栏

0

资料

hilinux 2014-12-12 22:44:48
认可0
先确认一下中断向量是否注册到系统里
如没有 先注册一下

duhao

0个粉丝

8

问答

0

专栏

0

资料

duhao 2014-12-18 16:15:38
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=10224&ptid=4721]hilinux 发表于 2014-12-12 22:44[/url]
先确认一下中断向量是否注册到系统里
如没有 先注册一下[/quote]

不好意思,好几天没上了,这个暂时没搞了,之前中断向量是有注册到系统的,在proc/interruput里有看到,想问一下海思开发板usb转串口驱动哪里有啊

宇文六

0个粉丝

0

问答

0

专栏

0

资料

宇文六 2015-10-23 14:16:45
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=10224&ptid=4721]hilinux 发表于 2014-12-12 22:44[/url]
先确认一下中断向量是否注册到系统里
如没有 先注册一下[/quote]

请问一下怎么将中断向量注册到系统?
我刚开始做,懂得不多,麻烦了。

david

41个粉丝

368

问答

253

专栏

229

资料

david 2016-01-22 20:40:32
认可0
中断方式请用
IRQF_TRIGGER_FALLING|IRQF_SAMPLE_RANDOM

或者
IRQF_SHARED |

hanfei69882

2个粉丝

26

问答

0

专栏

2

资料

hanfei69882 2016-09-26 15:00:08
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=24880&ptid=4721]david 发表于 2016-1-22 20:40[/url]
中断方式请用
IRQF_TRIGGER_FALLING|IRQF_SAMPLE_RANDOM

[/quote]

是IRQF_SHARED | ?
还是IRQF_SHARED

494816491

0个粉丝

7

问答

4

专栏

0

资料

494816491 2016-01-22 21:00:22
认可0
本帖最后由 494816491 于 2016-1-22 21:08 编辑

回复看看

或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
+ 添加网盘链接/附件

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

易百纳技术社区