lichen867 发表于 2011-10-3 14:06:50

请教一个关于ccs仿真环境的问题

小弟初学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闪烁非常快,能够用示波器看到。

lichen867 发表于 2011-10-3 14:54:44

找到原因了,是编译优化的问题。

furenren 发表于 2011-11-19 23:06:16

1楼说的有道理。。在编译的时候出了点小问题
页: [1]
查看完整版本: 请教一个关于ccs仿真环境的问题