"Enter"a basıp içeriğe geçin

Eclipse IDE ile STM32 Mikrodenetleyicileri İçin Gömülü Yazılım Geliştirme ve Hata Ayıklama

Merhaba sevgili ziyaretçiler. Bu yazımın konusu Eclipse IDE’nin STM32 mikrodenetleyicilerine yazılım geliştirmek için hazırlanması hakkında olacak. Eclipse birçok eklentiye sahip ve esnek bir geliştirme ortamı. Neredeyse bütün derleyicilere destek vermekte ve geliştiricilere gelişmiş hata ayıklama imkanları da sunmakta. Bu noktada Eclipse’e yüklenecek eklentiler ile GNU Cross Compiler’ı kullanabilme ve OpenOCD ve QEMU emülatör eklentisi ile mikrodenetleyici üzerinde hata ayıklama yapabilme şansına sahibiz.

Mikrodenetleyici üreticileri ürettikleri mikrodenetleyicilerin yanında ayrıca bu denetleyiciyi programlamayı sağlayan yazılımları da üretmekte ve dağıtmakta. Her ne kadar bu yazılımlar (çoğu zaman) ücretli olsa da piyasada bu yazılımların muadili açık kaynaklı yazılımlar da mevcut (çok şükür). İşte Eclipse bu noktada bize el veriyor ve eşsiz olanaklarını biz geliştiricilere açıyor. Ayrıca QEMU’nun Eclipse’e özel emülatör eklentisi ile Board emülasyonu da yapılabiliyor. Bu sayede bir board satın almadan STM32 gömülü denetleyicileri için debug yapabiliyorsunuz. Bu özellikle yeni başlayanlar için muazzam bir olanak ama tabi kurulum süreci o paralı yazılımları kurar gibi next next yap kurulsun mantığı kadar kolay değil. Ancak çok zor da değil.

Bu kadar zahmetin karşılığı da tabii ki yüzlerce dolar tasarruf olarak dönecektir.

Neyse sözü fazla uzattım sanırım hemen icraata geçip kurulumu nasıl gerçekleştireceğimize bakalım.

ECLİPSE’İN KURULUMU

Öncelikle sistemimize uygun olan en son Eclipse Installer sürümünü şu adresten indiriyoruz.

Eclipse önceleri zip paketinde dağıtılırken son sürümlerinde bir installer ile dağıtılmakta. Bence bu dağıtım şekli çok daha makul ve pratik. Bildiğiniz kurulum süreçlerine benzer şekilde tüm meşhur platformlarda kolayca kurulum yapabiliyorsunuz. Burada indirme işleminin detaylarına girmiyorum zira gömülü yazılım geliştirecek bir adam artık bu husustaki noktaları aşmıştır diye düşünüyorum (anlatmaktan haya ederim).

Eclipse IDE’si Java Runtime platformu üzerinde çalıştığından eğer sistemde yüklü bir JRE sürümü yoksa kurulumu başlatmadan önce sizi JRE’yi indirebileceğiniz bir sayfaya yönlendirecektir. Buradan sisteminize uygun olan JRE sürümünü indirin ve kurun.

Java kurulumu bittiğinde Eclipse Installer’ı tekrar çalıştırın. Kurulum ekranının sağ üst köşesinde bulunan menü butonunun üzerinde bir sarı ünlem görürseniz bu menü butonuna tıklayın ve “UPDATE” seçeneğini seçin. Update işlemi bitince Eclipse Installer yeniden başlatılacağını belirten bir uyarı verecek, onayladığınızda ise yeniden başlayacaktır. Eğer bu güncelleme işlemini yapmazsanız kurulum sırasında sorunlar yaşayabilirsiniz.

Kurulum yeniden başladığında liste halinde Eclipse IDE kurulum seçenekleri sunulacaktır. Burada Eclipse’in farklı alanlar için özelleştirilmiş sürümleri bulunmakta.

Eclipse Installer bize farklı alanlara yönelik özelleştirilmiş sürümler sunmaktadır.
Eclipse Installer bize farklı alanlara yönelik özelleştirilmiş sürümler sunmaktadır.

