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

 

Mar 09

C dili ile Gömülü Sistem Programlama Eğitimi Hakkında

Toplamda 4 gün sürecek olan “C Dili ile gömülü sistem programlama” eğitimimiz için kayıtlar başladı. Bu eğitimde C dilinin gömülü yazılım geliştirmede kullanımını, mikrodenetleyici programlamayı, gömülü yazılım geliştirmedeki önemli noktaları göreceğiz. Eğitim uygulamalı olacak. Eğitimde ST firmasının STM32F0 serisinden STM32F070 mikrodenetleyicisi içeren Nucleo kartını kullanacağız. Geliştirme ortamı olarak C dili örnekleri için Microsoft Visual Studio Community Edition (ücretsiz), mikrodenetleyici uygulamaları için de ARM Keil Microvision IDE (STM32F0 serisi için ücretsiz) kullanacağız. Bu eğitimle gömülü sistemler alanında çalışan veya çalışmayı düşünenler için önemli bir ihtiyacı gidereceğimizi düşünüyorum. Eğitime katılacakların temel seviyede elektronik, C veya başka bir programlama dilinde temel bilgilere sahip olmaları ve en az bir mikrodenetleyici ile çalışmış olmaları gerekiyor. Eğitime kayıt olmak için aşağıdaki linklere tıklayabilirsiniz. Eğitim için hem haftasonu grubu hem de hafta içi grubu bulunuyor. Sorularınızı iletişim formundan bana iletebilirsiniz.

 

Eğitim Satın alma linki: http://market.makerhane.com/c-ile-gomulu-sistem-programlama

Eğitim hakkında bilgiler paylaştığım videoyu da izleyebilirsiniz. Youtube kanalıma da abone olmayı unutmayın!

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/

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