硬汉嵌入式论坛

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

armgcc编译stm32问题

[复制链接]

8

主题

25

回帖

49

积分

初级会员

积分
49
发表于 2023-8-18 15:50:08 | 显示全部楼层 |阅读模式
遇到一个问题,怎么将stm32中的c程序文件中的一段字符串编译到最终生成的bin文件中,并且bin文件打开后能找到,同时还不影响程序运行,我用arm-gcc编译的环境


回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106771
QQ
发表于 2023-8-18 16:54:51 | 显示全部楼层
字符串数组? 加前缀const就行。

回复

使用道具 举报

8

主题

25

回帖

49

积分

初级会员

积分
49
 楼主| 发表于 2023-8-19 20:18:27 | 显示全部楼层
eric2013 发表于 2023-8-18 16:54
字符串数组? 加前缀const就行。

呃,神马意思呢,没理解
回复

使用道具 举报

210

主题

1043

回帖

1683

积分

至尊会员

More we do, more we can do.

积分
1683
发表于 2023-8-19 22:24:34 | 显示全部楼层
添加属性保留未引用的变量:
[C] 纯文本查看 复制代码
__attribute__((used))
回复

使用道具 举报

75

主题

685

回帖

910

积分

金牌会员

积分
910
发表于 2023-8-20 12:38:21 | 显示全部楼层
rog 发表于 2023-8-19 20:18
呃,神马意思呢,没理解

加const修饰的变量,编译的时候会将数据存放在Flash
回复

使用道具 举报

8

主题

25

回帖

49

积分

初级会员

积分
49
 楼主| 发表于 2023-8-21 15:38:43 | 显示全部楼层
庄永 发表于 2023-8-20 12:38
加const修饰的变量,编译的时候会将数据存放在Flash

这样可以是可以,那我怎么确定位置,比如我要塞入版本号,那我怎么判断它在哪个位置,才能读取出来。这里读取版本号,是它自己读取自己的版本号哦
回复

使用道具 举报

19

主题

234

回帖

291

积分

高级会员

积分
291
发表于 2023-8-21 16:46:32 | 显示全部楼层
const app_info_t APP_INFO __attribute__((section(".ARM.__at_0x08040400"))) = {
    ....
};
回复

使用道具 举报

8

主题

25

回帖

49

积分

初级会员

积分
49
 楼主| 发表于 2023-8-21 22:59:46 | 显示全部楼层
tovinz 发表于 2023-8-21 16:46
const app_info_t APP_INFO __attribute__((section(".ARM.__at_0x08040400"))) = {
    ....
};

有完整的示例吗?ld文件是怎们处理的,我是gcc编译stm32的环境
回复

使用道具 举报

19

主题

234

回帖

291

积分

高级会员

积分
291
发表于 2023-8-22 09:05:52 | 显示全部楼层
rog 发表于 2023-8-21 22:59
有完整的示例吗?ld文件是怎们处理的,我是gcc编译stm32的环境

抱歉,忘了标题是gcc了。
有大佬已经给出了解决方式
https://www.armbbs.cn/forum.php? ... hlight=%D6%B8%B6%A8
回复

使用道具 举报

8

主题

25

回帖

49

积分

初级会员

积分
49
 楼主| 发表于 2023-8-22 14:13:08 | 显示全部楼层
tovinz 发表于 2023-8-22 09:05
抱歉,忘了标题是gcc了。
有大佬已经给出了解决方式
https://www.armbbs.cn/forum.php?mod=viewthread& ...

感谢老哥的鼎力支持
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-5 21:52 , Processed in 0.296590 second(s), 26 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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