Bizim gömülü yazılım geliştirme için kullanacağımız sürüm “Eclipse IDE for C/C++ Developers” olan sürüm. Listeden bunu seçiyoruz ve gelecek olan pencereden “INSTALL” butonuna tıklıyoruz. Eğer değiştirmek istediğimiz bir seçenek varsa butona tıklamadan önce bu değişiklikleri yapmamız gerekiyor. Butona tıkladıktan sonra karşımıza lisans sözleşmesi gelecek burada anlaşmayı kabul ettiğimizi gösteren “Accept Now” butonuna tıklayalım ve kuruluma devam edelim. Eğer adımları sorunsuz geçtiysek kurulum işlemi başlayacaktır.

Evet o güzel yeşil çubuk doluyor. Kurulumun ilerleme sürecinin göstergesi. Kurulum tamamlandığında bu da tam olarak dolacak.
Evet o güzel yeşil çubuk doluyor. Kurulumun ilerleme sürecinin göstergesi. Kurulum tamamlandığında bu da tam olarak dolacak.

Kurulumun ilerleme sürecini gösteren yeşil çubuk dolduğunda onun yerinde “LAUNCH” butonu belirecektir. Bu butona tıklayarak Eclipse’i başlatalım.

Kurulum tamamlandığında "LAUNCH" butonu belirecek. Eclipse'i başlatmak için buna tıklayın.
Kurulum tamamlandığında “LAUNCH” butonu belirecek. Eclipse’i başlatmak için buna tıklayın.

Evet Eclipse’in o güzel açılış görüntüsü belirdi.

Eclipse Splash Ekranı
Eclipse Splash Ekranı

Eclipse ilk açıldığında sizden proje dosyalarını kaydedeceği bir konum belirtmenizi isteyecektir.

Eclipse proje dosyalarını kaydedeceği konumu bilmek ister. Eğer bir daha sorulmasın istiyorsanız "Use this as the default and do not ask again" kutusunu işaretleyin.
Eclipse proje dosyalarını kaydedeceği konumu bilmek ister. Eğer bir daha sorulmasın istiyorsanız “Use this as the default and do not ask again” kutusunu işaretleyin.

Eğer burada belirteceğiniz konum tüm projeler için aynı olsun ve bir daha sorulmasın istiyorsanız “Use this as the default and do not ask again” seçeneğini işaretleyin ve “OK” butonuna basın.

İşte Eclipse karşımızda…

Eclipse IDE'nin kurulumdan sonraki ilk hali
Eclipse IDE’nin kurulumdan sonraki ilk hali

Yukarıdaki resimde kırmızı işaretli butonlardan herhangi birine tıkladığınızda C/C++ çalışma alanı tüm araçlarıyla açılacaktır.

Ama öncesinde ilk yapacağımız iş yazının başında bahsini ettiğimiz “GNU ARM Eclipse” eklentisinin kurmak. Bunun için “Help” Menüsünden “Eclipse Marketplace”yi seçiyoruz. Eclipse Marketplace’ten Eclipse için geliştirmiş eklentiler indirilebilir.

Eclipse eklentilerinin bulunduğu Eclipse Marketplace'i açmak için "Help" Menüsünden "Eclipse Marketplace" seçilir
Eclipse eklentilerinin bulunduğu Eclipse Marketplace’i açmak için “Help” Menüsünden “Eclipse Marketplace” seçilir

Eclipse Marketplace uygulaması sunduğu arama imkanıyla aranan eklentinin kolayca bulunabilmesini sağlar. Aranacak ifade “Find” yazı kutusuna girilir ve “Go” butonuna tıklanırsa hemen aşağıdaki listede arama ifadesine en yakın sonuçlar getirilecektir.

Eclipse Marketplace
Eclipse Marketplace aranan eklentinin kolayca bulunabilmesi için arama imkanı sunmaktadır.

