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

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:

其餘的選項可以一起解釋評論下,這些選項我也不是很清楚。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章