自己最近做了一塊板子。stm32rbt6,第一個程序下載進去后發現LED燈閃爍,說明程序已經正常運行。但第二次添加了幾段代碼后,再重新使用jlink下載,總提示 no device found還有emulator has been changed or 什么什么,然后開始找原因。更新jlink驅動,jlink是盜版的以為它壞了呢,但是在debug里卻能找到他的sn號說明他是好的,網上說跟stm32的BOOT0 和boot1的接法有關系,經過反復查看資料
發現
BOOT0是在接地的時候,而BOOT1三種狀態任意的情況下程序都是從內部flash里開始運行的,并且此時用jlink下載是沒有問題的,我也考證了神州1號stm32的開發板,人家也是這么接的,公司的產品也是這么做的,為什么我的就有問題呢?
回過頭來想了想,公司產品使用stlink下載的,難道跟著有關,我在debug里改成swo,結果竟然能下載成功,我再重新嘗試jlink下載還是出現上述問題。
網友說是可能程序禁用了jlink的功能,成千上萬的代碼我開始尋找,終于在某一個初始化的函數中找到了這句話
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);將他屏蔽掉,問題解決,
看來跟驅動無關,跟版本無關,硬件只要BOOT0接地,boot1任意都沒問題。
|