Ben “GNU ARM Eclipse” eklentisini kurmak istiyorum dolayısıyla “Find” alanına aynı ifadeyi yazarak “Go” butonuna tıkladığımda aşağıdaki listede tam da istediğim eklenti geldi. Listede “GNU ARM Eclipse” eklentisinin bulunduğu satırın sağında bulunan “Install” butonuna tıklayarak eklentinin kurulum işlemini başlatıyorum.

"GNU ARM Eclipse" Eklentisinin Kurulum Seçenekleri. Buradan "Generic Cortex-M Project Template" seçeneğini işaretlemeyi unutmayın
“GNU ARM Eclipse” Eklentisinin Kurulum Seçenekleri. Buradan “Generic Cortex-M Project Template” seçeneğini işaretlemeyi unutmayın.

Eklentinin kurulumundan önce kurulum seçenekleri penceresi gelecektir. Burada “Generic Cortex-M Project Template” seçeneğini de işaretleyip “Confirm >” butonuna tıklayalım.

“GNU ARM Eclipse” eklentisinin lisans sözleşmesi ekranı. Kurulumu tamamlamak için “I accept the terms of license agreement” seçeneğini seçip “Finish” butonuna tıklayın.

Sonrasında ise eklentinin lisans sözleşmesi gelecektir. Burada “I accept the terms of the license agreement” seçeneğini seçerek sözleşmeyi kabul ettiğimizi belirterek kurulumu tamamlamak için “Finish” butonuna tıklayalım.

Hadi hayırlı olsun GNU ARM Eclipse eklentisini kurdunuz.

OPENOCD’NİN KURULUMU

Şimdi sırada OpenOCD var. OpenOCD’nin kurulumunu birkaç adımda gerçekleştireceğiz. Öncelikle şu adresten size uygun olan sürümü indirin.

İndirme işlemini tamamlayıp kurulum programını çalıştırdığınızda karşınıza şöyle bir ekran gelecektir.

OpenOCD Kurulum ekranı
OpenOCD Kurulum ekranı

Burada “Next” butonuna tıklayarak lisans sözleşmesi ekranına geçiyoruz. Lisans sözleşmesini kabul etmek için tekrar “Next” butonuna tıklıyoruz. Gelen ekranda kurmak istediğimiz modülleri seçerek tekrar “Next” butonuna tıklıyoruz. Sonraki ekran ise OpenOCD’nin kurulum yerini belirtmemizi isteyecek. Eğer kurulum yerini değiştirmek istemiyorsanız “Install” butonuna tıklayın ve kurulumu başlatın. Kurulum bittiğinde “Finish” butonuna tıklayarak kurulumu sonlandırın.

TEKRAR ECLİPSE’E DÖNELİM

OpenOCD’nin kurulumunu yaptık ama hala Eclipse durumdan haberdar değil. Şimdi Eclipse’e geçelim ve OpenOCD’yi kurduğumuzu söyleyelim.

Bunun için Eclipse IDE ana penceresinde “Window” menüsünden “Preferences” menü seçeneğini seçelim.

"Eclipse

Karşımıza “Preferences” penceresi gelecektir. Bu pencere, Eclipse IDE’nin genel ayarlarının yapıldığı penceredir. Eclipse IDE’nin kullanımı ile ilgili tüm ayarlamalar buradan yapılır ve bu ayarlar tüm IDE’yi etkiler.

Preferences penceresinde "Run/Debug" sekmesi altında bulunan "OpenOCD" sekmesinde OpenOCD'nin çalıştırılabilir dosyalarının bulunduğu yolu Eclipse'e göstermek gerekiyor.
Preferences penceresinde “Run/Debug” sekmesi altında bulunan “OpenOCD” sekmesinde OpenOCD’nin çalıştırılabilir dosyalarının bulunduğu yolu Eclipse’e göstermek gerekiyor.

