使用 OpenOCD 的 ARM LPC1768 的 Eclipse GDB“初始化”和“运行”设置?

2023-11-29

我终于想通了如何让代码运行在这个LPC1768迷你板,但是现在我正在尝试进行调试。

我使用的工具链是:Yagarto + Eclipse (Indigo)(带 GDB 硬件调试器)+ OpenOCD。我的JTAG接口是:巴士冲击波 V2 board.

我找到了一个guide它完成了类似的设置,但它适用于不同的 JTAG 接口,因此不是很有用。还有这个帖子关于一个LPC1768示例,但 gdb 命令不适用于 OpenOCD。

此时我确定的唯一命令(对于 init)是target remote localhost:3333(用于连接到 OpenOCD gdb 服务器)。

我应该在此对话框中使用哪些设置和 gdb 命令?

enter image description here

(忽略“SAM7X256”,只需重新使用上述链接之一的屏幕截图。我使用的是 ARM LPC1768)

另外,我的主板是否使用了辅助引导加载程序(用户代码从 0x2000 开始)会影响这些调试设置吗?

UPDATE:采纳 dwelch 的建议,我确实设法让一些基本的 OpenOCD 命令发挥作用(reset init, mdw, mww, load_image, ETC)。奇怪的“JTAG-DP STICKY”错误与我的 ram 链接器脚本有关,找到了一个LPC1758 的项目模板 with a RAM 链接器脚本,只需修改 LPC1768 的内存大小即可,load_image 效果很好。

我仍然想知道如何正确配置 eclipse 以进行 GDB 调试。


也许一次尝试一步。

启动 openocd,可能类似于 -f interface/jlink.cfg -f target/lpc1768.cfg 或其他什么,听起来你已经可以工作了。

第二个 telnet localhost 4444 或任何 Windows 命令行(类似的东西)

在 Telnet 会话中:

> halt
> mdw 0x0000

诸如此类的事情,以确保您正在与该角色交谈。

如果你已经编译了一些程序,你可以简单地加载它们并运行它们,例如,如果你制作一个仅 ram 的程序(告诉链接器 .text、.data 等都在 0x10000000),那么

> load_image /path/to/myprog.elf
> resume 0x10000001

