OPENOCD 脚本错误:错误的 # args:应该是“expr 表达式”

问题描述 投票:0回答:2

我正在尝试使用以下位置提供的脚本运行 OpenOCD: https://gitlab.cs.hs-rm.de/CaroloCup/openocd-am57xx-scripts

特别是,只是简单的主脚本

am57_mpu_0.cfg

命令是:

openocd -f interface/jlink.cfg -f ./jlink_config.cfg -f ./am57_mpu_0.cfg

失败并显示:

./am57_mpu_0.cfg:110: Error: wrong # args: should be "expr expression"

虽然 110 号线对我来说看起来很正常:

set _dbgbase [expr 0x80000000 | ($_coreid << 13)]  

出于测试目的,我尝试将其简化为:

set _dbgbase [expr (40+1)]

但仍然有同样的错误。

我将感谢任何提示我做错了什么。

linux openocd
2个回答
0
投票

TCL 中的语法发生变化,要求将表达式括在 {} 中。
语法更改发生在 2022 年 7 月。但是 Fedora 存储库安装了最后一个版本 0.11,该版本是在 2021 年打包的。
因此,问题是为什么 Fedora 更新不包含版本 0.12 的最新更新,其中所有脚本都已更新为具有这些 {}。


0
投票

抱歉,根据上面 leonp 给出的答案添加此内容作为回复,而不是评论(我没有足够的声誉点):

将表达式更改为:

set _dbgbase [expr 0x80000000 | ($_coreid << 13)]

至:

set _dbgbase [expr {0x80000000 | ($_coreid << 13)}]

{} 添加在关键字 expr 之后、最后 ] 之前。

© www.soinside.com 2019 - 2024. All rights reserved.