keil重建工程后编译的结果跟之前不一样

2020-01-01 17:47发布

编译器:mdk 5.17
如题,因为某些原因我重建了工程,文件还是之前的,但是编译后的hex比之前的小了几kb,最关键的是运行到某段代码竟然死机了。。。
工程的配置还是照之前的配的,重建了两次还是无果,有没有人遇到过这种情况?
ps:.o文件也是发现很多(几乎)多小跟之前的不一样了。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
34条回答
单飞
1楼-- · 2020-01-05 04:36
 精彩回答 2  元偷偷看……
单飞
2楼-- · 2020-01-05 08:48
security 发表于 2016-8-2 17:48
如果你的问题都确认过了
那你可以将目光转移到 MDK 身上
或许不是你的错


曾经问过关于开优化程序出bug的问题,有人说是程序不规范造成,如果真有这种情况就不太好确定了。keil也确实是根据上下语义来解释代码的,这种可能性也有可能存在吧。。。
单飞
3楼-- · 2020-01-05 12:51
问题已找到。
首先,改变文件顺序生成的目标是有变化,可能是命令的顺序变了,也可能变量和函数的地址变了。
然后,真正的罪魁祸首是堆栈溢出了,可能是改变文件顺序诱发了bug,可能是编译的两个结果本身的区别,反正肯定是在溢出的边缘(路上)。
ps:最痛苦的就是这样的事情,以前好的代码,说挂就挂了。
security
4楼-- · 2020-01-05 17:51
单飞 发表于 2016-8-3 15:59
问题已找到。
首先,改变文件顺序生成的目标是有变化,可能是命令的顺序变了,也可能变量和函数的地址变了 ...

首先,祝贺一下
其次,不明觉厉
LZ 可否再详细说明一下,例如贴一些代码片段
huarana
5楼-- · 2020-01-06 00:22
 精彩回答 2  元偷偷看……
易尘
6楼-- · 2020-01-06 01:11
单飞 发表于 2016-8-4 08:34
这个问题代码不重要,详情是这样的:
系统使用了os,但是os启动前有一段配置信息的代码,而该代码里定义了 ...

楼主很认真。。。

一周热门 更多>