2016-03-22 22 views
1

Kısa bir süre önce bir STM32F7 keşif kartı satın aldım [1] ve bu nedenle, yönetim kurulu gömülü bir st-link hata ayıklayıcısına sahip olduğundan openocd kullanarak flaş yapmaya çalışıyorum. Benim alet zincirimi kullanıyorum (makefiles ve arm-none-eabi-gcc kullanıyorum), ancak eclipse kullanarak kartı flaş etmek istiyorum, böylece grafik hata ayıklayıcım olabilir. Bunu yapmak içinFlash ve hata ayıklama openMPD ile STM32F7 discovery

, onların git repo dan openocd yüklü ve aşağıdaki yapılandırma dosyası ile başlatın:

source [find board/stm32f7discovery.cfg] 

Sonra birlikte Tutulma aşağıdaki komutları kullanın kol-hiçbiri-eabi- gdb kartını flaş: I: [2] veya diğer çok yayınlardan tutulması benim ayıklama zinciri kurmak için kullanılan öğretici bir inci de dahil olmak üzere, verilen farklı komut listesini güvenilir

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 

[3] [4] . Bazen yazma işlemi başarısız olur ve ne zaman yanlış bir PC ile bitmezse (örneğin sıfırlama işleyicisi ise 0x080004ac yerine 0xfffffffe). Bu nedenle CPU, mevcut olmayan (hafızamın dışında) bir şey yürütmeyi deneyecek ve başarısız olacaktır.

Neyin yanlış olabileceğine dair bir fikrin var mı? Küçük bir hassasiyet: Linux üzerinde çalışıyorum. Şerefe,

Antoine.

[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 ve tutularak/

[3]: stackoverflow.com/questions/5535110/stm32-gdb-openocd-commands-and-initialization-for-flash -ve-ram-ayıklama

[4]: ​​stackoverflow.com/questions/17003519/stm32f4discovery-openocd-telnet-uploading-demo-program

[5]: github.com/texane/stlink

Ben de [5] github bir st bağlantı programı kullanmak için ve gdb ile yüklemeye çalıştı ve ben benzer bir hata alıyorum

[Düzenle]:

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 
+0

openocd yerine github'dan. ST parçaları için oldukça iyi çalışma eğilimindedir.Programlamadan sonra açık bir donanım sıfırlama veya güç döngüsü yapmayı denediniz mi? –

+0

Ayrıca github'dan gelen bağlantıyı da denedim ve yönetim kurulumu hiç yanıp sönemiyorum, her zaman bir hata alıyorum (düzenlenmiş yazıya bakın). Programlayamadığımdan, tahtaya güç verdiğimde hiçbir şey yapmıyor. – Antoine

+0

St-flash komut satırı aracını kullanmayı deneyin, gdb'nin çalışıp çalışmadığını bilmiyorum. Bu çip/tahta ile bilinen herhangi bir sorun için github'u da kontrol edebilirsiniz. –

cevap

0

Sorunu çözmeyi başardım. İç seçenek baytını değiştirmem gerekiyordu ve bu da tahtada yanıp sönmeye çalışırken beni engelliyordu.

Onları varsayılan değerlerine döndürmek için st-link yardımcı programını kullandım ve şimdi her şey iyi çalışıyor! Bunun yerine openocd kullanmak mümkündür, ancak henüz denemedim. Birisi bunu nasıl yapacağını biliyorsa, paylaşması onun için iyi olur. opsiyon bayt ilgili ayrıntılı bilgi için

, sen referans kılavuzuna [1], sayfa 80 de bakabilirsiniz olabilir 83.

[1]: Sen texane en st-link programı deneyebilirsiniz http://www.st.com/st-web-ui/static/active/en/resource/technical/document/reference_manual/DM00124865.pdf

+0

Seçenek baytlarıyla ne demek istediğinizi detaylandırabilir misiniz? STM32F7-içte olanlar, bunları kod dosyasına nasıl entegre ediyorsunuz?) Veya ELF veya ...? – Olaf

+0

@Olaf Evet, gönderimi daha ayrıntılı bilgilerle düzenledim. İç seçenek bayttan bahsediyordum. Onları kasıtlı olarak değiştirmedim, ancak kaza ile olmuş olmalı (STM32F7'ye bir işletim sistemi yüklüyorum ve bu yüzden çok deneysel). – Antoine