Keil 进入调试之后程序不运行

本文介绍了一种Keil调试中遇到的问题及解决方案。在调试过程中,若工程设置中的reset选项错误地设置在resetpin上,可能导致调试无法进行。将reset选项更改为Normal后,调试功能恢复正常。文章还详细解释了Keil连接和复位选项的含义。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

keil 进入调试之后一直不运行,但是原来工程是好的,没有变过,生产了新的板子调试不了,最后发现工程的 reset 选项放在 reset pin 上,只要改为 Normal 就可以正常调试了

目录

 

原来

改为

根源


原来

改为

根源

官方网址

http://www.keil.com/support/man/docs/ulink2/ulink2_ctx_debug.htm#/connect

查阅st官方的文档得知各个选项的作用为

Connect(连接)

Normal:正常是停止当前CPU正在执行的指令后连接。

with Pre-reset(预复位):通过预复位,在连接到设备之前应用硬件复位(HW复位)。

under  Reset(保持复位):在复位下保持硬件复位(HW复位)信号在连接到设备时处于活动状态。当用户程序错误地禁用JTAG/SW接口时,请使用此选项。

Reset(复位)

Normal:

Core:系统复位。

Reset pin:通过复位引脚复位。

Connect under Reset:

Halt after BootLoader:引导加载程序在执行引导加载程序指令后停止CPU,并且仅对某些设备可用。

Halt before BootLoader:引导加载程序在执行引导加载程序指令前停止CPU,并且仅对某些设备可用。

 

<think>好的,用户问的是关于Keil仿真器中两种连接与重置配置的区别,特别是Normal vs under Reset,以及Autodetect和HW RESET的对比,还有哪种更适合STM32开发。我需要先回忆相关知识,确保信息准确。 首先,Normal和Under Reset的区别。Normal模式应该是直接连接目标板,而Under Reset可能是在复位状态下连接。这时候可能需要考虑目标板的状态,比如如果目标板在运行中,可能需要复位才能连接。比如有些时候,如果MCU处于低功耗模式或者程序已经运行,直接连接可能失败,这时候Under Reset会更可靠。 然后是Autodetect和HW RESET的对比。Autodetect可能是指仿真器自动检测复位信号,而HW RESET是强制硬件复位。Autodetect可能在大多数情况下有效,但如果硬件复位线路有问题,可能需要手动选择HW RESET。另外,有些目标板可能复位时序特殊,Autodetect可能适用,需要明确设置。 接下来要分析哪种配置更适合STM32开发。可能需要根据具体情况,比如调试时是否频繁需要复位,或者目标板是否有特殊复位需求。比如在开发初期,硬件可能稳定,使用Under Reset连接更可靠,避免连接失败。而Autodetect在已知硬件复位正常的情况下更方便。 还要考虑用户可能的背景。他们可能遇到连接仿真器时无法连接的问题,或者在调试时出现异常,需要调整复位配置。需要解释清楚同选项的应用场景,帮助用户根据实际问题选择配置。 另外,需要确保术语正确,比如“Under Reset”是否准确,是否有其他名称。可能需要确认Keil的具体选项描述,避免误解。例如,Under Reset可能是指在连接时保持复位状态,确保MCU停止,方便调试器接管。 可能还要提到SWJ接口是否启用,时钟配置是否正确,这些也会影响连接方式。但用户的问题主要集中在连接和重置选项,所以重点放在那两部分。 最后,整理这些信息,分点解释区别和适用场景,给出建议,比如推荐在异常情况下使用Under Reset和HW RESET,正常情况用Normal和Autodetect。同时提醒用户根据实际硬件情况调整,比如外部看门狗或复位电路的影响。</think>### STM32 Keil仿真器连接与重置配置解析 #### 一、连接方式对比:Normal vs Under Reset 1. **Normal模式** - 在MCU正常运行状态下建立调试连接 - 要求目标芯片已处于空闲状态且未执行代码锁存操作 - 优势:连接速度快,无需复位外设 - 风险:若目标芯片处于低功耗模式或异常状态可能导致连接失败[^1] 2. **Under Reset模式** - 通过保持nRST复位信号建立调试连接 - 强制MCU在复位状态下初始化调试接口 - 优势:适用于复杂环境(如外部看门狗、异常时钟配置) - 特点:会暂时复位所有外设,连接时间稍长[^2] #### 二、重置选项对比:Autodetect vs HW RESET 1. **Autodetect** - 自动检测最佳复位方式(软件复位优先) - 通过DAP命令实现非侵入式复位 - 适用场景:常规调试,无特殊复位需求时 - 限制:依赖SWD/JTAG接口完整性[^3] 2. **HW RESET** - 强制使用硬件复位线路(nRST引脚) - 物理电平复位确保芯片完全重启 - 适用场景: - 调试接口异常 - 低功耗模式唤醒失败 - 外部复位电路干扰调试 #### 三、配置建议(STM32开发) 1. **常规开发** ```markdown 推荐组合: - 连接方式: Normal - 复位选项: Autodetect 优势:快速连接,保持外设状态,适合日常代码调试 ``` 2. **异常处理场景** ```markdown 推荐组合: - 连接方式: Under Reset - 复位选项: HW RESET 适用情况: - 首次烧录空芯片 - 时钟配置错误导致死机 - 外部看门狗未禁用 - 低功耗模式调试 ``` #### 四、调试配置验证方法 1. 通过`View->System Viewer->Core Peripherals`查看内核寄存器 2. 检查`SWD/JTAG Communication`窗口的识别结果 3. 使用ST-LINK Utility进行独立连接测试[^4]
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值