gpfas 2025-07-23 19:33 采纳率: 0%
浏览 105

ccs报错1137Device is held in reset. Take the device out of reset, and retry the operation.

C28xx: Failed CPU Reset: (Error -1137 @ 0x0) Device is held in reset. Take the device out of reset, and retry the operation. (Emulation package 5.1.450.0)
C28xx: Trouble Reading Register PC: (Error -1137 @ 0x0) Device is held in reset. Take the device out of reset, and retry the operation. (Emulation package 5.1.450.0)
C28xx: Trouble Reading Register ST1: (Error -1137 @ 0x6) Device is held in reset. Take the device out of reset, and retry the operation. (Emulation package 5.1.450.0)
C28xx: GEL: Error while executing OnReset(1): Target failed to read register ST1 at (ST1&~(0x0100)) [f28335.gel:312] at C28x_Mode() [f28335.gel:38] at OnReset(1) .
C28xx: Trouble Reading Register ST1: (Error -1137 @ 0x6) Device is held in reset. Take the device out of reset, and retry the operation. (Emulation package 5.1.450.0)
连接出现这个问题 该如何解决

  • 写回答

5条回答 默认 最新

  • 檀越@新空间 2025-07-23 20:03
    关注

    晚上好🌙🌙🌙
    本答案参考通义千问

    你遇到的错误信息是:

    Device is held in reset. Take the device out of reset, and retry the operation.

    这是在使用 TI 的 CCS(Code Composer Studio) 开发 TMS320C28xx 系列芯片(如 C28335、C28377D 等) 时,常见的调试连接问题之一。这个错误通常表示目标设备(MCU)仍然处于复位状态,导致无法进行调试或读写寄存器。


    原因分析

    1. 硬件复位未释放:MCU 可能被外部电路强制拉低了复位引脚(如 RSTN),导致无法正常启动。
    2. 电源不稳定:MCU 没有正确上电,或者电压不稳,导致无法进入运行状态。
    3. JTAG 接口配置错误:CCS 配置中 JTAG 接口设置不正确,例如选择的接口类型与实际使用的不同(如 XDS110 vs XDS560)。
    4. GEL 脚本问题:某些 GEL 脚本(如 f28335.gel)可能在初始化过程中尝试读取寄存器,但此时 MCU 仍处于复位状态。
    5. 芯片损坏或焊接不良:MCU 或相关电路存在物理问题。

    🔧 解决方案

    1. 检查硬件连接和电源

    • 确认 MCU 已正确供电,电压稳定(通常为 3.3V 或 5V)。
    • 检查复位引脚(RSTN)是否被拉低,确保其处于高电平。
    • 检查 JTAG 接口是否连接稳固,尤其是 TCK、TMS、TDI、TDO 和 GND 引脚。

    2. 手动解除复位

    • 如果你是通过开发板进行调试,可以尝试手动按下复位按钮断开复位信号源,让 MCU 进入运行状态。
    • 如果使用的是开发板(如 TI LaunchPad),请参考手册确认复位方式。

    3. 检查 CCS 配置

    • 打开 CCS -> Debug Configurations
    • 选择你的调试配置(如 XDS110 / XDS560)。
    • 确保 Target Connection 设置为正确的接口类型。
    • Advanced Settings 中,检查 Reset Type 是否为 System ResetCPU Reset,根据实际情况调整。

    4. 修改 GEL 脚本(可选)

    如果问题出在 GEL 脚本(如 f28335.gel)中,可以尝试修改脚本以跳过某些初始化步骤:

    示例代码修改:

    // 原始代码(可能导致错误)
    OnReset(1) {
        // 读取 ST1 寄存器
        ReadReg(ST1);
    }
    
    // 修改后(添加延时或判断)
    OnReset(1) {
        // 添加延时,等待 MCU 退出复位
        Delay(100);  // 假设 Delay 是一个可用函数
    
        // 读取 ST1 寄存器
        ReadReg(ST1);
    }
    

    注意:GEL 脚本一般由 TI 提供,不建议随意修改,除非你非常清楚其作用。

    5. 更新 Emulation Package

    • 确保你安装的是最新版本的 Emulation Package
    • 在 CCS 中,点击 Help -> Check for Updates,更新所有插件和驱动。

    6. 尝试不同的 JTAG 接口

    • 如果你使用的是 XDS110,尝试换成 XDS560 或其他支持的 JTAG 接口。
    • 确保 JTAG 接口驱动已正确安装。

    7. 测试 MCU 是否损坏

    • 使用示波器或逻辑分析仪检查 MCU 的时钟信号是否正常。
    • 尝试用另一个相同的 MCU 替换当前芯片,看是否仍有相同问题。

    🛠️ 总结步骤(有序列表)

    1. 检查电源和复位信号,确保 MCU 正常上电并退出复位。
    2. 检查 JTAG 接口连接,确保信号线连接稳固。
    3. 在 CCS 中检查调试配置,确认接口类型和复位方式正确。
    4. 尝试手动复位 MCU,或通过开发板复位按钮操作。
    5. 更新 CCS 和 Emulation Package,确保软件环境无误。
    6. 检查 GEL 脚本是否有异常,必要时进行简单修改。
    7. 更换 MCU 测试,排除硬件故障可能性。

    ⚠️ 提示

    如果你是在使用 TI 的官方开发板(如 C28335 DSK),建议按照官方文档中的调试步骤进行操作,避免自行修改底层脚本。


    如有更多关于硬件设计或 CCS 配置的问题,欢迎继续提问!

    评论

报告相同问题?

问题事件

  • 创建了问题 7月23日