Preferences penceresi üzerinde sol tarafta bulunan ayar sekmelerinden “Run/Debug” sekmesi altındaki “OpenOCD” sekmesini seçelim. Sağ taraftaki panelde OpenOCD ile ilgili çalıştırılabilir dosya ve yol tanımlamaları ile ilgili alanlar görünecektir. Burada “Executable” alanına OpenOCD’nin çalıştırılabilir dosyasının adını giriyoruz. Hemen altında bulunan “Folder” alanına ise “Executable” alanında belirttiğimiz çalıştırılabilir dosyanın bilgisayarınız üzerindeki fiziksel yolunu belirtiyoruz. Bu yol OpenOCD kurulumunun son aşamasında kurulum için belirttiğiniz yoldur. Herşey tamamsa “Apply” ya da “OK” butonuna tıklayarak ayar işlemini kaydedelim.

Artık OpenOCD, Eclipse içinde kullanılmaya hazır. Ancak son bir adım kaldı. OpenOCD hangi board ya da denetleyici üzerinde işlem yapacağını bilmek ister. Bu yüzden board yada denetleyici tanımlarını çalıştığımız proje özelliklerinden tanımlamamız gerekiyor. Bunu ilerleyen aşamalarda örnek bir proje oluşturduktan sonra proje ayarlarını yaparken anlatacağım. Bu yüzden şimdilik bu konuya ara veriyorum.

QEMU EMÜLATÖR KURULUMU

Sırada board emülasyonu var. Bu noktada QEMU’nun Eclipse eklentisini kullanacağız. QEMU’nun maharetlerini sıralamaya gerek yok bilen bilir zaten. QEMU Android SDK emülatörlerinin alt yapısını da oluşturmaktadır. Eclipse üzerinde ileri düzey geliştiricilere ne kadar hitab eder orası tartışılır ancak masrafsız bir debug ortamı isteyenler ve yeni başlayanlar için ideal diyebilirim.

Dilerseniz hemen kuruluma geçelim. Öncelikle şu adresten sistemimize uygun sürümü indirelim. İndirme işlemi tamamlanıp kurulumu çalıştırdığımızda aşağıdaki gibi bir pencere ile karşılaşmamız gerekiyor.

Eclipse IDE için QEMU emülatörünün kurulum penceresi
Eclipse IDE için QEMU emülatörünün kurulum penceresi

Bu pencere de OpenOCD eklentisinin kurulum süreci ile aynı adımları içeriyor ekstra bir durum yok. Lisans anlaşması, tercihler, kurulum yolu ve son. Kurulum sonrasında ise OpenOCD ile Eclipse IDE’nin tanıştırılması sürecinde olduğu gibi yine Eclipse IDE’nin Preferences penceresinden QEMU ile ilgili yol tanımlamasını yapmamız gerekiyor. Böylece artık Eclipse IDE, QEMU’nun nerede olduğunu ve onu nasıl çalıştıracağını bilebilecek.

QEMU çalıştırılabilir dosyalarının nerede bulunduğunu Eclipse'e göstermemiz gerekiyor.
QEMU çalıştırılabilir dosyalarının nerede bulunduğunu Eclipse’e göstermemiz gerekiyor.

Preferences penceresine nasıl ulaştığımızı OpenOCD’de anlattığımızdan ve yazıyı fazla uzatmamak adına geçiyorum. Preferences penceresinin sol tarafındaki “Run/Debug” sekmesinin altında bulunan “QEMU” seçeneğine tıklayarak QEMU ile ilgili tanımlamaların bulunduğu kısma geçelim.

Pencerenin sağ tarafında OpenOCD ayarlarında olduğu gibi iki adet alan mevcut. Birinci alan “Executable” yani QEMU’nun çalıştırılabilir dosyasının adı. Eclipse’e QEMU’yu çalıştır dediğimizde yani emülasyon yap dediğimizde QEMU’yu işte bu isimle çağıracak. Zaten default olarak gelecek ama buraya resimde görüldüğü üzere “qemu-system-gnuarmeclipse.exe” yazalım.

Ardından ikinci alan olan “Folder” alanına QEMU’nun çalıştırılabilir dosyalarının (ve yukarıda Executable alanına girdiğimiz çalıştırılabilir emülatör dosyasının) yolunu girelim. Sağ tarafta bulunan “Browse…” butonuyla yolu klasör ağacından da seçebiliriz. Yol tanımlamasını da yaptıktan sonra “Apply” ya da “OK” butonuna tıklayarak bu ayarlamayı kaydedelim.

