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

2020-02-09 09:13发布

如题,很奇怪的问题,不知道有没有朋友碰到过类似情况啊?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
dzyong
1楼-- · 2020-02-09 09:52
程序优化的问题
shawn_17
2楼-- · 2020-02-09 12:04
 精彩回答 2  元偷偷看……
coscn
3楼-- · 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就没了,于是延迟就没有了。

编译器一般会有默认的优化,这要看编译器手册了。
shawn_17
4楼-- · 2020-02-09 20:43
问题已解决,外部看门狗的问题,RST一直为低,所以程序打死也不会跑的
谢谢coscn 的帮助,优化一般不会导致程序不能跑,倒是有可能导致程序跑得莫名其妙
role_2099
5楼-- · 2020-02-09 21:46
借问一句,debug是调试的意思,那么release在这里是什么意思?
shawn_17
6楼-- · 2020-02-10 00:36
release就是发布的代码的意思噻, debug就是调试的意思,其实就在release里面加了一段启动代码

一周热门 更多>