(是的,加 1 使其变得奇怪,这是一个拇指处理器,不会运行 ARM 指令(lsbit = 0 是 ARM 模式,lsbit = 1 是拇指模式)。

重新编译后重新运行:

> halt
> load_image /path/to/myprog.elf
> resume 0x10000001

然后,在基于内存的程序显示出生命迹象后,请担心闪烁等问题。

如果这些都不起作用,那么 gdb 只是在此基础上增加了一层复杂性,并且将使其更难以弄清楚。

就引导加载程序而言,答案是这取决于您是否尝试从 RAM 或程序运行到 ROM。如果从 ram 运行,您可以接管系统并获取所有 ram,某些芯片(stm32)有一些您可以调用的例程,这些例程需要一些 ram 不受影响,但如果您接管芯片,您可以拥有所有 ram ,这是告诉链接器和调试器是否不知道二进制文件的问题(使用 elf 文件或 ihex 或 srec 或几乎任何不是 .bin 的东西都很好,如果工具支持的话)。

如果您要写入闪存,那么您最好确切地知道闪存的哪个部分可能包含引导加载程序,引导加载程序如何将其传递给您的代码等,并再次告诉链接器和调试器此信息。您可以轻松地擦除/删除引导加载程序,具体取决于引导加载程序的位置和您正在执行的操作(许多 lpc 和 st 部件都有引导加载程序、串行或 USB,它们在某种程度上可以防止偶然错误,但您通常仍然可以擦除它们,并且如果不小心请更换它们)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 OpenOCD 的 ARM LPC1768 的 Eclipse GDB“初始化”和“运行”设置? 的相关文章

  • (更好的方法)使用 Eclipse 和 XText 获取项目中的文件

    我正在编写一个 XText 编辑器 并进行一些语义突出显示 我正在解析的部分语言引用了文件 这些文件应该存在于项目中 我想根据这些文件是否位于正确的位置来突出显示 目前 我有一个非常丑陋的解决方案 但我确信有更好的方法 public voi
  • 维护一组通用的 Eclipse 首选项

    每当我切换工作区 Eclipse 安装时 我都需要复制 重做首选项 编译器设置 字体大小 系列 代码格式化程序 java代码模板 编辑器模板 代码清理 我想以统一的方式维护这些设置 最好是在源代码控制下 我怎样才能做到这一点 我知道创建新工
  • Lombok 不适用于 Eclipse Neon

    我下载了lombok jar lombok 1 16 14 jar 并将其放入我的下载中 然后我点击这个 jar 执行正确地识别了我的 MacOS 上的 Eclipse 实例 然后我选择了我想要的实例 Lombok也在pom xml中指定
  • 如何在eclipse或jar-file-explorer中查看jar文件的内容

    我正在开发一个项目 我需要知道我的网络项目中包含的 jar 文件的内容 我正在使用 Eclipse 朱诺 然而 Netbeans 提供了这些功能来查看 jar 文件的内容 请建议我如何在 eclipse 中实现这一点 在项目资源管理器中 您
  • 直接在 ARM 目标上调试单声道应用程序

    我最近在 BeagleBone 嵌入式 ARM 设备上安装了 Mono 希望通过 USB 连接 Kinnect 传感器并使用 C Mono 控制它 我想知道 Mono 我正在使用 MonoDevelop 但我想这个问题也适用于 VS 是否允
  • 将 Boost 库添加到 Windows Eclipse 中的 C++ 项目

    我最近使用安装程序在 Windows 上安装了 Boost 库 我试图链接到 Eclipse 中的库 但运气不佳 我尝试浏览 Project Properties gt C C Build gt Settings gt MinGW C Li
  • Eclipse 中选定单词的括号

    几天前 我觉得这个问题很愚蠢 所以不要将其发布在这里 但即使在搜索了很多之后 我也没有找到合适的解决方案 对于那些使用过的人TextEdit 在 Mac 上 他们会完全知道我在说什么 在编码时 我只想在单词或一行上加上引号或括号 为此 我必
  • 启动 jboss 服务器时出错

    我刚刚完成重新安装我的操作系统 并像往常一样安装和测试我使用的标准工具 现在当我尝试从 eclipse 启动 Jboss 5 时 我遇到了这个前所未有的错误 这是一个很大的例外 3 53 10 693 ERROR AbstractKerne
  • Java:无法从同一包中的不同类访问静态变量

    这很奇怪 因为我有一个可以访问 Frame dimension getWidth 的 Character 类 及其伙伴 getHeight 但是当我想在 Map 类中使用它时 Eclipse 强调了它并且无法给我反馈 运行该程序最终会出现
  • stm32l0: 执行MI命令失败。使用 vFlashErase 数据包擦除闪存时出错

    我正在使用 Nucleo STM32L031 和 AC6 STM32 工作台 eclipse 我编写应用程序并进入调试模式 一切正常 直到我在应用程序中添加另一个功能 我注意到当我删除 评论 新函数 软件可以再次进入调试模式 但是当我添加
  • Android:默认 XML 编辑器不再打开 [不支持的内容类型错误]

    我使用 Eclipse 在 Android 中开发应用程序已经有一段时间了 我最近将Android SDK平台更新到3 0 API 11 现在 我无法通过双击打开 AndroidManifest xml 或 Layout 文件夹中的任何其他
  • 从命令行调试 iOS 应用程序构建

    我正在通过命令行构建 iOS 应用程序 但在调试它时遇到问题 如果我使用 XCode 进行构建 它会让我在设备上 构建和调试 而不会出现任何问题 但现在 我不知道如何使用 gdb 在设备上启动它并逐步执行它 如果我尝试 添加自定义目标 可执
  • 无法加载 JNI 共享库 (JDK)

    当我尝试打开时Eclipse http www eclipse org 弹出对话框指出 无法加载 JNI 共享库 C JDK bin client jvm dll 此后 Eclipse 强制关闭 我想提出以下几点 我检查了这条路径上是否存在
  • 如何忽略 Pydev Eclipse 中特定的未定义变量

    我正在使用 Eclipse 和 Pydev 插件在 Windows 上编写跨平台 python 脚本 该脚本利用os symlink and os readlink 如果当前平台不是 NT 则使用方法 自从os symlink and os
  • 解决 Java Checkstyle 错误:名称 'logger' 必须匹配模式 '^[A-Z][A-Z0-9]*(_[A-Z0-9]+)*$'

    使用 Eclipse Checkstyle 插件我看到以下错误 名称 logger 必须匹配模式 A Z A Z0 9 A Z0 9 我通过更改解决了此错误 private static final Logger logger Logger
  • 架构armv7的重复符号

    尝试在我现有的应用程序中使用 Layar SDK 时出现以下错误 我该如何解决这个问题 Ld Users pnawale Library Developer Xcode DerivedData hub afxxzaqisdfliwbzxbi
  • 将过滤器添加到 Eclipse 中的 Project Explorer

    我想向 Project Explorer 添加一个新的过滤器 以向用户隐藏一些在 Eclipse RCP 应用程序中自动创建的项目 到目前为止我已经找到了两个扩展点 org eclipse ui ide resourceFilters 允许
  • 设备树不匹配:.probe 从未被调用

    我无法理解设备树的工作原理 或者具体来说为什么该驱动程序无法初始化 这是在 android 版本 3 10 的 rockchip 供应商内核中 驱动程序 看门狗 rk29 wdt c 为了可读性而减少 static const struct
  • 引导类路径未与 -source 1.6 3 一起设置[重复]

    这个问题在这里已经有答案了 我在编译代码时遇到此错误 选项 引导类路径未与 source 1 6 一起设置 我知道有一些关于它的主题 但我就是不明白 我是初学者 所以对我来说有点复杂 该程序来自我的学校 我在家里使用 JDK 8 如您所知
  • 如何使 gdb 在反汇编模型上显示原始的非修改函数名称?

    void outputString const char str cout lt lt outputString const char str lt lt str lt lt endl 原来是 Dump of assembler code

随机推荐