问题标签 [openocd]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
270 浏览

c - 如何从 cortexM3“迁移”到 cortexM4

我有一个在 SAM3S(cortex-m3) 上运行的旧项目,我需要将它用作应该在 Sam4S cortex-M4 上运行的新项目的基础。更改 o 后,opeocd.cfg 我收到此错误,但我不明白它们的真正含义:

这里有人可以提示我应该在哪里看吗?

更新

现在我得到这个错误:

知道现在有什么问题吗

0 投票
1 回答
4188 浏览

stm32 - 尝试使用 OpenOCD 刷新 STM32F3 探索板:`no flash bank found`

我克隆了这个 repo并尝试使用make flash. 相关规则是这样的:

oocd.cfg:

make flash然后给我以下输出:

program命令向我显示no flash bank found并没有写入任何数据。自然,verify命令失败。

我从 0.9 标签构建了 OpenOCD。我libusb-1.0-0-dev使用 aptitude 安装,这是 ST-Link 支持所必需的。

我的配置有什么问题,或者我可以尝试使用 OpenOCD 的替代方法来完成此任务吗?

0 投票
2 回答
16003 浏览

embedded - 通过 OpenOCD 的 STM32 读出保护

STM32 系列微控制器具有读出保护功能,因此无法通过调试接口(JTAG 或 SWD)读出专有代码。

使用 OpenOCD,如何通过 SWD/JTAG 接口启用/禁用读出保护?RDP 读出保护的安全性如何?

如果可能,请给出一个对整个 STM32 系列都有效的答案。

0 投票
2 回答
631 浏览

c - 命令行参数如何传递给半托管程序?

我正在查看 STM32f4xx 项目模板,它由GNU ARM Eclipse插件生成,并启用了半主机。该main函数使用argcargv参数定义,这在独立的嵌入式程序中非常无用,但在半托管调试程序的情况下,可以使用某种机制传递它们。所以我的问题是如何访问这个机制?现在,没有对模板和项目设置进行任何更改,argv[0]等于一个字符串"foobar",我不知道它来自哪里。而且我不知道如何将其他字符串传递给它。更多信息:
- IDE:Eclipse + GNU Arm Eclipse 插件
- 工具链:GCC ARM Embedded
- 调试:工具链中的 Eclipse + OpenOCD + GDB
- 硬件:STM32f401vC

