Daha önceki yazılarımda STM32 Discovery kartını tanıtmıştım. Şu sıralar yüksek lisans dersim için bu kart ile uğraşıyorum. Çalışmalarımda edindiğim tecrübeleri sizlerle paylaşacağım.
Burada Genel IDE kullanımı, mikrodenetleyici birimleri gibi konulara girmeyeceğim. O yüzden bu temel konuları bildiğinizi farzederek devam edeceğim.
Kartı programlamak için Keil firmasının MicroVision IDE yazılımını tercih ettim. Keil’in sitesinden bu yazılımın deneme versiyonu bir form doldurulacak ücretsiz indirilebiliyor. Kurulumu yaptıktan sonra “C:\Keil\ARM\Boards\ST\STM32-Discovery\Blinky” klasöründeki Blinky projesini açıp kodları incelemeye başlayabilirsiniz.
Kartın üzeride ST-Link Debugger ile beraber geliyor. Yani USB üzerinden karta yazılım atıp, hata ayıklama işlemleri yapabilmek mümkün. İlk denemelerimde debugger’ı çalıştıramadım. Google’dan yaptığım aramalarda Keil forumlarında ST-Link için yeni bir sürücü dosyasının indirilmesi gerektiğinin söylendiğini gördüm. Linkteki dosyayı indirip C:\Keil\ klasörüne atmanız gerekiyor (ARM klasörünün üzerine yazmanız gerekiyor).
[ad#ad-1]
Ayrıca ST firmasının ST Link Utility adlı yazılımını da buradan indirebilirsiniz. Bu yazılımla işlemcinin flash belleğini silme ve programlama gibi işlemleri yapabiliyoruz. “Target” menüsünden “Connect” seçeneğini seçtiğinizde eğer bir problem yoksa ST-Link aracı kartı tanıyacaktır. Sağ üstte işlemcimizin ismini göreceğiz.
Şimdi Keil’deki projeyi incelemeye devam edelim. Sol taraftaki “project” bölümünde projedeki dosyalar görünüyor.
“Startup” klasörünün altında bulunan dosyalarda işlemci reset anından itibaren ilk çalışmaya başladığında işleteceği komutlar bulunuyor. “startup_stm32f10x_ld_vl.s” adlı dosyada assembly komutlarıyla kesme vektörlerinin ayarlanması ve yığın bellek(stack) boyutları ataması vs… yapılıyor. Ardından “system_stm32f10x.c” dosyasındaki SystemInit fonksiyonu çağırılıyor. Bu fonksiyonla da sistem saat frekansı ayarlanılıyor. Bu dosyayla şimdilik bir işimiz olmayacak. Bütün bu işlemler tamamlandığında main() fonksiyonu çağırılıyor. Bildiğiniz gibi C programlarında bütün herşey “main” fonksiyonu içerisinde gerçekleşmektedir.
Buradan sonra işlemciyi ve main içerisinde çağırılan fonksiyonları tanımaya devam edeceğiz…
[ad#ad-1]
Hocam Arm tabanlı mikroişlemcileri hangi dil ile programlıyorsunuz ? C ile prograamlanabilir mi ?