硬汉嵌入式论坛

 找回密码
 立即注册
查看: 249|回复: 7
收起左侧

[技术讨论] __attribute__((section(".ARM.__at_")))会让HEX变大

[复制链接]

97

主题

537

回帖

843

积分

金牌会员

积分
843
发表于 2025-5-29 08:22:41 | 显示全部楼层 |阅读模式
复制了一份工程,改成boot。

发现怎么弄Flash都会占用30多KB。
最后发现是这句话的锅。

可以看到删掉这个固定地址的版本号之后,一下子程序Flash就变小了。
之前看map对了半天,一直疑惑不解,怎么都对不上。
Snipaste_2025-05-29_08-20-41.png
共产主义一定胜利!
回复

使用道具 举报

6

主题

73

回帖

91

积分

初级会员

积分
91
发表于 2025-5-29 08:54:36 | 显示全部楼层
请问您一下,build输出日志用的哪个插件
回复

使用道具 举报

0

主题

3

回帖

3

积分

新手上路

积分
3
发表于 2025-5-29 09:14:23 | 显示全部楼层
编译器按照你的要求在0x8600的位置,加入了内容,因此即便代码空间只有几K,中间部分也会填充0x00到0x8600。

1.把位置往前,能减少空间。
2.特定的位置写入你的信息,比如修改启动文件,空出部分字节给自己用。
3.修改LD链接文件,插入特殊段,供自己使用。

如果你用ARMCC编译器,就比较好办了,用attribute它会自动帮你空出位置,这点比GCC好。
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
116197
QQ
发表于 2025-5-29 09:30:15 | 显示全部楼层
这个需要看下固件内容,这种固定地址的方式,容易产生一段地址空间没使用的情况
回复

使用道具 举报

97

主题

537

回帖

843

积分

金牌会员

积分
843
 楼主| 发表于 2025-5-29 09:33:33 | 显示全部楼层
本帖最后由 会飞的猪_2020 于 2025-5-29 09:36 编辑
让我看看各位 发表于 2025-5-29 08:54
请问您一下,build输出日志用的哪个插件

https://gitee.com/DinoHaw/keil-build-viewer

这个作者应该也是坛友。https://www.armbbs.cn/?20700
共产主义一定胜利!
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
116197
QQ
发表于 2025-5-29 09:34:30 | 显示全部楼层
让我看看各位 发表于 2025-5-29 08:54
请问您一下,build输出日志用的哪个插件

这个论坛一个坛友搞得,想不起来关键词了
回复

使用道具 举报

6

主题

73

回帖

91

积分

初级会员

积分
91
发表于 2025-5-29 10:03:40 | 显示全部楼层
会飞的猪_2020 发表于 2025-5-29 09:33
https://gitee.com/DinoHaw/keil-build-viewer

这个作者应该也是坛友。https://www.armbbs.cn/?20700

谢谢楼主
回复

使用道具 举报

0

主题

82

回帖

82

积分

初级会员

积分
82
发表于 2025-5-29 17:04:55 | 显示全部楼层
我用IAR也是类型的情况
原因是指定地址之后,生成的HEX是分段的,中间有空白区域,如果没有指定地址生成的hex是连续的
后面我参考论坛的方案,把这个地址放到前面的中断向量表中,地址是变动的,但可以从固定的地址可以查询到这个地址,用指针来操作
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-6-10 00:14 , Processed in 0.271879 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表