222223 发表于 2025-6-25 16:59

jlink仿真时多次出现程序运行中断问题

请教下各位老师、大佬这种问题一般会是啥原因导致的,或是提供下定位问题的思路?拜谢!!!
开发环境:MDK V5.36仿真器:jlink
芯片:AT32F403ARCT7
问题:debug仿真时经常出现程序运行中断问题,且每次程序停止时显示在芯片驱动库的“usart_reset"函数。
jlink报错信息:
* JLink Info: T-bit of XPSR is 0 but should be 1. Changed to 1.
***JLink Error: CPU is not halted

muyichuan2012 发表于 2025-6-26 08:56

如下是kimi的回答
根据你提供的截图和描述,Keil 报错 `JLink Error: CPU is not halted` 的原因及解决方法如下:

---

### **原因分析**
1. **CPU未暂停**
   - J-Link调试器尝试对目标设备执行操作(如写入寄存器、内存等),但此时 CPU 处于运行状态而未被暂停。
   - 大多数调试操作(如修改寄存器、单步执行等)需要 CPU 处于暂停状态才能安全执行。

2. **调试会话配置问题**
   - 调试器可能未正确配置,或者在执行某些命令时未自动暂停 CPU。
   - 例如:手动输入调试命令(如截图中的 `WS` 指令)时,未确保 CPU 已暂停。

3. **硬件或连接问题**
   - J-Link 与目标设备的连接不稳定,或目标设备未正确复位。
   - 调试接口(如 SWD/JTAG)可能松动或损坏。

---

### **解决方法**
#### **1. 手动暂停 CPU**
在执行调试命令前,确保 CPU 已暂停:
- 在 Keil 中点击调试工具栏的 **暂停按钮**(⏸️)。
- 或通过 J-Link 命令行输入:
```bash
Halt    # 暂停 CPU
```

#### **2. 检查调试会话配置**
- 确保 Keil 的调试设置正确:
- 打开 **Project → Options for Target → Debug**。
- 确认 J-Link 配置(如设备型号、接口类型)与目标硬件匹配。
- 勾选 **Reset and halt the target before downloading**(下载前复位并暂停目标)。

#### **3. 避免手动调试命令冲突**
- 如果需要执行手动命令(如截图中的 `WS` 指令):
- 先暂停 CPU(使用 `Halt`)。
- 执行命令后,重新启动 CPU(使用 `Go` 或继续运行程序)。

#### **4. 检查硬件连接**
- 确保 J-Link 调试器与目标板的连接牢固。
- 检查目标设备的电源和复位电路是否正常。
- 尝试重新插拔 J-Link 或更换调试线。

#### **5. 更新 J-Link 软件**
- 确保 J-Link 软件(J-Link Commander、Keil MDK)已更新到最新版本。
- 下载地址:(https://www.segger.com/downloads/jlink)

---

### **示例:正确的调试流程**
1. 在 Keil 中启动调试会话(点击 ⚙️ 符号)。
2. 等待 J-Link 自动复位并暂停 CPU(默认行为)。
3. 执行需要的调试命令(如查看变量、修改寄存器)。
4. 点击继续运行(▶️)或单步执行(▶️▶️)。

---

### **截图中的关键信息**
- 错误发生在执行 `WS 1, _gimbal, 0x0A` 时,表明程序试图写入寄存器 `gimbal`,但 CPU 未暂停。
- J-Link 自动修正了寄存器 `XPSR` 的 T-bit(Thumb 模式标志),但未解决核心问题(CPU 未暂停)。

---

### **总结**
错误的根本原因是 **CPU 在执行调试操作时未暂停**。通过在操作前手动暂停 CPU 或检查调试配置,可以有效解决此问题。如果问题持续,请进一步排查硬件连接或更新调试工具。

222223 发表于 2025-6-26 14:39

muyichuan2012 发表于 2025-6-26 08:56
如下是kimi的回答
根据你提供的截图和描述,Keil 报错 `JLink Error: CPU is not halted` 的原因及解决方法 ...

感谢指导{:handshake:}

FractalDreamer 发表于 2025-6-27 09:33

感觉是硬件问题,要么jlink有问题,要么你板子有问题
页: [1]
查看完整版本: jlink仿真时多次出现程序运行中断问题