Eğer tüm adımları sorunsuz geçtiysek emülatör kurulumunu da tamamladık demektir.

GCC ARM EMBEDDED TOOLCHAİN KURULUMU

Diğer kurulum aşaması GNU Cross Compiler ve GNU Make ile Eclipse IDE’yi tanıştıracağımız aşama. Bu aşamada launchpad.net sitesi üzerinden dağıtılan GCC ARM Embedded Derleyici setini ve GnuWin32 Make aracını kullanacağız. Make aracı derleme işlemlerinin otomatize edilmesi için geliştirilmiş bir araçtır ve özellikle proje bazlı çalışmalarda derleme sürecini hızlandırır. Kaynak dosyalarıyla tek tek elle uğraşma zahmetinden kurtarır.

İlk olarak hemen şuradan işletim sistemimize uygun çapraz derleyici araç setini indirelim ve kuralım (çapraz derleyici araçları bir sistem üzerinde başka bir sistem için derleme yapmayı sağlayan araçlardır. Mesela x86 üzerinde arm için derleme yapan araçlardır).

Çapraz derleyicinin kurulumu birkaç basit adımdan ibaret. Kurulumu başlattığınızda öncelikle size hangi dilde kurulum yapmak istediğinizi soran bir mesaj belirecektir. Dil tercihinizi yaptıktan sonra aşağıdaki resimde görülen “Hoşgeldiniz” penceresi ekrana gelecektir. Buradan “İleri” butonuna tıklayarak Lisans anlaşmasına geçin. Lisans anlaşmasını kabul etmek için “Kabul Ediyorum” butonuna tıklayın. Sonraki pencerede kurulumun yapılacağı yeri belirledikten sonra (değiştirmek istemiyorsanız olduğu gibi bırakabilirsiniz) “Kur” butonuna tıklayın.

Kurulum programı, derleyici dosyalarını belirlediğiniz konuma kopyalayacaktır. Burası diğer kurulumlara nazaran uzun sürebilir.

GNU Tools for ARM Embedded Processors  GCC çapraz derleyicisinin kurulum penceresi. Standart kurulum için Sürekli Enter tuşuna basabilirsiniz.
GNU Tools for ARM Embedded Processors GCC çapraz derleyicisinin kurulum penceresi. Standart kurulum için Sürekli Enter tuşuna basabilirsiniz.

Kurulumun tamamlanmasından sonra ekrana kurulum sonu ayar penceresi gelecek. Burada benim tercihim şöyle oldu:

Derleyicinin kurulumundan sonra gelen tercih ekranında "Add path to environment variable" seçeneği seçili olursa komut satırından da derleme yapabilirsiniz.
Derleyicinin kurulumundan sonra gelen tercih ekranında “Add path to environment variable” seçeneği seçili olursa komut satırından da derleme yapabilirsiniz.

“Bitir” butonuna tıklayıp bu pencereyi kapattıktan sonra diğer bir derleme aracımız olan GnuWin32 Make aracını şu adresten indirelim ve kuralım.

Windows için GNU Make aracı kurulum penceresi. Benim için yazılım geliştirme sürecinde C'den sonraki en büyük devrim.
Windows için GNU Make aracı kurulum penceresi. Benim için yazılım geliştirme sürecinde C’den sonraki en büyük devrim.

Bu aracın kurulumu da diğer kurulumlar gibi standart prosedürler içeriyor. Yani sürekli “Next” butonuna tıklayarak kurabiliriz. Ancak make programı dosyalarının nereye kopyalanacağını gözden kaçırmayın çünkü bu yolu Eclipse’e vereceğiz.

