嵌入式开发者社区

标题: 工程调试程序问题 [打印本页]

作者: 传奇    时间: 2015-9-2 11:45
标题: 工程调试程序问题
单步调试工程,在一个C文件的最后执行完    IntEnable(C674X_MASK_INT4); IntEnable(C674X_MASK_INT5);  IntGlobalEnable();
    IntEnable(C674X_MASK_NMI);后出现No source available for "0x0" ,而且Disassembly窗体中出现:
00000000:   ???? Memory map prevented reading 0x00000000 [code=0x20000]
00000004:   ???? Memory map prevented reading 0x00000004 [code=0x20000]
00000008:   ???? Memory map prevented reading 0x00000008 [code=0x20000]
0000000c:   ???? Memory map prevented reading 0x0000000C [code=0x20000]
00000010:   ???? Memory map prevented reading 0x00000010 [code=0x20000]
00000014:   ???? Memory map prevented reading 0x00000014 [code=0x20000]
00000018:   ???? Memory map prevented reading 0x00000018 [code=0x20000]
0000001c:   ???? Memory map prevented reading 0x0000001C [code=0x20000]
00000020:   ???? Memory map prevented reading 0x00000020 [code=0x20000]
00000024:   ???? Memory map prevented reading 0x00000024 [code=0x20000]
..............

不清楚这个是什么问题????



作者: 希望缄默    时间: 2015-9-2 12:54
跑飞
作者: 传奇    时间: 2015-9-2 15:59
希望缄默 发表于 2015-9-2 12:54
跑飞

那怎么解决这一问题呢?
作者: 希望缄默    时间: 2015-9-2 16:47
传奇 发表于 2015-9-2 15:59
那怎么解决这一问题呢?

检查你的程序
作者: 传奇    时间: 2015-9-3 16:04
希望缄默 发表于 2015-9-2 16:47
检查你的程序

按照你的建议,我查了下我的工程,我的工程中使用两个中断,分别映射到中断4和5,在中断中分别设置断点,中断服务程序可以正常进入,但现在的问题是:我全速运行时,中断就不能正常进入,停止Debug,就 会出现 No source available for ‘0X7f4d6c’,而且Disassembly窗体中出现:
00000000:   ???? Memory map prevented reading 0x00000000 [code=0x20000]的问题,所以,想请教下:
1.你说的程序跑飞,有没有可能是中断的问题??
2.如果是中断的问题,那些地方会对程序有所影响???
麻烦工程师指点
作者: 希望缄默    时间: 2015-9-3 17:55
传奇 发表于 2015-9-3 16:04
按照你的建议,我查了下我的工程,我的工程中使用两个中断,分别映射到中断4和5,在中断中分别设置断点, ...

0x007f4d6c 是内部 ROM 地址 程序进入这个地址证明你的程序肯定跑飞了

1、有可能
2、这个很难说 具体代码具体分析 建议你分别屏蔽部分代码 然后逐步找出来出问题的语句
作者: 传奇    时间: 2015-9-4 16:35
希望缄默 发表于 2015-9-3 17:55
0x007f4d6c 是内部 ROM 地址 程序进入这个地址证明你的程序肯定跑飞了

1、有可能

谢谢创龙工程师的指点,我把中断部分全部屏蔽掉后,就没有出现上面的问题,所以我认为应该是中断的问题,但中断配置参照的创龙的例程,应该没有问题的,不知道中断哪部分会导致程序跑飞呢?????
void InterruptInit(void)
{
        // 初始化 DSP 中断控制器
        IntDSPINTCInit();

        IntGlobalEnable();

    GPIOIntTypeSet(SOC_GPIO_0_REGS, 8, 1);//设置0[7]为下降沿触发
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 61, 1);//设置3[12]为下降沿触发

    // 使能 GPIO BANK 中断
    GPIOBankIntEnable(SOC_GPIO_0_REGS, 0);                  // USER0 KEY GPIO0
    GPIOBankIntEnable(SOC_GPIO_0_REGS, 3);

        // 注册中断服务函数
        IntRegister(C674X_MASK_INT4, Irq04);
        IntRegister(C674X_MASK_INT5, Irq05);


        IntEventMap(C674X_MASK_INT4,SYS_INT_GPIO_B0INT);//bank0对应中断号为65
        IntEventMap(C674X_MASK_INT5,SYS_INT_GPIO_B3INT);//bank3对应中断号为52

    // 使能中断
    IntEnable(C674X_MASK_INT4);
    IntEnable(C674X_MASK_INT5);

}
作者: 希望缄默    时间: 2015-9-6 09:01
传奇 发表于 2015-9-4 16:35
谢谢创龙工程师的指点,我把中断部分全部屏蔽掉后,就没有出现上面的问题,所以我认为应该是中断的问题, ...

分别屏蔽与中断相关的部分代码 然后逐步找出来出问题的语句




欢迎光临 嵌入式开发者社区 (https://www.51ele.net/) Powered by Discuz! X3.4