为什么ARM中断无法响应?

hanhannina 2009-07-31 06:13:05
我写的程序如下:

#include "def.h"
#include "option.h"
#include "2440addr.h"
#include "2440lib.h"

static int count = 0;

static void __irq EINT18_ISR(void)

{
rSRCPND |= (1<<5);
rINTPND |= (1<<5);

count++;
Uart_Printf("count = %d\n", count);
}
void xmain(void)
{
ChangeClockDivider(3,1);
ChangeMPllValue(127,2,1); //405MHZ

Uart_Init(0, 115200);
Uart_Select(0);
Uart_Printf("the main is running.\n");

//-----------------中断初始化----------------//
//选择功能管脚
rGPGCON = ( rGPGCON | (3<<20) & ( ~(1<<20)) );//EINT18 -> GPG10
//中断模式
rINTMOD = rINTMOD & ( ~(1<<5) );//EINT18 IRQ mode
//触发方式
rEXTINT2 = ( rEXTINT2 | (7<<8) ) & ( ~(5<<8) );//EINT18 falling edge triggered
//使能中断
rINTMSK = rINTMSK & ( ~(1<<5) );//EINT18 interrupt service available
rEINTMASK = rEINTMASK & (~(1<<18));
//清中断
rSRCPND |= (1<<5);//to clear EINT18
rINTPND |= (1<<5);//
//中断向量
pISR_EINT8_23 = (U32)EINT18_ISR;//EINT18

while(1)
{
}
}

程序运行后对外部中断没有相应,这是为什么呢?
...全文
187 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
goodlinux 2009-08-03
  • 打赏
  • 举报
回复
中断向量表的初始化网上有很多啊。
beyondma 2009-08-03
  • 打赏
  • 举报
回复
对一下楼下,JTAG是最好的。
hanhannina 2009-08-02
  • 打赏
  • 举报
回复
请问有中断向量表的初始化代码吗?
Great_Bug 2009-08-02
  • 打赏
  • 举报
回复
自己弄个HJTAG什么的,或者买个好些的JTAG下载工具,在调试小程序时可能更好用些
goodlinux 2009-08-01
  • 打赏
  • 举报
回复
为什么要用u-boot加载呢?出了问题都很难知道。直接烧进去运行啊。
hanhannina 2009-08-01
  • 打赏
  • 举报
回复
没有,怎么写?你有吗?谢谢。中断向量表不是由u-boot初始化吗?我的程序是由u-boot加载的。
goodlinux 2009-08-01
  • 打赏
  • 举报
回复
你有没有一个汇编的文件初始化中断向量表?
hanhannina 2009-08-01
  • 打赏
  • 举报
回复
那我在xmain函数中添加如下代码,是不是就可以了呢?
__asm
{
MOV r0,0x53
MSR CPSR_cxsf,r0
}
Great_Bug 2009-08-01
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 hanhannina 的回复:]
那我在xmain函数中添加如下代码,是不是就可以了呢?
__asm
{
MOV r0,0x53
MSR CPSR_cxsf,r0
}

[/Quote]
这个可能不行....因为这条指令需要在特权模式下才能执行,如果你的xmain不是处于特权模式,指令不会被执行,搞不好还会触发异常
Great_Bug 2009-07-31
  • 打赏
  • 举报
回复
CPSR配置没有?? 通常你的项目会有一个汇编语言的模块,处理处理器最开始的初始化,其中就有CPSR的中断使能位...如果你的工具提供了相应的配置功能,你该能找到...

(打错了那么多......)
Great_Bug 2009-07-31
  • 打赏
  • 举报
回复
CPSR配置没有?? 通常你的项目会有一个汇编语言的模块,处理处理最开始的初始化,其中就有中断CPSR的中断使能位...如果你的工具提供的相应的配置功能,你该能找到...

21,597

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
  • 驱动开发/核心开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