GNU Çapraz derleyici ve Make aracını yükledikten sonra Eclipse IDE’ye tekrar dönüyoruz. Son adım Eclipse IDE’ye bu araçları yüklediğimiz yollar göstermek olacak. Bunun için yine (Window->Preferences menü yolunu izleyerek) Preferences penceresini açalım ve bu sefer de “C/C++” sekmesi altından “Build” sekmesini seçelim ve onun da altında bulunan “Global Tools and Paths” sekmesini tıklayalım. Aynı pencerede hemen sağ tarafta “Build tools folder” kısmına GnuWin32 Make programını yüklediğimiz yolu girelim ve “Toolchain Folder” klasörüne ise çapraz derleyiciyi yüklediğimiz konumu gösterelim. “Toolchain Folder” yolu aşağıdaki resimden görüleceği üzere “…arm-none-eabi\bin” şeklinde verilmelidir. Aksi halde IDE hata verecektir.

Eclipse IDE C/C++ Global Ayar Sekmesi
Eclipse IDE C/C++ Global Ayar Sekmesi

Bu işlemleri de sorunsuz atlattıysak eklenti kurulum sürecimiz tamamlanmış demektir. İşte gerekli tüm eklentileri ile Eclipse hazır. Artık Eclipse IDE ile STM32 mikrodenetleyicilere yazılım geliştirebilir ve hata ayıklayabiliriz.

Kurulum sürecinde ne yaptık diye kısaca özetleyecek olursak:

Önce Eclipse IDE’nin uygun sürümünü kurduk. Ardından Eclipse Marketplace’ten GNU ARM Eclipse eklentisini kurduk ve daha sonra debugging için OpenOCD’nin Eclipse’e özel sürümünü indirdik ve kurduk. Daha sonra board emülasyonu için de QEMU’nun Eclipse için özel sürümünü indirdik ve kurduk. Ardından GNU Tools Arm Embedded derleyici setini ve GnuWin32 Make aracını indirdik ve kurduk. Aslında uygulamada uzun bir süreç değil ancak yazıyla ve resimlerle anlatması ve okuması haliyle uzun sürüyor.

Yazıyı uzatmamak adına proje oluşturma ve projeye özel ayarlara bir sonraki yazıda değinmek istiyorum. OpenOCD’nin projeye has ayarlarına da yine sonraki yazıda değineceğim. Eğer eksik ya da anlaşılmayan noktalar olursa yorumlardan ya da e-posta yoluyla bana iletebilirsiniz. Sonraki yazıda görüşmek dileğiyle şimdilik hoşkalın…

haruncetin.com.tr

2 Yorum

  1. emin emin

    merhabarlar bir sorum olacaktı foto eklemek istedim ama olmadı bn eclipse yi kuruyorum fakat ilk aşamalardaki help pe basıp ordan bir yere daha basıp (adı aklıma gelmedi) ordan ilk boşluğa android ikinci boşlığada bir URL adresi yazılıyordu bn bu URL adresini yazıyorum fakat gelmesi gereken ilerleme gelmiyor bunu nedeni nedir yardımcı olurmusunuz mail üzerinden foto ile göstere bilirim

    • Merhabalar söylemek istediğinizi tam olarak anlayamadım epostadan (giriş ya da iletişim sayfasında adresim mevcut) resim gönderebilirseniz daha net yardımcı olabilirim. Ancak anladığım kadarıyla “help->install new software” menü yolunu kastettiniz ve Eclipse üzerine “Android Developer Tools”u kurmak istiyorsunuz. Bunun için “help->install new software” menü yolunu kullanabilirsiniz. Install new software tıkladığınızda karşınıza gelecek pencerede sağ tarafta bulunan “Add…” butonuna tıkladığınızda “Add Repository” penceresi açılır. Burada “Name” alanına herhangi bir şey yazabilirsiniz ben “Android” yazıyorum. “Location” alanına ise “https://dl-ssl.google.com/android/eclipse/” yazın. Ardından “OK” butonuna tıkladığınızda ADT araçları listelenecektir. Buradan kurmak istediğniz araçları seçip (ya da hepsini seçmek için Developer Tools’un yanındaki kutucuğu da işaretleyebilirsiniz) “Next” butonuna tıklarsanız kurulum başlayacaktır.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir