我的牙白 发表于 2025-6-22 10:50

在汇编脚本中从C导入和使用全局变量的语法是什么

在汇编脚本中从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声明的?也可能是声明没暴露出来。
页: [1]
查看完整版本: 在汇编脚本中从C导入和使用全局变量的语法是什么