问题标签 [segger-jlink]

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 回答
748 浏览

arm - RTT 查看器未识别 Segger RTT 控制块

我正在尝试使用 Segger 的 RTT(实时传输),但在 RTT 查看器上看不到任何输出。我怀疑根本原因是 RTT 查看器未识别 RTT 控制块。

设置

主机 PC 使用 Seggers 的 J-Link 调试器(JTAG 接口)连接到基于 ARM-CORTEX-M4 的板,如下所示:

我想要达到的目标

我正在尝试集成 Segger 特有的 RTT 功能,但我无法在主机 PC 上的 RTT 查看器软件中看到来自 RTT 的打印件,方法是

  1. segger提供的集成代码

    /li>
  2. 包含SEGGER_RTT.h在我的主文件中并添加了一个调用

    main()

  3. 使用 Eclipse 和arm-none-eabi-工具链编译应用程序,以及

    • JLINK_GDBserverCL.exe-- 调试服务器
    • arm-none-eabi-gdb -- 调试客户端
    • Segger J-Link -- 硬件调试器(连接其 JTAG 接口)

    在主机 PC 上使用 RTT 查看器软件在步骤 #2 中接收打印。

我希望在第 3 步中看到打印,请帮助我继续。

0 投票
1 回答
537 浏览

debugging - 如何在使用 Segger J-link pro 和 Stm32cubeIDE 进行调试期间暂停看门狗计数器

我正在尝试使用 Segger J-link 调试我的应用程序,因为 Nucleo 开发板附带的 ST-Link 调试器只允许 5 个断点。

我找不到在调试会话期间停止看门狗的方法。我在哪里可以找到这样的设置?

如果我使用 ST-link 进行调试,则此选项在以下窗口中可用:

在此处输入图像描述

但是,当我选择 J-Link 时,该选项不再存在:

在此处输入图像描述

我在 SO 上找到了有关添加特定指令的内容(在调试期间禁用 STM32 IWDG),但我正在寻找不需要添加代码的内容。

0 投票
1 回答
175 浏览

eclipse - Eclipse MCU J-Link 调试器在 ldrb r3,[r7,#8] 上崩溃。地址有效 - [编辑 - 硬件问题]

[编辑] 这原来是一个硬件问题。一个单独的线程正在打开无线电功率放大器,我的电源电流限制正在跳闸。另一个线程总是在这条指令执行时准确地激活]

在调试我的项目时,我正在努力解决这个崩溃问题。

CPU 是 SAM4LS8 (Cortex-M4)。我正在使用带有 SEGGER J-Link 调试器的 Eclipse MCU 2018/09 调试。使用 FreeRTOS 8.2.1 和 Atemel ASF。

我有一条特定的指令,当我单步执行它时会使调试器崩溃。我相信指令和地址是正确的,所以我不认为指令本身就是问题所在。

如果您对这个问题很熟悉,我会很感激您的意见。这太痛苦了。

r7 的值为 20004490(与 lr 中的值相同)。被访问的变量是一个自动变量,调试器按预期成功地从地址 0x20004498 检索到该变量的值。当我尝试单步执行指令时,我在调试器控制台上得到以下信息。单步似乎没有正确停止。(我已经包含了调试器在步骤之前成功读取变量值的输出)。

在一堆失败的寄存器读取和失败的内存读取大约 0xDEADBEEF 之后,调试器恢复并显示以下输出:

c代码刚刚执行了一个xQueueReceive(..),并成功返回(崩溃在switch(evt.event_type)的第一条指令上,evt.event_type的值为零(sending_data)。

这是相应的汇编程序,并标记了崩溃点:

0 投票
0 回答
1385 浏览

gdb - 无法再调试我的 STM32 CubeIDE 项目 - 但代码在没有 j-link 的情况下工作

我不知何故陷入了无法以调试模式启动我在 CubeIDE 和 j-link 中的项目的状态。代码编译,flash 被写入,但是我没有在 main.c 的 main 函数的第一条指令上停止,而是陷入了项目的反汇编部分。

在标题栏中显示“未找到源”,在工作窗口中显示:

在没有可用调试信息或程序代码之外的地址“0x20011b88”处中断。

该地址的反汇编显示:

但 step into 弹出窗口:

执行 MI 命令失败:-exec-step 1 来自调试器后端的错误消息;找不到当前函数的边界

我必须在这里遗漏一些明显的东西,并会感谢任何指导。还有一些指针,在哪里学习,如何详细启动项目调试,将受到欢迎。

在此先感谢,R。

0 投票
1 回答
2329 浏览

jtag - 无法在 Mac 上安装和配置 J-Link JTAG 调试器

我有一个 Segger J-Link,我正试图在运行 MacOS Catalina 10.15.4 的 Macbook 上使用它,并在 ESP32 板上使用 openocd 和 GDB。问题是我看不到设备:

这些都不是 J-Link。如果我运行 lsusb 我可以看到它:

我已经安装了从 Segger 下载的“J-Link 软件和文档包”。我检查了 Mac 的“安全和隐私”设置,它没有报告它阻止了任何驱动程序或程序的安装或运行。

在 J-Link 上,绿色 LED 亮起,每秒闪烁两次,非常短暂。

我确定我缺少一块,希望能得到一些帮助。

更新:我一直在这里遵循说明:

OpenOCD 指令

这一切都有效,直到我进入第 6 步,我按照以下说明进行操作:

串行驱动程序说明

问题是,驱动程序的路径永远不会出现,如上所述。如果我不能让它与我的 J-link 对话,我认为我不能运行 OpenOCD。

当我运行 openocd-esp32 时,我得到(来自 openocd-esp32 输出的完整粘贴如下):

esp32-wroom-32.cfg 的内容为:

这是完整的粘贴:

运行 JLinkExe 确实找到了 J-Link:

完成上述操作后,我现在在运行 openocd-esp32 时收到不同的错误消息(可能是因为 J-Link 固件升级?)。最初它抱怨没有设置适配器速度,所以我修改了 interface/jlink.cfg 并添加了:

我现在得到一个不同的错误:

我一直在谷歌搜索,这可能意味着板子坏了或还有另一个配置问题。SD 卡插槽中没有 SD 卡,板上没有其他 SPI 设备,尽管 ESP32-WROVER-32U 上有 SPI flash。

以下是 openocd-esp32 的完整输出:

成功!该电路使用 Segger 10 针针式连接器。在那个连接器上,引脚 1 是 VTREF,而在我的板上,它本应连接到 V3.3 时处于浮动状态。我连接了它并且:

0 投票
0 回答
405 浏览

embedded - USB-C 调试附件模式和 USB 2.0

我想构建一个使用 USB-C 进行调试和 USB 2 功能的嵌入式设备。

现在我不确定我是否正确理解了 USB-C 标准。

  1. 是否正确,如果我将 CC1 和 CC2 连接到具有 5.1 kOHM 的下拉到 GND 的引脚,其他设备会检测到调试附件模式,因此除了连接设备之外,14 个引脚都没有使用吗?

  2. 是否仍然可以将 USB 2 引脚用于 USB 2.1 用途?

我的想法是,我将 Axx 和 Bxx 对短路,并将 SWD 信号连接到引脚 A11、A10、A8、A2、A3,反之亦然,并将 USB 2 连接到 D+/D- 引脚。

  1. 是否有一种工具可以从计算机中检测到设备处于哪种模式?

谢谢你的帮助

0 投票
0 回答
50 浏览

segger-jlink - 我应该如何将 Jlink edu 设备输出与板输入相匹配

您好,我正在尝试将板与随附照片中显示的 J-ling EDU Segger 调试器连接。该板有 8 针连接,但 jlink 设备有 20 针连接。我试图在下面的手册中查找该设备代表的每个输出引脚 https://www.segger.com/downloads/jlink/UM08001 我附上了一张电路板连接示意图的照片。如何在开发板和 JLINK EDU 设备之间连接?谢谢。

在此处输入图像描述 在此处输入图像描述 在此处输入图像描述

0 投票
1 回答
154 浏览

c# - BLE 扫描并从 pc 读取值,我该如何解决“未知数据”问题?

我是 C# 的初学者,非常感谢您的帮助。这是我使用的:-nRF52840 dk(它由 segger Embedded Studio 开发)-pc bluetooth(窗口 10) 我正在尝试创建一个扫描 Ble 并接收值(由 ble 连续发送)的程序。我一直在查看 Windows-universal-samples。但是当我尝试读取值时,它不起作用。 在此处输入图像描述

我怎么解决这个问题?感谢您阅读它,如果您知道如何,请分享。

0 投票
0 回答
94 浏览

arm - Segger J-Link(或 i-jet)与 Renesas R-Car H3 和 IAR

有谁知道如何将 Segger JLink 或 IAR I-Jet 与 Renesas R-Car H3 Cortex-R7 内核一起使用?

我在 Segger 或 IAR 网站上找不到任何东西。

0 投票
2 回答
682 浏览

makefile - 如何使用llvm生成的汇编语言打开stm32板上的LED?

我的英语水平很差,因为我不是以英语为母语的人。敬请谅解。

我用 LLVM infra 编译了一些在 IAR 中运行良好的测试代码,但生成的代码没有在我的测试板上运行。详情如下。

测试目标

我想看看使用 LLVM 生成的汇编代码的操作。

测试环境

  1. 单片机:STM32L152VD(Cortex M3)
  2. IDE:IAR 8.2
  3. 调试器:Segger JLink
  4. LLVM 网站:http ://ellcc.org/demo/index.cgi

测试步骤(总结)

  1. 创建在 IAR 中可以正常运行的测试代码。
  2. 将测试代码移至http://ellcc.org/demo/index.cgi并选择 Target 后编译。
  3. 使用生成的汇编代码创建 test.s 文件。
  4. 创建 makefile 生成 bin 文件并使用 make 程序执行 makefile。
  5. 使用 JLink 程序将 bin 文件加载到目标板。

第1步

我编写了没有库的简单代码,如下所示。此代码简单地打开 LED。

上面的代码在 IAR 中是正确的。

第2步

我将创建的测试代码移至http://ellcc.org/demo/index.cgi并在选择选项后按下编译按钮,如下所示。

在此处输入图像描述

第 3 步

我使用在站点中生成的汇编代码创建了 test.s 文件,如下所示。

第4步

我创建了makefile来生成bin文件,如下所示。这是makefile的内容。

我用make程序执行了上面的makefile,我得到了一个test.o、test.elf、test.bin文件。

第 5 步

我用 JLink.exe (seggar) 加载了 bin 文件并使用 go 命令执行,但注意到发生在船上。(我在加载 bin 文件时使用的命令是“loadbin C:\backend\files\test.bin, 0x08000000”)

结论

到这里就是我所做的一切。我按照上面的方法做了,但是 LLVM infra 生成的汇编代码与 IAR 生成的代码不同。我想知道我做错了什么以及如何解决以实现目标。任何帮助将不胜感激。

谢谢。


添加信息

船上没有像 RTOS 这样的软件。下图是我用来测试的整个结构。 只有 main.cpp 文件是源代码。其他文件由 EWARM IDE 生成。

在此处输入图像描述

地图文件的内容如下。

icf文件的内容如下。

在 EWARM 工具中,我使用 JLink 调试器上传了上述源代码。JLink 调试器和我的板子的连接如图。 在此处输入图像描述

我还尝试手动上传由 EWARM 工具生成的 bin 文件(不使用 EWARM 功能),如下所示。

以下方法与 LLVM 生成的上传 bin 文件的方法相同。结果,EWARM bin 文件是 LED 亮起,但 llvm 文件不是。

在此处输入图像描述

我在上传 EWARM bin 文件和上传 LLVM bin 文件时检查了不同的寄存器值。(PC、SP、MSP)

以下是上传 EWARM bin 文件后起始点的寄存器值。(这是操作) 在此处输入图像描述

以下是上传 LLVM bin 文件后起始点的寄存器值。(这个不操作) 在此处输入图像描述

我认为这个问题的原因是程序计数器(主)堆栈指针的值不正确。如果这个推断是对的,那么如何配置第一次的寄存器值呢?

如果需要其他信息,请告诉我。我要认真解决这个问题。