更新:我开始怀疑该常量深埋在newlib代码中。我可以看到 args 读取被触发的位置(它在 中_syscals.ccall_host (SEMIHOSTING_SYS_GET_CMDLINE, &cmdBlock);,但我无法弄清楚它是在哪里处理的。然后它被转换为a bkpt 0xAB,从那里我迷路了。

0 投票
1 回答
646 浏览

buildroot - 在 buildroot 中更新软件包版本 (openocd)

我正在使用 buildroot-2012.11 为嵌入式系统生成 Linux 映像的项目中工作。

我需要为使用 FTDI 芯片 (FT2232D) 的 JTAG 调试器配置 openocd。

我意识到这个 buildroot 版本集成了 openocd-0.5.0,而最新的 openocd 版本是 0.9.0。我有兴趣更新到这个版本,因为我想使用ftdi接口驱动程序而不是ft2232(已弃用)。

我试图通过修改 /package/openocd/openocd.mk 来实现这一点:

新的 openocd 文件已成功下载,但当它尝试安装并应用openocd-0001-fix-cross-compilation-host-libsub-was-used-before.patch 时,我得到了:

如果我跳过补丁,构建过程将停止并且我无法生成图像。

我在互联网上做了一些研究,但我找不到如何正确地做到这一点。

也许一个明显的解决方案可能是更新 buildroot 版本,但由于有很多其他人在使用当前版本进行开发,所以我现在无法做出这个决定。

我会很感激任何帮助。

0 投票
1 回答
1715 浏览

c++ - 尝试使用 Eclipse/OpenOCD 进行调试时出现“程序文件不存在”

我最近得到了一个 nrf51 蓝牙模块,我正在尝试使用 Eclipse Mars 对其进行调试。我安装了所需的工具链以及 OpenOCD(我正在使用 STLink v2 调试板)。

在控制台中运行 openOCD 和 arm-none-eabi-gdb 时,一切正常。OpenOCD 服务器启动,我可以连接 gdb 工具。

但是,当尝试使用 Eclipse 启动调试会话时,它会抛出错误“启动期间发生异常。原因:程序文件不存在”。构建过程正常完成。这是我第一次使用 Eclipse 进行 C/C++ 开发,也是多年后我第一次使用 Eclipse,所以我什至不知道哪里出了问题。

我尝试在没有运气的情况下弄乱项目设置。谁能给我一个提示?

我应该提到,我使用了一个已经存在的 Makefile,因为我尝试编译了一个北欧 SDK 示例。我对其进行了更改,以便生成的文件可以进行调试。

0 投票
1 回答
2135 浏览

stm32 - 无法运行 STM32 L1 Discovery 板

我有新鲜的STM32 L1发现板,它似乎坏了。但我不完全确定。

当通过 USB 将开发板连接到 Linux 机器时,开发板完全正常启动,并且演示工作与供应商描述的一样。

但我无法真正连接到这块板。

电路板似乎已连接,用于在 ST-LINK 和 DISCOVERY 之间切换的大跳线 (CN3) 设置为 DISCOVERY。但是当我尝试使用我收到的 st-link 实用程序时。

OpenOCD 也无法与董事会对话。

板载芯片为STM32L152RCT6。我之前使用过 STM32F0..4 并且从未遇到过这样的问题,但是我之前没有使用过 L 系列,所以我不确定这是电路板问题还是我在这里跳过了一些重要的问题。

编辑:使用 OpenOCD 我发现不是预期的行为。在第一次运行时,我收到错误:

在第二次运行:

然后设备从系统中消失,dmesg留下消息:

我认为适配器速度可能存在问题,但我现在不确定。

EDIT2:我尝试使用 Windows ST Link Utility,但无法连接到电路板,电路板导致“检测错误”或“连接错误”,软件建议更改 SWD 频率或模式。我厌倦了几乎所有的组合,但没有一个有效。

EDIT3:如果这对某人有帮助,则板已被退回,我得到的信息表明它实际上已损坏并且我有新的。新的按预期完美运行。

0 投票
2 回答
1544 浏览

openocd - Beaglebone Black 上的 OpenOCD

这是我在这块板上的第一篇文章,我对 JTAG 调试的世界也很陌生,我以前使用过一些商业产品,但我想切换到 OpenOCD,到目前为止我遇到了很多失败. 我尝试使用 Flyswatter2 和他们提供的套件连接到我的 Beaglebone Black,我的大部分结果看起来像这样:

我试图成功地降低适配器速度,设备实际上会重新启动,但是一旦内核启动,所有地狱都会崩溃,此时我会收到与上述类似的错误消息。

我不确定从哪里开始,因为这些错误消息对我来说仍然有点模糊,有人有什么想法/想法/建议吗?如果需要,我愿意挖掘源代码并进行一些调整,但现在我有点太无知了!

0 投票
1 回答
4146 浏览

eclipse - Openocd 报告“Failed with code (1)”用于 Eclipse 调试 STM32F429 Discovery 板

当我在 Eclipse (luna) 下为我的 STM32F429 Discovery 板启动调试会话时。我收到以下错误:

OpenOCD 因代码 (1) 而失败。

控制台窗格中的信息是:

Open On-Chip Debugger 0.9.0-dev-00223-g1567cae (2015-01-12-13:43) 在 GNU GPL v2 下获得许可 对于错误报告,请阅读 http://openocd.sourceforge.net/doc/doxygen/bugs .html 信息:选定的传输接管了低级目标控制。结果可能与普通 JTAG/SWD 适配器速度不同:2000 kHz adapter_nsrst_delay: 100 srst_only 单独 srst_nogate srst_open_drain connect_deassert_srst Started by GNU ARM Eclipse Info : clock speed 2000 kHz Error: open failed in procedure 'ocd_bouncer' in procedure程序“init”中的“传输”

调试设置中引用的“板”文件是:stm32f429discovery.cfg

我确实为另一个 ST-Micro 板工作,我可以毫无问题地进行完整的调试会话。突然,它停止了访问该板,我得到了与该板相同的错误。

我希望能够使用在 Linux 上运行的纯开源软件来与这些板一起工作。我希望有人能让我摆脱这种情况。

提前致谢。

干杯!!

0 投票
1 回答
4169 浏览

debugging - 使用 openocd 闪存和调试 STM32F7 发现

我最近购买了一个 STM32F7 发现板 [1],因此我尝试使用 openocd 对其进行闪存,因为该板具有嵌入式 st-link 调试器。我有我的工具链工作(我正在使用 makefile 和 arm-none-eabi-gcc),但我想使用 eclipse 刷新板,这样我就可以有一个图形调试器。

为此,我从他们的 git repo 安装了 openocd,并使用以下配置文件启动它:

然后我在 Eclipse 中使用以下命令和 arm-none-eabi-gdb 来刷新板:

我尝试了不同的命令列表,包括我用来在 Eclipse [2] 上设置调试链的教程或其他 SO 帖子 [3][4] 中的命令。有时写入操作会失败,而当它没有失败时,我会得到一台错误的 PC(例如 0xffffffffe 而不是 0x080004ac,这是重置处理程序的地址)。因此,CPU 将尝试执行一些甚至不存在的东西(在我的记忆之外)并且它失败了。

你知道什么可能是错的吗?一个小的精度:我在 Linux 上工作。

干杯,

安托万。

[1] : www.st.com/web/en/catalog/tools/FM116/SC959/SS1532/LN1848/PF261641?sc=stm32f7-discovery

[2] : vedder.se/2012/12/debugging-the-stm32f4-using-openocd-gdb-and-eclipse/

[3]:stackoverflow.com/questions/5535110/stm32-gdb-openocd-commands-and-initialization-for-flash-and-ram-debugging

[4]:stackoverflow.com/questions/17003519/stm32f4discovery-openocd-telnet-uploading-demo-program

[5]:github.com/texane/stlink

[编辑]

我还尝试使用来自 github [5] 的 st-link 程序并使用 gdb 加载,我得到了类似的错误: