TI论坛
直播中

罗标雄

7年用户 140经验值
私信 关注
[问答]

OMAP3530上的中断程序上板后没有调用的原因?

师傅,您好;我是上次那个问GPIO配置中断的,我按照您上次提示的写了个配置GPIO来响应中断的例子,在OMAP3530上跑了,但是我发现我的中断处理函数没有被调用,这是怎么回事呢,我的中断调用函数的特征就是看我那个interruptnum  这个变量变化后能被我看到,证明被中断处理函数调用了,但是上板后发现没有调用 程序如下:
global.h文件
#ifndef GLOBAL_H_
#define GLOBAL_H_
#define CONTROL_PADCONF_CAM_D5 0x48002122 //gpio105 低地址 0x48002120
#define GPIO_OE            0x49054034    //GPIO OE寄存器
#define GPIO_IRQENABLE2     0x4905402C //GPIO4 中断使能,隶属于GPIO4
#define GPIO_RISINGDETECT   0x49054048  //中断引脚的中断探测 隶属于GPIO4
#define GPIO_SYSCONFIG      0x49054010       //SYSCONFIG起始重置,belong to GPIO4 。
#define GPIO_LEVELDETECT0   0x49054040 //使用低电平探测 隶属于GPIO4 上升沿触发
#define GPIO_LEVELDETECT1   0x49054044  //使用高电平探测,隶属于GPIO4 下降沿触发
int  interrupt=0
#endif /*GLOBAL_H_*/

main 文件

#include
#include<tistdtypes.h>
#include
#include
#include "global.h"
#define EVENT_IVA_BANK_4 76//IVA2_IRQ[31]中断对应的事件是76
#define HW_INT_BANK4 7 //使用的硬中断,中断向量是7号
#define LEVELDETECT0     0x00000001  //低电平检测,上升沿有效
#define LEVELDETECT1     0x00000000

#define MUX_MODE_4   (1<<2)   //设置模式为4
#define INPUT_ENABLE (1<<8)   // 查看笔记本焊版配置关键字
#define PULL_UP      (3<<3)   // 设置上拉电位
#define SOFTRESET    0x00000002  // 为sysconfig设置为SOFTRESET

interrupt  void hwi7_isr(void)
[
   interruptnum++;
    interruptnum++;
   
]
void main(void)
[

*( volatile unsigned int* ) GPIO_SYSCONFIG=SOFTRESET;
*( volatile unsigned int* ) CONTROL_PADCONF_CAM_D5=(MUX_MODE_4|INPUT_ENABLE|PULL_UP);
*( volatile unsigned int* ) GPIO_OE=IRQ_REQUEST;
*( volatile unsigned int* ) GPIO_RISINGDETECT=IRQ_REQUEST;//SCHEDULE_REQUEST|COLLECTION_DONE ;
*( volatile unsigned int* ) GPIO_IRQENABLE2=IRQ_REQUEST ;
*( volatile unsigned int* ) GPIO_LEVELDETECT0=IRQ_REQUEST;
   
HWI_enable();
HWI_enableWugen(EVENT_IVA_BANK_4); //GPIO1_IVA2_IRQ **IVA2_IRQ[31]
HWI_eventMap(HW_INT_BANK4,EVENT_IVA_BANK_4);
HWI_dispatchPlug(HW_INT_BANK4,(Fxn)&hwi7_isr,-1,NULL);
]
我能够保证所有的寄存器地址没有问题,麻烦高人指点下还有哪里存在问题?没办法,焦急啊。

回帖(10)

罗标雄

2020-8-14 08:51:56
我用示波器查看了 有来自外界稳定的中断源 方波型中断  通过导线连在GPIO105号线上
举报

朱艳丽

2020-8-14 09:03:33
你是在做DSP下面的测试吗?
IRQ_REQUEST是多少呢? 还有绑定的中断号,怎么看怎么不对!
举报

罗标雄

2020-8-14 09:16:17
引用: hu_wfllllfllllf 发表于 2020-8-14 11:26
你是在做DSP下面的测试吗?
IRQ_REQUEST是多少呢? 还有绑定的中断号,怎么看怎么不对!

是在DSP下测试,但是环境不是CCS  是linux 下,忘了条语句:#define GPIO_PIN   (1<<9)  #define IRQ_REQUEST GPIO_PIN    
IRQ_REQUEST就是 是(1<<9)   因为我想105=32*3+9
举报

罗标雄

2020-8-14 09:25:07
引用: hu_wfllllfllllf 发表于 2020-8-14 11:26
你是在做DSP下面的测试吗?
IRQ_REQUEST是多少呢? 还有绑定的中断号,怎么看怎么不对!

是在DSP下测试,但是环境不是CCS  是linux 下,忘了条语句:#define GPIO_PIN   (1<<9)  #define IRQ_REQUEST GPIO_PIN    
IRQ_REQUEST就是 是(1<<9)   因为我想105=32*3+9
举报

更多回帖

发帖
×
20
完善资料,
赚取积分