问题标签 [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 回答
73 浏览

c - cortex m 设备中的堆栈展开是如何工作的?

我在任何地方都找不到一个很好的解释——我正在使用一个 cortex-m4 设备(具体来说,它是一个 STM32L4 发现板)并且我尝试编写一个工具来为我打印调用堆栈(具体来说我想要获取最后 10 次函数调用,即对应的程序计数器值)。显然这是可以做到的,因为当我调试电路板时(使用带有 cortex-debug 扩展的 VS 代码,并且当我使用 J-link 设备连接到 MCU 时)我可以看到完整的调用堆栈,甚至可以看到传递给堆栈中每个函数的值。但是,我无法理解这是如何完成的(cortex-debug/Vs 代码如何获得回溯)。

在查看汇编代码时,我看不到任何帧指针(我看到核心以某种有线方式使用 R7,但我无法回溯使用它)。所以我想我可能需要使用展开表,但是当我使用测试精灵是否包含这些部分(.ARM.exidx 和 .ARM.extbl)时,arm-none-eabi-readelf --unwind test.elf我发现没有展开部分。那么在这种情况下 VS 代码如何展开堆栈呢?是否有一些与 J-link 相关的特殊硬件以某种方式保持该跟踪,然后 J-link gdb 服务器可以访问它?这些东西是如何工作的有什么好的来源吗?谢谢

0 投票
0 回答
36 浏览

gdb - JTAG vs GDB vs DAP vs UBOOT

我试图了解这些术语是如何相互关联的,哪个是软件组件,哪个是硬件项目,以及它们之间的相似或不同之处。

  1. JTAG
  2. 广发银行
  3. GDB 服务器
  4. J-Link
  5. 行动党
  6. U型启动

到目前为止,我的理解是,JTAG 是由 IC 制造商在其芯片内部实施的标准,用于提供调试支持。GDB 和 GDB 服务器是连接到 JTAG 接口以获取调试数据的软件。JLink 是实现 JTAG 并提供其 GDB 软件的产品名称。DAP 是 ARM Cortex MCU 中提供的用于调试的标准。我们要么使用 DAP 要么使用 JTAG,但不能同时使用两者进行调试。而 U-boot 是在启动时向 JTAG 接口提供调试数据的软件。

如果我的理解不正确,请纠正我。

0 投票
0 回答
113 浏览

visual-studio-code - 如何使用 J-Link 在 VS Code 中擦除和闪存 STM32

我已设置 VS Code 以使用此线程中的指令构建和调试 STM32 。一切正常,我可以运行和调试代码。但是,我只想在不启动调试会话的情况下刷新或擦除目标。我正在使用 J-Link 调试器。执行这些操作最方便的方法是什么?

0 投票
0 回答
6 浏览

segger-jlink - segger jlink 是否接受十六进制文件中的注释

我想在 .hex 文件中添加一些元数据,我通过 segger jlink 加载这些文件。

虽然 .hex 文件中没有标准的注释约定,但许多供应商基本上会忽略以特定字符开头的行。我见过 ';' 使用,例如。

有谁知道 segger jlink 是否有这样的评论约定?我尝试了几个“明显”的约定,但没有一个奏效。

0 投票
0 回答
13 浏览

embedded - 在 Eclipse 中使用 J-link 进行多核调试

在具有两个 ARM968ES 的 FPGA 中工作。还可以使用一个 Segger J-link。JTAG 正确配置为链。J-link.exe 以预期的方式报告两个 CPU。

现在要日食了。我想为每个核心配置两个程序,并且能够使用我的 J-link 同时调试它们,因此 J-link 将与 J-link GDB 服务器的两个实例一起工作。

在 Eclipse 调试配置中:

Core#1 的额外设置:GDB 端口:2331,-jtagconf 0,0

Core#2 的额外设置:GDB 端口:2334,-jtagconf 4,1(ARM 有 4 位 IRlen)

现在的问题是:当一个 Core 的调试会话开始时,一切顺利。当第二个调试会话,对于第二个内核启动时,之前打开的会话变得疯狂,我得到一个错误对话框:“无法执行 MI 命令”和“找不到当前函数的边界”。

但是,新打开的调试会话继续工作。

有任何想法吗?谢谢!

0 投票
0 回答
21 浏览

java - 使用 jlink 创建自定义 jre 无法使用 jakarta mail api 发送邮件

我正在使用使用 jlink 的自定义 jre,当我发送邮件时没有错误显示并突然停止自定义 jre

请看这个我三天前遇到了这个错误我用谷歌搜索我找不到解决方案请开发人员帮助我

注意:当我使用命令时

工作正常,邮件发送成功,但 jre 大小为 137mb,这对我的项目来说不是很好,只有一个主类或在我的项目中发送邮件类

为什么会出现这种情况...