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

[复制链接]
946|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 | 显示全部楼层
或者表现不一样而已
dengdc 发表于 2023-1-7 09:23 | 显示全部楼层
调整文件, 可能导致的是生成的二进制文件里, 函数存储的位置发生变化.
wyjie 发表于 2023-1-7 09:25 | 显示全部楼层
对于有些地址敏感的程序,  比如有些 IAP 程序, 文件顺序也是不能随便换的.
 楼主| pengf 发表于 2023-1-7 09:45 | 显示全部楼层

没有用过keil呢
liuzaiy 发表于 2023-1-7 09:47 | 显示全部楼层
看看 长知识了
chuxh 发表于 2023-1-7 09:51 | 显示全部楼层
用iar试试呢
 楼主| pengf 发表于 2023-1-7 09:51 | 显示全部楼层

结构体可以将一些看似不同的东西归纳为一个共同的属性,比方说有很多电脑都有不同的ID号,有不同的CPU,不同的显卡,不同的声卡等等,但是一个电脑共通的属性有:
struct  PC
{
     ID号;
    CPU;
    显卡;
    声卡;
……
};
结构体在写菜单的时候优势很明显。
chenjunt 发表于 2023-1-7 09:53 | 显示全部楼层
确实很奇怪  我都没有注意过
wyjie 发表于 2023-1-7 09:56 | 显示全部楼层
你的问题确实很奇怪 我没有遇到过
yszong 发表于 2023-1-7 09:58 | 显示全部楼层
应该还是程序本身有点问题,刚好暴露出来了。
stly 发表于 2023-1-7 09:59 | 显示全部楼层

合适的时机,让bug暴露出来了。
 楼主| pengf 发表于 2023-1-7 10:02 | 显示全部楼层
唉,还是没有什么结果,算了,多谢大家啦
您需要登录后才可以回帖 登录 | 注册

本版积分规则

718

主题

10129

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部