标签:仿真 void 原因 延时 代码 pga 调试 for log
上周写了一个简单的IO口翻转的程序,但是很奇怪,在FPGA板子上怎么也跑不起来。
后面发现问题可能出在延时函数上。
void Delay(unsigned char t) { while(--t); }
while(--t)在有些编译中无法正确编译--t,编译器认为这样是可以优化的(这个是我们老大给出的可能回答)。所以它们就对它进行了优化。其实具体原因我也不是很清楚。
后面换成下面这种形式或者for循环一切就正常了。
void Delay(unsigned int t){ while(t!=0){ t=t-1; } }
当然啦,具体是不是编译器的原因,我也不是很清楚,因为调试看汇编代码是没有问题的。keil这边没问题,那应该就是仿真那边的问题了。
标签:仿真 void 原因 延时 代码 pga 调试 for log
原文地址:http://www.cnblogs.com/cuglkb/p/6264202.html