主题 : 裸机调 外部中断,就是不通,大哥们进来帮帮忙吧~~~ 复制链接 | 浏览器收藏 | 打印
菜鸟~~~大家多帮帮我~~
级别: 新手上路
UID: 5421
精华: 0
发帖: 15
金钱: 135 两
威望: 95 点
综合积分: 30 分
注册时间: 2009-04-22
最后登录: 2011-01-10
楼主  发表于: 2009-04-23 13:09

 裸机调 外部中断,就是不通,大哥们进来帮帮忙吧~~~

我自己写的 按键1的 一个外部中断程序,可是一直调不通,谁来帮帮忙啊,看看是哪出的问题。

用JTAG 单步调试的过程中,发现怎是进不到中断函数中,是不是我写的向量中断表有问题,小弟已经忙了好几天了,就是调补通这个中断程序,希望大哥们帮帮忙,看看是哪出问题了,还有就是   定时器中断问题,我同样的调不通,不知道是为什么?

我用同学的2410的板子 将  按键的中断程序调通了,可是我的这个2440的板子就怎么也弄不好~~

苦恼中

这是我的程序,ADS  1.2  环境。


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


void key_init(void)
{
rGPGCON=0x80a882;
rGPGUP =0x0;
Uart_Printf("key_init");
}
void __irq extint8()
{
rINTMSK|=BIT_EINT8_23;
Uart_Printf("key1\n");
rSRCPND|=BIT_EINT8_23;
rINTPND|=BIT_EINT8_23;
rINTMSK&=~BIT_EINT8_23;
}
void key_interrupt_init()
{
rINTMOD=0x0;
rINTMSK=0xffffffff;
rEXTINT1=0x44444444;
rEXTINT2=0x44444444;
rEINTMASK=0xfffeff;

pISR_EINT8_23 =(U32)extint8;

rINTMSK&=~BIT_EINT8_23;
Uart_Printf("key_interrupt_init");
}
void Main(void)
{
key_init();
key_interrupt_init();
while(1);

}
[ 此帖被zl57820108在2009-04-28 13:52重新编辑 ]
菜鸟~~~大家多帮帮我~~
级别: 新手上路
UID: 5421
精华: 0
发帖: 15
金钱: 135 两
威望: 95 点
综合积分: 30 分
注册时间: 2009-04-22
最后登录: 2011-01-10
1楼  发表于: 2009-04-28 13:43
总是进不到中断服务程序中去,为什么啊,哪位大哥能帮帮小弟啊,都已经好几天了~~就是调不通
QT 的布局怎么搞?
级别: 侠客
UID: 5575
精华: 0
发帖: 81
金钱: 485 两
威望: 193 点
综合积分: 162 分
注册时间: 2009-04-29
最后登录: 2013-12-02
2楼  发表于: 2009-04-29 22:55
很明显你的程序还调用了N个外部模块, 你把程序打包传上来。我帮你看看!
SBC2410+8' LCD
mini2440+NEt 3.5'
菜鸟~~~大家多帮帮我~~
级别: 新手上路
UID: 5421
精华: 0
发帖: 15
金钱: 135 两
威望: 95 点
综合积分: 30 分
注册时间: 2009-04-22
最后登录: 2011-01-10
3楼  发表于: 2009-05-10 12:38
OK了 ,2440要有  MMU 的初始化,谢谢了
级别: 新手上路
UID: 1852
精华: 0
发帖: 21
金钱: 195 两
威望: 183 点
综合积分: 42 分
注册时间: 2008-10-06
最后登录: 2012-12-02
4楼  发表于: 2009-05-13 23:53
是的  你是再sdram中调试  如果下刀nand flash中就没问题。如果要到ram中调试要开mmu'
级别: 新手上路
UID: 7239
精华: 0
发帖: 2
金钱: 20 两
威望: 20 点
综合积分: 4 分
注册时间: 2009-07-06
最后登录: 2009-09-17
5楼  发表于: 2009-07-06 22:26
LZ,我也碰到同样问题。MMU初始化怎么做?能否把成果贴出来分享一下?那位高手来帮帮忙?
级别: 新手上路
UID: 3065
精华: 0
发帖: 13
金钱: 130 两
威望: 120 点
综合积分: 26 分
注册时间: 2008-12-25
最后登录: 2010-09-25
6楼  发表于: 2009-07-08 15:24
你是不是用H-JTAG调的呀,理论上H-JTAG是不支持外部中断调试的,但可以加MMU存储映射,就可以调了
级别: 侠客
UID: 4843
精华: 0
发帖: 102
金钱: 810 两
威望: 554 点
综合积分: 204 分
注册时间: 2009-03-31
最后登录: 2012-11-14
7楼  发表于: 2009-07-09 00:17
应该是要MMU映射才行;
现在我搞不定这个,楼主能否提供适合2440的MMU初始化代码供参考?谢谢
级别: 新手上路
UID: 6750
精华: 0
发帖: 23
金钱: 250 两
威望: 250 点
综合积分: 46 分
注册时间: 2009-06-15
最后登录: 2010-07-31
8楼  发表于: 2009-07-13 17:51
void __irq extint8()
{
int_count += 1;
rINTMSK|=BIT_EINT8_23;
Uart_Printf("中断次数 = %d\n",int_count);
rSRCPND|=BIT_EINT8_23;
rINTPND|=BIT_EINT8_23;
rINTMSK&=~BIT_EINT8_23;
}
中断次数 = 21582
中断次数 = 21583
中断次数 = 21584
中断次数 = 21585
中断次数 = 21586
中断次数 = 21587
中断次数 = 21588
中断次数 = 21589
中断次数 = 21590
中断次数 = 21591
中断次数 = 21592
中断次数 = 21593
中断次数 = 21594
中断次数 = 21595
中断次数 = 21596
中断次数 = 21597
中断次数 = 21598
中断次数 = 21599
中断次数 = 21600
中断次数 = 21601
中断次数 = 21602
中断次数 = 21603
中断次数 = 21604
中断次数 = 21605
中断次数 = 21
我想按下K1键,然后就产生一次中断,并记下中断的次数,然后在超级终端上显示,怎么我按了一下键,就显示了上面的数据了?
级别: 侠客
UID: 8129
精华: 0
发帖: 78
金钱: 490 两
威望: 213 点
综合积分: 156 分
注册时间: 2009-08-11
最后登录: 2017-09-13
9楼  发表于: 2009-08-11 16:11
楼上的,你这个问题解决了吗??我遇到了和你相同的问题