You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在OpenOCD中通过变量值设置寄存器

如何通过变量设置OpenOCD寄存器值?

想要通过变量设置寄存器值(以栈指针sp为例,该方法适用于任意寄存器),OpenOCD中可使用set_reg命令设置寄存器值。

直接传入具体值时可正常运行:

> set_reg {sp 0x1337}
> get_reg sp
sp 0x1337

但尝试通过变量设置时无法正常生效:

> set new_sp 0x1337
> echo $new_sp
0x1337
> set_reg {sp $new_sp}
> get_reg sp
sp 0x00001337

解决方法

问题根源在于使用大括号{}包裹参数时,OpenOCD会阻止变量解析,$new_sp会被当作字面量处理。可以通过两种方式解决:

  • 去掉大括号,直接用空格分隔参数:

    > set new_sp 0x1337
    > set_reg sp $new_sp
    > get_reg sp
    sp 0x1337
    
  • 用双引号""代替大括号:双引号允许变量替换,同时保留参数的整体结构:

    > set new_sp 0x1337
    > set_reg "sp $new_sp"
    > get_reg sp
    sp 0x1337
    

内容的提问来源于stack exchange,提问作者Heneer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 12:54:53