bootloader平台上怎么使用中断?

发布于 2022-09-26 13:25:00 字数 406 浏览 13 评论 0

我目前在ADS里写了段代码,里面用到了2410的IRQ外部中断10,编译后生成test.bin,当我使用DNW把它Transmit到RAM后,程序能够正常运行,能正常响应中断处理函数。

但是无论在vivi还是u-boot的平台上,固化test.bin后,程序都不能正常运行。

之前在vivi的平台上,有高手给出过如下建议:“如果需要中断,其实很简单,在某一RAM空间设置好中断向量然后将这一段空间映射到0地址就可以了。”但是我摸索了很久,也没弄懂到底该怎么做。

我的需求就是:使用ADS开发一些程序,其中肯定要用到中断,最后利用bootloader把编译好的程序烧写到板子上,但是我不跑操作系统。

目前在bootloader平台上使用中断碰到了很大的困难,大家能给些帮助吗?

多谢!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

旧话新听 2022-10-03 13:25:00

要修改bootloader的代码,直接由bootloader下载向量表是由bootloader管理的。
你的代码所在位置根本不对~~

扮仙女 2022-10-03 13:25:00

请教gaocheng:
为什么同样的一个bin文件,我使用DNW烧写时,就能正常响应中断,而在vivi或者u-boot下就不能正常响应中断?
目前中断相关的部分代码如下:
#define _ISR_STARTADDRESS       0x33ffff00

...

#define pISR_EINT8_23  (*(unsigned *)(_ISR_STARTADDRESS+0x34))

...

static void __irq EintHandler(void)
{   
   
    if (rINTPND==BIT_EINT8_23)
    {
         
        if(rEINTPEND&(1<<10))      //EINT8_23 判断子中断   
       {
           Uart_Printf("Interrupt eint10 occur...\n");
           rEINTPEND |= 1<< 10;
        }

        ClearPending(BIT_EINT8_23);

     }
   
}

....

int main()

{

    ...

    //initialize interrupt

    rGPGCON = (rGPGCON & 0xFFFFFFCC) | 0x00000020;// GPG0 is input,GPG2 is EINT10

    rGPGUP  = (rGPGUP & 0xFFFA) | 0x0005; //禁止GPG2,GPG0上拉

    rEXTINT1 &= ~(7<<8);

    rEXTINT1 |= (2<<8);//set eint10 falling edge int

    rEINTPEND |= (1<<10);//clear eint10

    rEINTMASK &= ~(1<<10);//enable eint10

    pISR_EINT8_23=(unsigned)EintHandler;

    EnableIrq(BIT_EINT0|BIT_EINT2|BIT_EINT8_23);//开中断

    while(1)

    {

        Uart_Printf("the main is running\n");

        Delay(50);

    }

}

bootloader代码应该怎么改呢?

[[i] 本帖最后由 mathieu 于 2007-10-9 10:39 编辑 [/i]]

南街九尾狐 2022-10-03 13:25:00

建议你读一下U-boot代码,在u-boot下。中断由u-boot管理。不会访问你的中断处理函数

冷心人i 2022-10-03 13:25:00

但是无论在vivi还是u-boot的平台上,固化test.bin后,程序都不能正常运行----固化程序后,程序就不存放在内存里面了,而是写在flash里面,flash的首地址是0x00000000,而内存的首地址则不是这个数。那你在程序里面进行跳转就会出问题吧,也许是因为这个。解决方法不详,但是没有操作系统的话,解决方法一定很多的。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文