打印
[STM32F4]

KEIL工程编译时的一个奇怪问题

[复制链接]
479|14
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
pengf|  楼主 | 2023-1-7 09:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
自己的一个KEIL工程,编译后运行,正常;
调整一下project窗口中加载的文件顺序,编译运行,直接进Hardfault。

按理说文件编译顺序不会影响最终生成的目标文件才对,不应该有不一样的运行结果啊。不明白问题出在哪里。

使用特权

评论回复
沙发
jiajs| | 2023-1-7 09:17 | 只看该作者
通过对比发现两种情况编译后生成的map文件是不一样的。别的都一样。

使用特权

评论回复
板凳
zhenykun| | 2023-1-7 09:19 | 只看该作者
这是程序本身有问题,只是这种情况下容易表现出来而已

使用特权

评论回复
地板
juventus9554| | 2023-1-7 09:22 | 只看该作者
或者表现不一样而已

使用特权

评论回复
5
dengdc| | 2023-1-7 09:23 | 只看该作者
调整文件, 可能导致的是生成的二进制文件里, 函数存储的位置发生变化.

使用特权

评论回复
6
wyjie| | 2023-1-7 09:25 | 只看该作者
对于有些地址敏感的程序,  比如有些 IAP 程序, 文件顺序也是不能随便换的.

使用特权

评论回复
7
pengf|  楼主 | 2023-1-7 09:45 | 只看该作者

没有用过keil呢

使用特权

评论回复
8
liuzaiy| | 2023-1-7 09:47 | 只看该作者
看看 长知识了

使用特权

评论回复
9
chuxh| | 2023-1-7 09:51 | 只看该作者
用iar试试呢

使用特权

评论回复
10
pengf|  楼主 | 2023-1-7 09:51 | 只看该作者

结构体可以将一些看似不同的东西归纳为一个共同的属性,比方说有很多电脑都有不同的ID号,有不同的CPU,不同的显卡,不同的声卡等等,但是一个电脑共通的属性有:
struct  PC
{
     ID号;
    CPU;
    显卡;
    声卡;
……
};
结构体在写菜单的时候优势很明显。

使用特权

评论回复
11
chenjunt| | 2023-1-7 09:53 | 只看该作者
确实很奇怪  我都没有注意过

使用特权

评论回复
12
wyjie| | 2023-1-7 09:56 | 只看该作者
你的问题确实很奇怪 我没有遇到过

使用特权

评论回复
13
yszong| | 2023-1-7 09:58 | 只看该作者
应该还是程序本身有点问题,刚好暴露出来了。

使用特权

评论回复
14
stly| | 2023-1-7 09:59 | 只看该作者

合适的时机,让bug暴露出来了。

使用特权

评论回复
15
pengf|  楼主 | 2023-1-7 10:02 | 只看该作者
唉,还是没有什么结果,算了,多谢大家啦

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

718

主题

10129

帖子

3

粉丝