我最近購買了STM32F7發現板[1],因此我嘗試使用openocd對其進行閃存,因爲該板具有嵌入式st-link調試器。我有我的工具鏈工作(我正在使用makefiles和arm-none-eabi-gcc),但我想用eclipse刷機,所以我可以有一個圖形化的調試器。使用openocd進行閃存和調試STM32F7發現
爲了做到這一點,我從他們的git倉庫安裝OpenOCD的,我和下面的配置文件啓動它:
source [find board/stm32f7discovery.cfg]
然後我在Eclipse中使用以下命令與ARM-NONE-eabi- GDB閃爍板:
target remote localhost:3333
monitor flash protect 0 0 11 off
monitor flash erase_address 0x08000000 0x100000
monitor flash write_image erase "/absolute/path/hello-world.hex" 0 ihex
monitor reset halt
我嘗試命令的不同列表,包括第一個從I用來建立在Eclipse上我的調試鏈[2]或從其他SO帖教程[3] [4] 。有時候寫操作會失敗,並且當它不會導致錯誤的PC(例如0xfffffffe而不是0x080004ac,這是復位處理程序的地址)。因此,CPU將嘗試執行一些甚至不存在的內容(在我的內存之外)並且失敗。
你有什麼想法可能是錯的?一個小精度:我正在使用Linux。
乾杯,
安託萬。
[1]:www.st.com/web/en/catalog/tools/FM116/SC959/SS1532/LN1848/PF261641?sc=stm32f7-discovery
[2]:vedder.se/2012/12/debugging-the-stm32f4-using-openocd-gdb-and-eclipse/
[3]:stackoverflow.com/questions/5535110/stm32-gdb-openocd-commands-and-initialization-for-flash -and-RAM調試
[4]:stackoverflow.com/questions/17003519/stm32f4discovery-openocd-telnet-uploading-demo-program
[5]: github.com/texane/stlink
[編輯]
我也試圖從GitHub [5]使用ST-鏈路程序和用gdb加載,我也得到類似的錯誤:
2016-03-23T09:22:22 INFO src/stlink-common.c: Attempting to write 32768 (0x8000) bytes to stm32 address: 134217728 (0x8000000)
2016-03-23T09:22:22 WARN src/stlink-common.c: Failed to unlock flash!
EraseFlash - Sector:0x0 Size:0x8000
Flash page at addr: 0x08000000 erased
2016-03-23T09:22:22 INFO src/stlink-common.c: Finished erasing 1 pages of 32768 (0x8000) bytes
2016-03-23T09:22:22 INFO src/stlink-common.c: Starting Flash write for F2/F4/L4
2016-03-23T09:22:22 INFO src/stlink-common.c: Successfully loaded flash loader in sram
enabling 32-bit flash writes
size: 32768
2016-03-23T09:22:23 INFO src/stlink-common.c: Starting verification of write complete
2016-03-23T09:22:23 ERROR src/stlink-common.c: Verification of flash failed at offset: 0
你可以嘗試texane的ST-Link程序從github而不是openocd。它對於ST零件來說非常適合。編程之後,您是否嘗試過進行明確的硬件重置或重新啓動循環? –
我也嘗試了github的st-link,我也無法閃爍我的主板,我總是遇到錯誤(請參閱編輯過的帖子)。由於我無法編程,所以當我重新啓動電路板時,它不會執行任何操作。 – Antoine
嘗試使用st-flash命令行工具,我不知道是否從gdb中閃爍。您也可以在github上查看該特定芯片/電路板的任何已知問題。 –