关于ccs仿真环境的问题
时间:10-02
整理:3721RD
点击:
初学DSP,在使用ccs4.1.2学习f28027的板子时候遇到这样一个问题:在debug模式下,加载的是28027_RAM_lnk.cmd文件,而f28027.cmd文件不参与编译,一切正常,都能很好的工作。而在release模式下,加载了f28027.cmd同时28027_RAM_lnk.cmd不参与编译,仿真时出现的情况就是:凡是遇到delay_loop()的地方就直接跳过了,后来把delay_loop()函数里面的循环直接拷贝过来,也是直接跳过了for循环,还望熟悉dsp的网友不吝赐教。
void Gpio_example1(void)
{
// Example 1:
// Toggle I/Os using DATA registers
unsigned int i,j,k;
for(;;)
{
GpioDataRegs.GPADAT.all =0xAAAAAAAA;
GpioDataRegs.GPBDAT.all =0x0000000A;
// delay_loop();
for (i = 0; i < 1000; i++) //for循环直接跳过了。
{
for(j=0;j<1000;j++)
{
;
}
}
GpioDataRegs.GPADAT.all =0x55555555;
GpioDataRegs.GPBDAT.all =0x00000005;
for (i = 0; i < 1000; i++)
{
for(j=0;j<1000;j++)
{
;
}
}
// delay_loop();
}
}
这是函数部分,是一个例程的一部分,功能是一个LED的闪烁。现在的情况就是没有延时后,LED闪烁非常快,能够用示波器看到。
void Gpio_example1(void)
{
// Example 1:
// Toggle I/Os using DATA registers
unsigned int i,j,k;
for(;;)
{
GpioDataRegs.GPADAT.all =0xAAAAAAAA;
GpioDataRegs.GPBDAT.all =0x0000000A;
// delay_loop();
for (i = 0; i < 1000; i++) //for循环直接跳过了。
{
for(j=0;j<1000;j++)
{
;
}
}
GpioDataRegs.GPADAT.all =0x55555555;
GpioDataRegs.GPBDAT.all =0x00000005;
for (i = 0; i < 1000; i++)
{
for(j=0;j<1000;j++)
{
;
}
}
// delay_loop();
}
}
这是函数部分,是一个例程的一部分,功能是一个LED的闪烁。现在的情况就是没有延时后,LED闪烁非常快,能够用示波器看到。
啊.找到原因了,是编译优化的问题。
自学成才