问题标签 [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.
cortex-m - 如何使用 J-Link 闪存 NXP S32K148?
我正在使用 VS Code 和 J-Link 开发 S32K148。这是 NXP S32Kxxx 系列基于 32 位 ARM Cortex M4 的 MCU 的一部分,旨在用于高可靠性汽车和工业应用。
我想使用 JFlash(使用 J-Link)来刷写芯片,但刷写似乎已被禁用。
我的研究表明我需要为 S32Kxxx 设备提供一个 LinkScript 文件,但我在任何地方都找不到这样的文件。
我的假设是否正确,需要 LinkScript 文件?如果是这样,我在哪里可以找到这个文件?
debugging - 如何使用 gdb 在目标 ARM MCU 上调试闪存程序
我正在尝试使用在目标 MCU 上调试 ARM 闪存程序gdb
我正在使用jlinkgdbserver
. 我有一个准备调试的精灵。
第一次,我可以通过以下方式进行调试
但是,当调试到某个地方时,我想再次从入口点调试,我想出的方法是再次闪烁
所以这似乎有点多余,而且它一次又一次地擦除和编程相同的闪存区域,我担心我最终会通过调试损坏存储。
flash 程序已经烧录到介质中,我只是想让目标自行重置并再次从入口点运行。但我尝试了monitor reset
和run
. 但是目标M7都不能从头再来。
还有其他我可以尝试的 gdb 命令吗?
embedded - Segger Jlink flash下载机制
我正在使用 Rohitab 出色的 API 监控工具来监控 Keil uVision 对 Segger 的 JLinkARM.dll 进行的 DLL 调用,以便我可以在自动化测试环境中复制它们。
作为其中的一部分,我试图了解 uVision 与闪存加载程序通信以下载正在调试的图像的机制。
我知道 uVision 下载是一个闪存加载程序到目标设备的 RAM,并且加载程序与板载闪存交互以擦除它并下载新图像,尽管我很难看到由 uVision 进行的 DLL 调用以实际流式传输图像下载到闪存加载器。
我本来希望看到一大堆JLINKARM_WriteMem
调用来流式传输数据,但我没有。我可以看到一堆JLINK_WriteReg
和JLINK_ReadReg
调用,但不足以构成图像。我的猜测是它们用于监视闪烁过程。我知道 Jlink 支持许多与 Flash 下载相关的 API,但我没有看到它们在这里使用。我也没有看到任何经过的路径。JLink 自己的日志文件在这里同样没有帮助。我在这里缺少一些带外机制吗?
embedded - OpenOCD 多适配器类型配置
我们团队中的一些开发人员拥有 J-Link 调试器,而其他开发人员则使用 ST-Link 调试器。我们所有人都在使用相同固件的相同硬件上工作,基本上其他一切都是一样的。当前设置需要为每个适配器使用不同的 cfg 文件启动 OpenOCD。我想自动完成这项工作。
有没有办法将 OpenOCD 配置为根据连接的适配器自动选择正确的 cfg 文件?
arm - Cortex-M0+ 不响应 PendSV
我在 Raspberry Pi Pico(RP2040,Cortex-M0+ 内核,使用 JLink SWD 通过 VSCode cortex-debug 进行调试)上运行,我看到有关 PendSV 的奇怪行为。
紧接着,SVCall 异常处理程序通过 ICSR 寄存器请求 PendSV。但是在异常返回时,不是尾链 PendSV,而是执行返回到调用代码并继续非异常执行。
ICSR 寄存器始终显示待处理的 PendSV,即使在重复执行线程代码指令时也是如此。系统处理程序优先级全部为零,IRQ 优先级较低。
根据 ARMv6-M 参考手册,PendSV 不能被禁用。
那么,我错过了什么会导致这种行为?
编辑添加:
也许这是一个调试器交互?JLink 软件 (v4.95d) 仍处于测试阶段...
我看到调试器实际上可以禁用 PendSV 和 Systick - C1.5.1 调试步进:“可选地,调试器可以将 DHCSR.C_MASKINTS 设置为 1 以防止发生 PendSV、SysTick 和外部可配置中断。这被描述为屏蔽这些中断. C1-326 页的表 C1-7 总结了指令步进控制。
arm - 在 Atmel Studio 中无法识别 Segger J-Link EDU Mini
我最近在尝试通过 SWD 使用我的 Segger J-Link EDU Mini 对裸机 ARM 微控制器(特别是 ATSAMD11D14AS)进行编程时遇到了一个问题。我从 Segger(J-Link Commander V6.98b 等)下载了所有必要的应用程序,它在 J-Link 指挥官中完美显示,但 Atmel Studio(v. 7.0.2542,Windows 10)只为我提供了“工具 > 设备编程”菜单中的“模拟器”工具。
此致
雅各布
jtag - JLink 调试器 - 物理连接问题(microSD 卡插槽 + DIY jtag->microsd 适配器)
我有这个 Khadas Edge 板,SWD 调试引脚位于 microSD 卡插槽中。
我使用来自 aliexpress 的 SD 延长线连接我的 JLink - 调试工作正常。我能够使用 GDB 和所有。
问题是只有当电缆仅部分插入插槽时,连接才稳定。我必须非常小心地把它扭进去,让它几乎不接触针脚。如果我通过点击进行完整插入 - 没有任何效果。我认为它在工作时会触及所有引脚,但我不知道如何验证这一点。
并且工作电缆位置非常一致且易于重复。所以这不是什么大问题。我能够调试得很好。我只是想了解会发生什么。
我对硬件几乎没有经验,所以也许我遗漏了一些东西。我尝试了 2 种不同类型的 sd 卡适配器,但都是同样的问题。我已经尝试过使用和不使用上拉电阻(在 swdio 通道上)。而且我已经为电路板尝试了不同的电源。
有什么我可以尝试的吗?这对任何人来说都是一个熟悉的问题吗?
stm32 - 无法在循环模式下使用 ADC 和 DMA 重新编程 STM32 (F401RE)
我有一个使用 ADC 转换 2 个输入的简单程序,我在循环模式下使用 DMA。一切都很好。我唯一的问题是,为了重新刷新 STM32,我必须先擦除芯片。仅当我将 ADC 设置为循环模式时才会发生这种情况。
希望有人可以帮助解决这个问题。谢谢!
这是设置 DMA/ADC 的代码
这是 jlink 的输出。同样,如果我擦除芯片一切正常。
visual-studio-debugging - Atmel studio 不工作用于发布或调试模式选择的工具窗口
我最近一直在使用 Atmel studio 7。
我将简要解释我的问题:我无法进行调试,因为我无法选择 DEBUG 模式。这是因为当我进入propreties -> tool
设置窗口时没有出现但是出现了这个信息:An Error trying to load the page. The type initializer for 'Atmel.VsIde.AvrStudio.Utils.MemoryPressureReliever' threw an exception.
我使用 JTAG。有没有人和我一样的问题?感谢那些可以帮助我的人!
embedded - 如何在 ARM Cortex M0 设备中使用 JLink 对引导加载程序区域进行编程
我正在尝试使用 JLink 和 JFlash 对NUC240SE3AE设备的引导加载程序区域进行编程,但出现错误消息:
该芯片确实实现了该区域,但正如我在 Segger 的设备数据库中发现的那样:
该设备只有一个闪存库,
缺少主应用程序的区域和引导加载程序的第二区域。
所以我的问题是:有解决方法吗?如何对该闪存区域进行编程?