founder-mcu 发表于 2011-2-17 17:10:42

s3c44b0x 进不了中断

刚学arm,现在遇到问题,调了好多天,还没解决,谁帮帮忙啊,

#include"44b.h"
#include"option.h"

/*
int pIrqStart = 0;
int pIrqFinish = 0;
int pIrqHandler = 0;
*/

int tempdat;

void __irq KEY_INT (void);

void PLL_Init() //CPU clock set   
{
rPLLCON = (0X48 << 12)|(0X3 << 4)|0X2;//40MHZ
}

void IO_Init()      //IO初始化
{
        rPCONC = 0X55555555;
        rPDATC = 0X4;
        rPCONG = 0XFF00;
}

void INT_Init()    //中断初始化
{
        rEXTINT = 0X0;
        //rEXTINTPND = 0X0;
        rINTCON = 0X5;
        rINTMOD = 0X0;
        rINTMSK = ~(BIT_GLOBAL|BIT_EINT4567);
        rI_ISPC = 0X3FFF;       
       
}

int Main()
{
        IO_Init();
        INT_Init();
        PLL_Init();
        pISR_EINT4567 = (unsigned)KEY_INT;
        while(1);
        {
                tempdat = rINTPND;
        }
}

void __irq KEY_INT (void)    //中断
{
        rPDATC = 0XF;
       
        rI_ISPC |= BIT_EINT4567;
       
       
        if( (rEXTINTPND & (1<<0) ) != 0)       
        {
                rPDATC = 0X2;
                rEXTINTPND |= (1 << 0);
        }       
       
        if( (rEXTINTPND & (1<<1) ) != 0)       
        {
                rPDATC = 0X4;
                rEXTINTPND |= (1 << 1);
        }
       
        if( (rEXTINTPND & (1<<2) ) != 0)       
        {
                rPDATC = 0X8;
                rEXTINTPND |= (1 << 2);
        }
       
        if( (rEXTINTPND & (1<<3) ) != 0)       
        {
                rPDATC = 0X0;
                rEXTINTPND |= (1 << 3);
        }
}

founder-mcu 发表于 2011-2-17 17:14:39

只能自己顶了,

wxm521216 发表于 2011-2-17 18:48:17

启动代码里面好像有一个地方是要设置中断使能的代码。

founder-mcu 发表于 2011-2-17 19:01:26

回复【2楼】wxm521216
启动代码里面好像有一个地方是要设置中断使能的代码。
-----------------------------------------------------------------------

这个应该不需要自己改吧,我直接用的是板子测试程序的启动代码


这个是工程文件ourdev_616716TL9J9L.zip(文件大小:40K) (原文件名:interrupt_test.zip)

wxm521216 发表于 2011-2-17 19:15:55

在44binit.s文件中的第215行中,已经将所有的中断屏蔽了。
    ldr          r0,=INTMSK
    ldr          r1,=0x07ffffff;all interrupt disable(屏蔽所有中断)
    str          r1,

wxm521216 发表于 2011-2-17 19:23:30

不好要意思没看完整,在你贴的文件中已经开中断了。rINTMSK = ~(BIT_GLOBAL|BIT_EINT4567);

founder-mcu 发表于 2011-2-17 19:25:52

回复【5楼】wxm521216
不好要意思没看完整,在你贴的文件中已经开中断了。rintmsk = ~(bit_global|bit_eint4567);

-----------------------------------------------------------------------

没事,谢谢你了,只有你愿意帮我,我调了好多天,还是没调出来,现在在看启动代码的资料,你看下我那工程设置的参数是不是有错啊

wxm521216 发表于 2011-2-17 20:38:34

你把44binit.s文件中第40行 "NOIN EQU 0xc0"改成"NOINT EQU 0x00"

yuele 发表于 2013-1-8 14:34:40

no,要开cpsr的中断
页: [1]
查看完整版本: s3c44b0x 进不了中断