ARM Programlama ARM Programlama 2 ARM Programlama ARM konusunda oluşturulan bu e-kitap size ARM Cortex-M4F tabanlı işlemcilerin çalışma yapısı, C programlama ve Assembler konusunda gerçekten hatırı sayılır bir kaynaktır. Eğitimler Texas Instruments firmasının düşük güç tüketimi ile çalışan ve oldukça ucuz olan Stellaris Launchpad kiti kullanılarak anlatılmıştır. Yazılar Dr. Miro Samek'in yayınladığı ve Eren BAŞTÜRK'ün çevirdiği eğitimler temel alınarak yazılmıştır. Bu yazıları hazırlarken desteğini gördüğüm Ahmet Alpat'a ve tüm Çizgi-TAGEM ailesine teşekkürlerimi sunuyorum. Faydalı bir yazı olması dileği ile, iyi çalışmalar. Arif Ahmet Balık Yazar Hakkında ARİF Ahmet BALIK Bir teknik lisede web programcılığı dalında okuyor. Gömülü sistemler ve FPGA meraklısı. birkodyaz.blogspot.com.tr adlı bloğun kurucusu ve yazarı. Şuan YTÜ Teknoparkta bir ARGE şirketi olan KATIHAL Elektronik Yazılım ARGE AŞ'de part-time olarak çalışıyor. İstanbul HackerSpace üyesi. İletişim [email protected] Eren BAŞTÜRK 1990 Kayseri doğumlu. 2005 yılında ilkokul eğitimini tamamlayıp Antalya Adem Tolunay Anadolu Lisesinde eğitimine devam etti. 2009 yılında Süleyman Demirel Üniversitesi Elektronik ve Haberleşme Mühendisliği bölümünü kazandı. Halen aynı üniversitede 3.sınıf öğrencisi olarak eğitimine devam etmektedir. Gömülü Sistemler , Linux İşletim Sistemleri , Fpga , Yazılım Geliştirme ve Sayısal Elektronik üzerine çalışmalarını sürdürmektedir. İletişim [email protected] ARM Programlama 3 ARM Programlama İÇİNDEKİLER 1. Başlangıç .........................................................................................................................4 2. Sayım ..............................................................................................................................10 3. Kontrol Akışı ..................................................................................................................42 4. Değişkenler ve İşaretçiler ..............................................................................................56 5. Led Yakıp Söndürme.......................................................................................................75 6. Önişlemci ve Volatile.....................................................................................................101 7. C'de Bitsel Opreratörler ...............................................................................................114 8. Diziler ve İşaretçi Aritmetiği.........................................................................................135 9. Fonksiyonlar ve Stack...................................................................................................155 10. Modüller, Özyineleme ve AAPCS………………………………………………………………………………169 ARM Programlama 4 ARM Programlama ARM Programlama 5 ARM Programlama Herkese Merhabalar, İlk derste ücretsiz gömülü geliştirme araç setini (IAR Embedded Workbench) yükleyeceğiz ve pahalı olmayan bir geliştirme kartı olan Stellaris Launchpad'i nereden sipariş edeceğimizi göstereceğim. Bu kart sayesinde kodlarınızı fiilen gerçek bir mikrodenetleyici üzerinde çalıştırabilirisiniz. Ancak geliştirme kartı olmadan da bu eğitim serisini takip edebilirsiniz çünkü komut seti simülatörünün nasıl kullanılacağını öğreneceğiz. C Programlama Dili Öğreneceğimiz yüksek seviyeli olarak adlandırılan programlama dili C'dir. Fakat sıklıkla düşük seviyeli makine koduna ineceğiz ve size gömülü işlem sürecinde neler olacağını göstereceğim. Siz'de işlemcinizin kodunuzu nasıl çalıştırdığını verileri nasıl işlediğini ve bir bilgisayarın gerçek dünyada yapabildiği şeyleri göreceksiniz. Bir ledi yakıp söndürmek gibi. Bu kavrama gücü sizin C dilini daha etkin şekilde ve daha fazla güven duygusu ile kullanmanızı sağlayacak. Programlama anlayışını kazanacaksınız. Sadece programınızın yapması gerekenleri değil, bunun yanında bu durumların nasıl makine dolarına nasıl çevrildiğini anlayışını ve işlemcinin kodları ne kadar hızlı çalıştırabildiği anlayışını kazanacaksınız. ARM Cortex-M4F ARM Programlama 6 ARM Programlama Bu Kursta Arm Cortex-M4F adındaki işlemciyi kullanacağız. Ama bu öğrendiklerimizi bütün Cortex-M işlemci ailesine Cortex- M0'dan M0+'a, Cortex-M3 ve M4'e uygulayabileceksiniz. Bu kurs boyunca günümüzde ve uzun yıllar boyunca bulabileceğiniz gömülü mikrodenetleyici işlemci çekirdeklerinden en popüler, en modern ve en fazla enerji tasarruflu işlemci ailesini seçtim. IAR Embedded Workbench Öncellikle bu kurs için ilk ihtiyacımız olan gömülü geliştirme setini "Embedded Workbench for ARM" için desteklenen IAR'dan EWW sistem olarak adlandırılan profesyonel araç setini seçtim. Bu araç setinin ticari versiyonu piyasadaki en pahalı versiyonlardan birisidir ancak IAR size kod limiti olan zaman limiti olmayan bir yazılım geliştirme sürümünü soruyor, şimdi hangi sürüm nasıl indirilecek ve nasıl yüklenecek göstereceğim. IAR EWARM'ın yükleneceği websitesi www.iar.com. Siteye girdikten sonra şekildeki gibi önce SERVICE CENTER sonra Downloads'a tıklayalım. ARM Programlama 7 ARM Programlama Sonra şekildeki gibi ARM için Size-limited licence'n altında bulunan bağlantıya tıklayalım. Karşımıza çıkan sözleşmeyi aşağıya kaydırarak şekildeki gibi indirme bağlantısına tıklayalım. ARM Programlama 8 ARM Programlama Dosya boyutu biraz büyük olduğu için indirme biraz zaman alabilir. Dosya indikten sonra çift tıklayıp açın ve yüklemenin tamamlanmasını bekleyin. ARM Programlama 9 ARM Programlama Yükleme bittikten sonra karşınıza çıkan ekrandan şekildeki gibi "Install IAR Embedded Workbench" üzerine tıklayın. Geriye kalan standart yükleme işlemini gerçekleştirin. Yükleme bittikten sonra karşınıza bir uyarı çıkacaktır bu uyarı size ARM Programlama 10
Description: