May 04

ARM Programlama Öğrenmek Zor mu?

 

Tuğla gibi maşallah!

İnternette makaleleri gezinirken şöyle bir yazıya rastladım: (Türkçesi) ARM mimarisinde geliştirme yapmak diğerlerine göre zor mu?* . Ben de sık sık ARM programlama ile ilgili sorular alıyorum. Açıkçası geçmişte 8 bit mikrodenetleyiciler (PIC, AVR vs..) ile çalışmış olanlar veya sıfırdan başlayanlar için ARM mimarisindeki mikrodenetleyicilerle programlama yapmak biraz karışık gelebiliyor. Bunun da çeşitli sebepleri var. Birçok ARM tabanlı mikrodenetleyicinin sadece tek bir kullanım kılavuzu 1000 sayfaları aşabiliyor. Üstelik bu dökümanlar ARM çekirdeği ile ilgili bilgileri içermezken bile. Sadece ARM – Cortex – M3 çekirdeğini anlatan döküman 384 sayfa! Benim de elimde olan Joseph -Yiu’nun yazdığı “Definitive Guide to ARM Cortex – M3 – M4 Processors” kitabı 800 sayfa ve kitapta herhangi bir mikrodenetleyicinin çevrebirimleri anlatılmıyor. Hal böyle olunca ARM tabanlı mikrodenetleyicilere geçenler zorluk yaşayabiliyorlar. Tabi bir de İngilizce problemi varsa zorluk daha da katlanıyor. Dikkat ederseniz yukarıda örneğini verdiğim hiç bir döküman Türkçe değil!

ARM programlamadaki bir diğer zorlukta linkte verdiğim yazıda da anlatıldığı gibi programlama araçlarının çok dağınık olması. ARM programlama için önerilen ve önde gelen geliştirme araçları çoğunlukla ücretli. Ücretsiz olarak Eclipse + GCC derleyicisi + OpenOCD gibi araçlarla çalışmak mümkün olsa da bu araçları çalışır hale getirmek büyük zorluklar içeriyor. Kimi firmalar bu araçları kullanarak ticari ürünler de piyasaya sürebiliyorlar.

Aslında ARM programlama diye özel bir konu yok. Temelde mikrodenetleyici programlama hangi ürünle çalışıyor olursanız olun farketmiyor. Gözlemlediğim kadarıyla mikrodenetleyici programlama (hatta dijital devreler) konusunda temeli olmayanlar bu alanda daha da zorlanıyorlar. Bugün mikroişlemci programlama derslerinin seçmeli olduğu elektronik mühendisliği bölümleri var. Öğrenci arkadaşlar da  biraz zor olduğundan bu dersleri seçmeyebiliyorlar. Açıkçası elektronik alanında çalışmayı düşünen bir mühendislik öğrencisinin mikroişlemci dersi almadan mezun olmasını, araba kullanmayı öğrenmeden ehliyet almaya benzetiyorum. Tabi mikroişlemci derslerinden önce temel elektronik derslerinde de temelin sağlam olması gerekiyor. Elektronik konuları da aynı matematikte olduğu gibi üst üste eklenerek gidiyor. Dolayısıyla alt seviyedeki konulardaki bilgi eksikliği daha üst seviyedeki konuları anlamayı güçleştiriyor.

Gömülü sistemler alanındaki bir diğer olumsuz durum ise içerdiği konular itibariyle ne bilgisayar mühendisliğinin ne de elektronik mühendisliği müfredatlarının bu alanı tam olarak karşılamaması. Önümüzdeki yıllarda “gömülü sistemler mühendisliği” veya farklı adlarda bölümlerin ortaya çıkacağını ve bu bölümlerde yazılım ve elektronik konularının okutulacağını düşünüyorum. Aynen mekatronik mühendisliğinde olduğu gibi…

Kısacası ARM programlamaya gelene kadar temel dijital elektronik, programlama, C dili, az da olsa Assembly dili mikrodenetleyici mimarisi çalışmakta fayda var. Bu bilgilere hakim olunca hangi mimaride çalıştığınızın çok da önemi kalmıyor aslında.

*Bahsettiğim yazı: https://dzone.com/articles/is-developing-for-arm-more-difficult-than-for-othe-1

 

Kas 10

Atollic Truestudio’nun ücretsiz versiyonunda kod sınırı kaldırıldı

Geçtiğimiz aylarda ST ve ARM firmaları arasındaki anlaşma ile STM32F0 ve STM32L0 serileri için Keil Mikrovision geliştirme ortamı ücretsiz hale getirilmişti. Şimdi de yeni bir haber Atollic firmasından geldi. Atollic firması  ARM – Cortex M tabanlı mikrodenetleyiciler ile yazılım geliştirmede kullanılan Truestudio ürününde yeni bir fiyatlandırma politikasına gittiğini açıkladı. 32 KB kod sınırlaması olan Lite versiyonda bu sınırlama kaldırıldı. Pro versiyon ise ayda 59 dolar gibi bir fiyatla sunuluyor. Web sitesinde bu fiyatın 12 aylık peşin ödemede geçerli olduğu yazıyor.

