初学AVR,请教AVR studio gcc 优化问题

2019-03-24 21:13发布

我使用-Os优化选项,发现编译后程序没法用。查看汇编代码,发现delay函数被优化没了。生成的汇编代码看起来很奇怪
如果不优化程序是没问题的。
请教是怎么回事?我该怎么办?

下面是我的代码:
#include <avr/io.h>
#define uchar unsigned char
#define uint  unsigned int
void delays(uint t)
{
uint j;
for(j=0;j<t;j++)
  ;
}

int main(void)
{
uchar  i;
DDRA=0xff;
for (i=0;i<8;i++)
{
   PORTA=i;
   delays(50);
}
}
附件是生成的汇编的截图: 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
8条回答
tiankai001
2019-03-25 09:59
uint j;前面加上volatile限制一下,应该不会被优化掉了

一周热门 更多>