问题标签 [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.
c - 带有 STM32 的 SEGGER:无法连接到目标。未检测到 idcode
我一直在尝试在 STM32H7B3 板上设置 PLL 时钟频率,我可以通过在下面的代码中设置 DIVN 乘法器 (RCC_PLL1DIVR_N1) 来做到这一点。上次我能够成功执行此操作是将乘数设置为 1。当我尝试下载乘数设置为 0x18F (= 399) 的代码时,我收到了上述错误消息。我现在意识到,由于 sys_ck 规范,我应该尝试的最大值可能是 DIVN = 280,但尽管如此,错误发生在下载代码时,而不是运行它。我尝试使用重置按钮,但无济于事。我现在无法连接到电路板,我不知道还能尝试什么。
更新:我运行了 JLinkSTM32,但它打印了以下内容:
c - 使用 Infineon XMC4800 MCU 和 Segger 进行 GDB 调试中断而无断点
我们有一个 EtherCAT 项目,为此我们使用英飞凌的 XMC4800 MCU。我首先在 Dave(他们的 IDE)中工作,但由于它不是基于 CMAKE,我遇到了添加可重用库的问题(我们为此使用 CPM)。
所以我决定尝试为 Dave 项目创建一个 CMakeLists.txt 文件,看看是否可以在 CLion 中打开/编译该项目。
几个小时后,我能够在 CLion 中构建项目。(我只是打开 Dave 来更改硬件设置)
然后,我结合 Segger J-link Plus (SWD) 设置“嵌入式 GDB 服务器”调试目标
这将上传已编译的应用程序,并且目标开始正常运行。(我让它闪烁一个LED)
问题是,当我启用断点时,它不会在我放置的断点上中断,而只是在完全其他位置中断。(在我的情况下,在 int 处理程序的第一行)
当我在 Dave 中使用相同的设置进行调试时,它工作正常。
我尝试使用捆绑的 GDB 和 GNU GDB,这没有区别
这可能与该项目使用引导加载程序(我从 Dave 构建和闪存的一个单独项目)有关
这是使用的链接器脚本:
编辑:
我在 EtherCAT 示例的文档中找到了这一点:
他们还提到了这一点:
在链接器文件中定义了应用程序的起始地址 DAVE 项目的默认链接器文件将向量表和程序数据的位置定义到闪存起始地址 0x0C000000 为 EEPROM 仿真保留空间,在您的项目中使用 ECAT_SSC APP,覆盖此默认链接器文件与每次代码生成重新映射程序数据起始地址 0x0C000000 向量表 0x0C020000 程序数据 此设置与本示例中使用的闪存分区不匹配,因为向量表与引导加载程序分区重叠 相反,需要以下设置0x0C020000 向量表+程序数据
这可能与我的问题有关吗?
go - Go 程序错误(Bettercap 2)取决于我在运行 ble 扫描时在 Ubuntu/Raspberry Pi OS 上使用的蓝牙加密狗
我在 Ubuntu 20.04 和 Raspberry Pi OS 5.10 上使用它,但这不是 Linux 相关问题。
当我使用它的功能扫描蓝牙设备时,我遇到了一个名为 Bettercap 2(https://www.bettercap.org/和存储库:https ://github.com/bettercap/bettercap)的 Go 程序的问题“ ble.recon on" 使用不同的蓝牙加密狗。
当我将它与使用 Realtek RTL8761b 驱动程序( MPOW MPBH456AB )的加密狗一起使用时,您可以在亚马逊上找到它运行良好,但是当我使用 NordicSemi nrf52840 加密狗时(https://www.nordicsemi.com/Products/Development-hardware/nrf52840 -dongle)这是我的目标,用 Zephyr RTOS 的 hci_usb 示例(https://github.com/zephyrproject-rtos/zephyr/tree/main/samples/bluetooth/hci_usb)闪烁,它应该使用蓝牙打开任何微控制器进入任何计算机都应该识别的常规蓝牙加密狗,它会引发此错误:
我不知道这意味着什么,因为我不是 Go 开发人员并且从未使用过这种语言,我查看了错误,它似乎在代码中但不了解 Go,我更愿意在修改任何内容之前询问.
问题仅在我使用 nrf 加密狗时,否则它可以与主机的蓝牙和其他 realtek 加密狗一起使用。
nrf 加密狗与 BlueZ 堆栈一起使用,结果如下:
bluetoothctl ( 有一个 BD 地址 ) 扫描确实有效
btmgmt(找到控制器)扫描确实有效
但是,虽然已弃用,但 hciconfig 和 hcitool 可以识别 realtek 加密狗,但对于这个,结果如下:
hciconfig(无BD地址)
hcitool(找不到控制器)
所以,我认为加密狗与 BlueZ 配合得很好,作为 Linux 官方蓝牙堆栈,这是一个好兆头,但我认为 Bettercap 也在使用 BlueZ,从这个意义上说,加密狗应该可以工作。
我认为没有为加密狗安装任何驱动程序,因为当它被刷新(J-Link)时,它会变成一个通用的蓝牙加密狗。
你知道问题可能是什么吗?
embedded - segger 项目 tio 运行需要哪些环境变量?
我以前从未使用过 segger,并且在构建项目后被要求从 git-lab build-able 获取代码,它说构建失败并出现以下错误:
我该如何解决?是否有需要指向某处的路径?
linux - 无法在 Ubuntu 上启动 J-Link GDB 服务器
我目前正在研究 NXP i.MX8M Mini 内的 ARM Cortex-M4。我能够在 Ubuntu VM 上的 Eclipse IDE 上为 M4 编译一个项目。我现在想通过仍然来自 Ubuntu 的 SEGGER Flasher ARM 探针在 M4 上进行调试。
我的探针很容易被 Ubuntu 识别,我只需键入以下命令即可启动 J-Link GDB 服务器:
但是,如果我在没有 sudo 的情况下键入相同的命令,我会得到:
我的问题是,当我启动 eclipse 时,我得到的结果与在没有 sudo 的情况下启动 GDB 服务器相同。这似乎是一个权利问题,我该如何解决?
eclipse - 使用断点调试时的GDB问题,CPU一次又一次重新启动
语境:
我目前正在研究 NXP i.MX8M Mini 内的 ARM Cortex-M4。我能够在 Ubuntu VM 上的 Eclipse IDE 上为 M4 编译一个项目。我还可以将二进制文件下载到 M4 并使用 SEGGER Flasher ARM 探针、J-Link GDB 服务器和 GDB 客户端启动它。
问题:
我现在要做的是在我的代码中放置断点。当我使用断点开始调试时,执行将在所需的行处停止。但是,当我在 Eclispe 上单击“恢复”时,CPU 会循环重新启动,并且在我完成调试会话之前不会停止。
以下是我在 Eclipse 控制台上的日志:
在点击“继续”之前
点击“继续”后
microcontroller - 如何在复位前执行的 MCU(NXP 控制器)中获取特定的代码行
在我调试代码的过程中,遇到了一个关于重置的问题。在调试模式下,每当我放置断点时,在被点击并单击运行(命令)后,都会获得软件重置。这不会发生,当我没有在代码中放置任何断点时,软件运行正常。同样在断点被击中后,如果我通过 Step 命令执行软件,那么我也不会重置。由于代码大小非常巨大,完全没有得到,问题出在哪里。我想知道在调用重置函数之前执行了哪一行代码?有谁知道答案,他们可以帮助我。使用以下环境:
微控制器:恩智浦
调试器:J-Link
调试软件:臭氧调试器