问题标签 [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.
c - 如何从 cortexM3“迁移”到 cortexM4
我有一个在 SAM3S(cortex-m3) 上运行的旧项目,我需要将它用作应该在 Sam4S cortex-M4 上运行的新项目的基础。更改 o 后,opeocd.cfg
我收到此错误,但我不明白它们的真正含义:
这里有人可以提示我应该在哪里看吗?
更新
现在我得到这个错误:
知道现在有什么问题吗
编
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 的替代方法来完成此任务吗?
embedded - 通过 OpenOCD 的 STM32 读出保护
STM32 系列微控制器具有读出保护功能,因此无法通过调试接口(JTAG 或 SWD)读出专有代码。
使用 OpenOCD,如何通过 SWD/JTAG 接口启用/禁用读出保护?RDP 读出保护的安全性如何?
如果可能,请给出一个对整个 STM32 系列都有效的答案。
c - 命令行参数如何传递给半托管程序?
我正在查看 STM32f4xx 项目模板,它由GNU ARM Eclipse插件生成,并启用了半主机。该main
函数使用argc
和argv
参数定义,这在独立的嵌入式程序中非常无用,但在半托管调试程序的情况下,可以使用某种机制传递它们。所以我的问题是如何访问这个机制?现在,没有对模板和项目设置进行任何更改,argv[0]
等于一个字符串"foobar"
,我不知道它来自哪里。而且我不知道如何将其他字符串传递给它。更多信息:
- IDE:Eclipse + GNU Arm Eclipse 插件
- 工具链:GCC ARM Embedded
- 调试:工具链中的 Eclipse + OpenOCD + GDB
- 硬件:STM32f401vC
更新:我开始怀疑该常量深埋在newlib
代码中。我可以看到 args 读取被触发的位置(它在 中_syscals.c
)call_host (SEMIHOSTING_SYS_GET_CMDLINE, &cmdBlock);
,但我无法弄清楚它是在哪里处理的。然后它被转换为a bkpt 0xAB
,从那里我迷路了。
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 版本,但由于有很多其他人在使用当前版本进行开发,所以我现在无法做出这个决定。
我会很感激任何帮助。
c++ - 尝试使用 Eclipse/OpenOCD 进行调试时出现“程序文件不存在”
我最近得到了一个 nrf51 蓝牙模块,我正在尝试使用 Eclipse Mars 对其进行调试。我安装了所需的工具链以及 OpenOCD(我正在使用 STLink v2 调试板)。
在控制台中运行 openOCD 和 arm-none-eabi-gdb 时,一切正常。OpenOCD 服务器启动,我可以连接 gdb 工具。
但是,当尝试使用 Eclipse 启动调试会话时,它会抛出错误“启动期间发生异常。原因:程序文件不存在”。构建过程正常完成。这是我第一次使用 Eclipse 进行 C/C++ 开发,也是多年后我第一次使用 Eclipse,所以我什至不知道哪里出了问题。
我尝试在没有运气的情况下弄乱项目设置。谁能给我一个提示?
我应该提到,我使用了一个已经存在的 Makefile,因为我尝试编译了一个北欧 SDK 示例。我对其进行了更改,以便生成的文件可以进行调试。
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:如果这对某人有帮助,则板已被退回,我得到的信息表明它实际上已损坏并且我有新的。新的按预期完美运行。
openocd - Beaglebone Black 上的 OpenOCD
这是我在这块板上的第一篇文章,我对 JTAG 调试的世界也很陌生,我以前使用过一些商业产品,但我想切换到 OpenOCD,到目前为止我遇到了很多失败. 我尝试使用 Flyswatter2 和他们提供的套件连接到我的 Beaglebone Black,我的大部分结果看起来像这样:
我试图成功地降低适配器速度,设备实际上会重新启动,但是一旦内核启动,所有地狱都会崩溃,此时我会收到与上述类似的错误消息。
我不确定从哪里开始,因为这些错误消息对我来说仍然有点模糊,有人有什么想法/想法/建议吗?如果需要,我愿意挖掘源代码并进行一些调整,但现在我有点太无知了!
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 上运行的纯开源软件来与这些板一起工作。我希望有人能让我摆脱这种情况。
提前致谢。
干杯!!
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 加载,我得到了类似的错误: