1. 程式人生 > >在systemWorkBench中使用st-link除錯程式

在systemWorkBench中使用st-link除錯程式

第一次使用systemWorkBench和st-link。安裝編譯過程很順利。傻瓜操作到調試出現如下錯誤:

Info : device id = 0x100f6413

Info : flash size = 512kbytes
Info : Unable to match requested speed 2000 kHz, using 1800 kHz
Info : Unable to match requested speed 2000 kHz, using 1800 kHz
adapter speed: 1800 kHz
Error: timed out while waiting for target halted
TARGET: STM32F407VETx.cpu - Not halted
in procedure 'reset'
in procedure 'ocd_bouncer'


Info : Unable to match requested speed 2000 kHz, using 1800 kHz
Info : Unable to match requested speed 2000 kHz, using 1800 kHz
adapter speed: 1800 kHz
Error: timed out while waiting for target halted

TARGET: STM32F407VETx.cpu - Not halted
in procedure 'reset'

in procedure 'ocd_bouncer'

GDB提示無法復位硬體。原來是systemWorkBench預設使用工程的除錯指令碼。指令碼中預設需要復位。跳過就好了。

方法是修改工程中的.cfg

reset_config srst_only srst_nogate前面加上#

並新增一行內容:reset_config none separate

方法來自

https://github.com/vsergeev/arm-bmw-sw/issues/1和

http://www.2cto.com/kf/201612/574739.html


但是他們的文章是英文或者並沒有標註出錯誤內容。基友們百度可能無法搜到這個方法。so~在巨人的肩膀上記錄這個錯誤。

號外:stlink的usb驅動必須使用官方驅動。否則即使keil能正常使用的stlink workbenth也未必正常使用。

http://www.openstm32.org/faq1