程序仿真,在DEBUG模式下,设置了几个断点,前几个能到,后几个就到不了,单步运行时候也是到某一条代码后,在点击单步运行后就变成RUN模式了,点停止后,报这样的提示:No source available for "0x33079e" ;这是怎么回事呢?
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
是这样的,有一段代码:
void main(void)
{
// Step 1. Initialize System Control:
// PLL, WatchDog, enable Peripheral Clocks
// This example function is found in the DSP2833x_SysCtrl.c file.
InitSysCtrl();
// Step 2. Initalize GPIO:
// This example function is found in the DSP2833x_Gpio.c file and
// illustrates how to set the GPIO to it's default state.
// InitGpio(); // Skipped for this example
InitXintf16Gpio(); //zq
// Step 3. Clear all interrupts and initialize PIE vector table:
// Disable CPU interrupts
DINT;
// Initialize the PIE control registers to their default state.
// The default state is all PIE interrupts disabled and flags
// are cleared.
// This function is found in the DSP2833x_PieCtrl.c file.
InitPieCtrl();
// Disable CPU interrupts and clear all CPU interrupt flags:
IER = 0x0000;
IFR = 0x0000;
// Initialize the PIE vector table with pointers to the shell Interrupt
// Service Routines (ISR).
// This will populate the entire table, even if the interrupt
// is not used in this example. This is useful for debug purposes.
// The shell ISR routines are found in DSP2833x_DefaultIsr.c.
// This function is found in DSP2833x_PieVect.c.
InitPieVectTable();
configtestled();
// LED1=1;
// DELAY_US(10);
// LED2=1;
// DELAY_US(10);
LED1=0;
DELAY_US(10);
LED2=0;
DELAY_US(10);
LED3=0;
DELAY_US(10);
LED4=0;
DELAY_US(10);
LED5=0;
DELAY_US(10);
while(1){
LED1=~LED1;//---------------------------------------------------设置断点1
DELAY_US(100000);
LED2=~LED2;
DELAY_US(100000);
LED3=~LED3;
DELAY_US(100000);
LED4=~LED4;
DELAY_US(100000);
LED5=~LED5;//--------------------------------------------设置断点2
DELAY_US(100000);
}
}
如上代码里设置了两个断点,仿真时,程序可以跑到断点1,但不能到断点2,且只能到断点1一次,后来用单步运行,发现到了断点1后再点击单步运行程序就变成全速运行了,这个时候把断点1去掉后在重新设置相同地方,程序在全部跑起来后也不能停在断点1了,但是我把while循环里的DELAY_US(100000)语句全屏蔽掉后就可以正常运行了,断点1和断点2都可以正常停止了;这是怎么回事呢?