Keil5,Debug调试模式下,Connect& Reset Options的操作你真的懂了吗?

今天在完成一个新的项目时,很碰巧让我遇到了这个BUG问题,之前调试时,都不把这个操作放在眼里,都设置为Normal就OK了。看过其他帖子,解释的也很少,不是很详细,都说在SWD模式下,Debug菜单中,Reset菜单选项只需要将默认的AutoDetect,改成SysResetReq即可。可是具体问题,需要具体分析,而不是任何方法都适合你。(很幸运我这里根本就没有这个选项)。

由于本次项目所用到的板子是自己购买芯片,画PCB制作的,因此,遇到的问题就是JTAG中的SW接口能够识别到ARM芯片,但是,下载程序时,却不能下载,提示错误JTAG Error: Could not start CPU core. (ErrorCode: -1)。于是,后面检查了硬件的SW接口是否有虚焊,或者芯片是否被加密这些硬件原因,排除硬件原因之后,就来检查软件方面的原因,本次项目所使用的芯片型号为STM32L051C8T6,由于本次使用的是CubeMX生成项目,因此,首先检查了MX当中是否打开了调试串口,然后检查了SW的下载速率,然后,设置成下载速率为500kHz以下,200kHz,都能够下载成功,大于500kHz不能下载成功。

虽然,在这里我的问题并不是由于Connect& Reset Options中的操作设置引起的,但是,我还是非常想知道这里面的各个参数的含义到底是什么作用,最后,我找到了Keil官方的网站,看到了如下的解释。(英语好的可以自行翻译)

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

Keil5,Debug调试模式下,Connect& Reset Options的操作你真的懂了吗?_第1张图片

Keil5,Debug调试模式下,Connect& Reset Options的操作你真的懂了吗?_第2张图片

Keil5,Debug调试模式下,Connect& Reset Options的操作你真的懂了吗?_第3张图片

Keil5,Debug调试模式下,Connect& Reset Options的操作你真的懂了吗?_第4张图片

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,并且仅对某些设备可用。

Kinetis:

Core and Peripherals:

LPC1200:

其余的选项可以一起解释评论下,这些选项我也不是很清楚。

 

 

你可能感兴趣的:(STM32)