STM32F4Discovery + MicroC + STLink programlama hız sorunu

Başlatan engerex, 13 Ekim 2015, 00:20:41

engerex

 MicroC ile uygulama yazdıktan sonra derleyip stm32f4'ü programlamak için CTRL+F11 yetiyor. MikroProg açılıp programlıyor. Ancak programlama süresi 15 saniyeden fazla sürüyor. Direk ST-Utility ile programlarsam 5-6 saniye sürüyor (sanki önceleri 1-2 saniye sürüyordu, buda ayrı bir mevzu). Kart üzerindeki programlayıcı kullanılıyor.
15 saniye kısa süre gibi görünse de çoğu zaman 1-2 dakika kimi zaman da 5 dakika gibi geliyor. Ufak bir düzenlemede bile bu süreyi beklemek rahatsız edici. Ayrıca JLink benzeri programlayıcı şu an almayı düşünmüyorum.
MikroE'nin PC uygulamasından kaynaklanıyor diyebilirsiniz. MikroProgda ST-Utility gibi ST'nin komut satırıyla programlıyor ve her ikisinin de dosyaları güncel.
Bunun çözümü var mıdır?

fatih6761

Hocam programlayıcı ayarlarını kontrol edin. Normalde programlama için 3 seçenek olur:
1. Üzerine yaz: Yeni programı olduğu gibi ilk sektörden itibaren yaz.
2. Etkileneni sil: Programın kaplayacağı alana denk gelen sektörleri sil sonra yaz.
3. Komple sil: Her programlamadan önce tüm flashı sil.
İlki en hızlısıdır ama programın beklendiği gibi sonlanmaması durumunda yazılımın tepkisi belirsiz olur ve zero-initialized section'larda sorun olabilir (çoğu zaman olmaz).
İkincisi daha güvenlidir. Program flash bellekten adreslere endirekt dallanma yapmadığı sürece - ki buna da çoğu zaman rastlanmaz -  sorun olmaz.
Üçüncüsü en güvenli yöntemdir ama çok yavaştır. Aynı zamanda flash belleğin ömrünü de tüketir.

Bu ayar ST programlama aracında sanırım Settings altında bir yerlerde var ( Overwrite - Erase Affected - Erase All sectors anahtar kelimeler )
MikroProg aracında da bir araştırma yapabilirsiniz aynı anahtar kelimelerle.

engerex

 Aslında problemin ayarlardan kaynaklandığı belli. Bir kısayol ile harici program çalıştırıp bir kaç basit makro atanabiliyor. Harici bir araçla bu çözülebilir. Bu yönde bir öneri bekliyorum.

Aslında ST-LINK_CLI aracında komut satırından tecrübeli arkadaş varsa ilgili parametreleri paylaşırsa bu iş çözülecek.

engerex


LukeSkywalker

Alıntı yapılan: engerex - 29 Haziran 2016, 22:24:43
Olayı çözdüm. İsteyen varsa yazabilirim.
Çözdüyseniz yazın, isteyen varsa ne demek ?

engerex


94onur94

Anlatırsanız sevinirim bende bu yavaşlıktan sıkıldım.

LukeSkywalker

Mikroprog suite isimli programi açın, options kismina gelin. Verify ve buffer tiklerini kaldirin. Frekansi da 6 Mhz olarak ayarlayin.

94onur94



Sadece buffer ve verify değişiyor frekans kısmı kilitli. Bu ayarlar ile yine hızlanma olmadı.

engerex

 Konuyu açmadan önce MikroProg ayarları ile oynamıştım ve hız konusunda hiç bir fark görememiştim. Şimdi de aynı. CTRL+F11 ile DEBUG+PROGRAM 15-20 saniye sürüyor. Az önce tekrar denediğimde MikroProg ilk açtığımda Stlink seçili olmasına rağmen Mhz seçeneği aktifti ancak ondan sonraki denemelerimde pasifti. ????

Detaylı anlatım;
1) MikroC açık iken F12'ye basın. (veya Tools > Options)
2) Açılan ekranda sol taraftan Tools tıklayın.
3) Açılan alt menüde Tool0'dan Tool9'a kadar düğmeler var. Boş olan birini örneğin Tool1'i tıklayın ve sağ tarafı dolduralım.
4) Herhangi bir isim verelim. "Tool Name: SpeedFlash"
5) Çalıştırılacak uygulamanın (Stlink programlayıcının) tam yolunu gösterelim. "File Name: C:\Users\Public\Documents\Mikroelektronika\mikroProg Suite For ARM\ST-LINK_CLI.exe" Bu yol sizde farklı olabilir.
6) Çalıştırılacak uygulamanın kullanacağı parametreleri girelim. "-c SWD -p "%HEX_FILE_NAME" -Rst -Run SWCLK=10 -V "after_programming"
7) Bu işe bir kısayol atayalım. "Ctrl+F10"
8) OK diyerek çıkalım.
9) Uygulamada iki aşamamız var.
u1) CTRL+F9 ile DEBUG (1-2sn)
u2) CTRL+10 PROGRAMLAMA ve DOĞRULAMA dahil (3-5sn)
   işlemini gerçekleştiriyoruz. Bu iki işlem 4-5 saniye arası sürüyor. 15-20 saniyeden bu değerlere düşmesi çok iyi.

İlk denediğim zamanlar daha hızlı sonuç aldığımı hatırlıyorum.

Tam olarak şu;


Düzeltme : VERIFY (doğrulama) içeren parametre değerleri eklendi.

LukeSkywalker


engerex

Mesaj içeriğinde bahsetmiş ancak değerleri girmemişim. Yeni parametre ile programladıktan sonra doğrulama yapılıyor.