在汇编脚本中从C导入和使用全局变量的语法是什么
在汇编脚本中从C导入和使用全局变量的语法是什么? 我使用stm32cube IDE,尝试了各种方法,没有搞定。我之前也卡在这,后来用 .extern 才搞定,你试过这个关键字没? 是不是变量名在C里面被加了前缀,像 _ 开头那种? 用 ldr r0, =var_name 好像不能直接用,得配合链接脚本才行。 你是用 .s 文件还是 .S 文件?大小写有时候会影响宏定义处理。 我一般在C里加上 __attribute__((used)) 来避免变量被优化掉,不然汇编找不到。 变量在C里是全局的没问题吧?static的话汇编可用不到。 看一下生成的 .map 文件,确认变量有没有被导出。 汇编里声明 .extern my_var,然后用 ldr r0, =my_var,我这边这样能跑。 链接脚本里也可能需要配置段地址,你看下是不是链接不到对应段。 你变量是定义在.c里,还是头文件里用extern声明的?也可能是声明没暴露出来。
页:
[1]