Geliştirme platformları ARM tabanlı mikrodenetleyicilerle çalışırken karşılaşılan en temel zorluklardan birisi. Böylelikle ücretsiz seçeneklere bir tane daha eklenmiş oldu. Uzun zamandır Trustudio ürününü kullanmadım. Yeni versiyonu deneyip sizlerle izlenimlerimi paylaşmaya devam edeceğim.

Atollic Truestudio’yu aşağıdaki linkten indirebilirsiniz.

http://timor.atollic.com/truestudio/

Eki 05

STM32 HAL (donanım soyutlama katmanı) Kütüphaneleri

Geçmişte sadece donanım işinde olan yarı-iletken firmaları bugün aynı zamanda yazılım firmaları haline gelmiş durumda. Sattıkları elektronik komponentleri piyasada tutundurmak ve kullanımını yaygınlaştırmak için tasarımcıların işlerini kolaylaştıracak yazılım ve yazılım bileşenleri de sunuyorlar.

ST firmasının STM32 serisi için yayınladığı HAL kütüphaneleri STM32 serisinin üyeleri ile çalışmamazı kolaylaştırmaya yarıyor (bazen zorlaştırabiliyor da). Bir önceki yazımda donanım soyutlama kavramından bahsetmiştim. Donanım soyutlama katmanları, adı üzerinde, bizi donanımın ayrıntılarından soyutlayarak arayüz fonksiyonlarıyla donanımı kullanabilmemizi sağlıyor. Bunun dışında farklı ürün serileri arasında ortak bir fonksiyon kütüphanesi sağlayarak ürün geçişlerinde yazılımın mümkün olduğunca sabit kalarak , taşıma işleminin sorunsuzca halledilmesine yardımcı olur.
Continue reading

Mar 16

STM32F0 ve STM32L0 serileri için KEIL Artık Ücretsiz


Bu haber çıkalı ne kadar olmuş bilmiyorum ama ben bugün gördüm. ST Microelectronics ve ARM firmaları arasındaki anlaşma ile artık STM32F0 ve STM32L0 serileri için Keil MDK geliştirme ortamı ücretsiz hale geldi. Yani artık bu seriler için Keil geliştirme ortamı ve derleyicisini tam sürüm olarak ücretsiz kullanabileceğiz. ARM tabanlı mikrodenetleyicileri programlamak için en çok kullanılan ve en yaygın geliştirme ortamlarından birisinin Keil MDK olduğunu düşünürsek bu oldukça iyi bir haber. ARM tabanlı mikrodenetleyicilerle ilgili bulunan birçok örnek ilk olarak Keil MDK uyumlu olarak çıkıyor. Başlangıç yapmak için de Cortex- M0 serisi oldukça iyi bir seçim. ST’nin Cortex M0 serisini içeren modelleri arasında da birçok ihtiyacı giderecek seçenekler bulunuyor. Artık fiyatları da neredeyse 8 bit mikrodenetleyicilerin seviyesine inen 32 bit ARM-Cortex – M0 tabanlı mikrodenetleyicilerin daha da yaygınlaşacağını göreceğiz gibi geliyor.

STM32F0 / STML0 serisi için ücretsiz Keil MDK ortamını aşağıdaki linkten indirebilirsiniz:

http://www2.keil.com/stmicroelectronics-stm32/mdk

STM32F0 Serisi: http://www.st.com/web/en/catalog/mmc/FM141/SC1169/SS1574?sc=stm32f0

STM32L0 Serisi: http://www.st.com/web/en/catalog/mmc/FM141/SC1169/SS1817

Eki 26

mbed nedir?

mbedmbed, temel olarak ARM Cortex – M serisi mikrodenetleyiciler üzerinde hızlı protoipleme ve ürün geliştirme amaçlı geliştirilmiş bir platform. Başlangıçta NXP firmasının LPC1768 mikrodenetleyicisini içeren kartlar üzerine çalışacak şekilde ve kapalı kodlu yayınlanmış mbed, bugün birçok farklı mikrodenetleyici modelini destekliyor ve açık kaynaklı bir proje haline gelmiş durumda. ARM firması tarafından desteklenen projede web üzerinden kullanılabilen bir geliştirme ortamı ve derleyici bulunuyor. Ayrıca donanım üzerinde yer alan bir ara yazılım katmanıyla farklı mikrodenetleyicilerin aynı arayüz fonksiyonları ile programlanması sağlanıyor. Continue reading