我使用-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);
}
}
附件是生成的汇编的截图:
此帖出自
小平头技术问答
只有在程序编译成功后,进入调试模式下,查看反汇编代码
一周热门 更多>