[其他ST产品] 在汇编脚本中从C导入和使用全局变量的语法是什么

[复制链接]
 楼主| 我的牙白 发表于 2025-6-22 10:50 | 显示全部楼层 |阅读模式
在汇编脚本中从C导入和使用全局变量的语法是什么? 我使用stm32cube IDE,尝试了各种方法,没有搞定。

公羊子丹 发表于 2025-6-23 07:23 | 显示全部楼层
我之前也卡在这,后来用 .extern 才搞定,你试过这个关键字没?
周半梅 发表于 2025-6-23 07:24 | 显示全部楼层
是不是变量名在C里面被加了前缀,像 _ 开头那种?
帛灿灿 发表于 2025-6-23 07:25 | 显示全部楼层
用 ldr r0, =var_name 好像不能直接用,得配合链接脚本才行。
童雨竹 发表于 2025-6-23 07:26 | 显示全部楼层
你是用 .s 文件还是 .S 文件?大小写有时候会影响宏定义处理。
万图 发表于 2025-6-23 07:27 | 显示全部楼层
我一般在C里加上 __attribute__((used)) 来避免变量被优化掉,不然汇编找不到。
Wordsworth 发表于 2025-6-23 07:28 | 显示全部楼层
变量在C里是全局的没问题吧?static的话汇编可用不到。
Bblythe 发表于 2025-6-23 07:28 | 显示全部楼层
看一下生成的 .map 文件,确认变量有没有被导出。
Pulitzer 发表于 2025-6-23 07:29 | 显示全部楼层
汇编里声明 .extern my_var,然后用 ldr r0, =my_var,我这边这样能跑。
Uriah 发表于 2025-6-23 07:30 | 显示全部楼层
链接脚本里也可能需要配置段地址,你看下是不是链接不到对应段。
Clyde011 发表于 2025-6-23 07:31 | 显示全部楼层
你变量是定义在.c里,还是头文件里用extern声明的?也可能是声明没暴露出来。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

40

主题

40

帖子

0

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