请教为什么我的板子可以在debug下调试,但是编译成release后却不能跑呢?

2020-02-09 09:13发布

如题,很奇怪的问题,不知道有没有朋友碰到过类似情况啊?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
9条回答
coscn
2020-02-09 15:12
是优化的问题,要具体问题具体分析,给你举个例子吧,假设你的程序是这样

#define REG_A (*(volatile unsigned char *)0xAA)
#define REG_B (*(volatile unsigned char *)0xBB)

unsigned char a, b, i;

b = 100;
a = REG_A;

/* 访问REG_A和REG_B之间要有一定时间的延迟, 假设用i = 1来做, 而后面的程序再也不用到变量i*/
i = 1;
i = 1;

REG_B = b;

这样优化编译以后,两句i = 1就没了,于是延迟就没有了。

编译器一般会有默认的优化,这要看编译器手册了。

一周热门 更多>