270 likes | 744 Views
ARM Tabanlı Mikrodenetleyici Temelleri ve Programlama. TUNA AYAN www.tuna-ayan.com tunayan@gmail.com. BAŞLAMADAN ÖNCE. İşlemci Nedir? İşlemci Nasıl Çalışır? Mikrodenetleyici Nedir? ARM Mimarisi Stellaris LM3S811 Stellaris LM3S811 Evaluation Kit StellarisWare (API) Keil (IDE)
E N D
ARM Tabanlı Mikrodenetleyici Temelleri ve Programlama TUNA AYAN www.tuna-ayan.com tunayan@gmail.com
BAŞLAMADAN ÖNCE İşlemci Nedir? İşlemci Nasıl Çalışır? Mikrodenetleyici Nedir? ARM Mimarisi StellarisLM3S811 Stellaris LM3S811 Evaluation Kit StellarisWare(API) Keil (IDE) Programcı Modeli Demo Uygulama
İŞLEMCİ NEDİR? İşlemci: Çevresel birimlerin çalışmasını sağlayan, Bu birimler arasındaki veri (data) akışını kontrol eden, Veri işleme görevlerini yerine getiren, Milyonlarca transistörden(IC) oluşan bir yapıdır.
İŞLEMCİ NEDİR? Temel Kavramlar: Register(Kaydedici) Instruction(Komut) Decoder(Çözücü) 10000100 => 1 000 0100 Accumulator(Toplayıcı) Memory(Hafıza) İşlemciye Ait Birimler: Komut Kaydedici(InstructionRegister) Komut Çözücü (InstructionDecoder) ALU(ArithmeticLogicUnit)
İŞLEMCİ NASIL ÇALIŞIR? Program Counter • Program Counter(Program Sayıcı): • Hafıza üzerinde hangi satırdan okuma yapacağımızı belirleyen kısımdır. Memory(Hafıza): Kodumuzun okunacağı hafıza alanıdır.
İŞLEMCİ NASIL ÇALIŞIR? Program Counter InstructionRegister ALU • ALU: • İşlemcininmatematikselvemantıksalişlemleriyapanbirimineALU denir. InstructionRegister(Komut Kaydedici): Memory üzerinden okunan makine kodunu yorumlar. Makine kodunu ayrıştırır. Kontrol sinyallerini ayarlar ve işlemi başlatır.
İŞLEMCİ NASIL ÇALIŞIR? Program Counter InstructionRegister ALU • Write Back(Geri Yazma): • Bazı işlemlerde geri yazma operasyonu da kullanılır. Accumulator Accumulator(Toplayıcı): ALU sonuçları accumulator e kaydedilir. Accumulator genel amaçlı kaydediciler sınıfına girmektedir.
İŞLEMCİ NASIL ÇALIŞIR? Program Counter InstructionRegister ALU Accumulator BUS: İşlemcinin, kendi içinde ve çevresindeki donanımlarla arasındaki bağlantıyı sağlayan iletken yollardır. Data Bus AddressBus Control Bus
İŞLEMCİ NASIL ÇALIŞIR? Örnek Uygulama: Kullanılan Elemanlar: PC: Program Counter (Program sayıcı) IR: InstructionRegister (Komut kaydedici) ACC: Accumulator (Toplayıcı) MAR: Memory AddressRegister(Adres kaydedici hafıza) MBR: Memory BufferRegister (Buffer kaydedici hafıza) A,B : Register (Özel kaydedicilerimiz) • Kullanılan Komutlar: • MOVE: Taşı komutudur. • ADD : Ekleme komutudur • STO : Yazma komutudur. Uygulama Linki
İŞLEMCİ NASIL ÇALIŞIR? Pipeline: Birden fazla komutun aynı anda işlenmesi olayına pipeline denir ARM tabanlı sistemlerde 3 aşamalı(fetch,decode,execute) pipeline kullanılır. Örnek Uygulama
İŞLEMCİ NASIL ÇALIŞIR? CISC(ComplexInstruction Set Computer): İşlemci kendi üzerinde bulunan minyatür bir yazılımı kullanarak komut setlerini çalıştırır. Bu sayede komut setleri değişik uzunluklarda olabilir ve bütün adresleme modellerini kullanabilirler. Bunun dezavantajı çalışmak için daha karmaşık bir devre tasarımına ihtiyaç duyulmasıdır RISC(ReducedInstruction Set Computer): Daha az komutla çalışan, tek bir saat döngüsünde çalışacak çok hızlı komutları işleyebilecek, basit bir devre tasarımıyla gelmiştir. ARM tabanlı sistemlerde RISC kullanılır.
İŞLEMCİ NASIL ÇALIŞIR? CISC vs RISC: Hafıza üzerinde (1,1) ve (1,2) koordinatlarında bulunan 2 sayıyı çarpalım ve sonucu (1,1) adresine yazalım. CISC: MULT (1,1), (1,2) RISC: LOAD A, (1,1) LOAD B, (1,2) PROD A, B STORE (1,1), A Hangisi daha iyi ?? Referans
MİKRODENETLEYİCİ NEDİR? Mikrodenetleyici, özel amaçlı mikroişlemcidir. Üzerinde işlemci dışında RAM,ADC,I/O vs. entegre edilmiş olarak bulunabilir. Maliyeti ucuz olması ve tek bir entegrede (IC) çevresel aygıt modüllerinin bulunması mikrodenetleyicileri cazip kılmıştır. Mikrodenetleyici = Microcomputer = MCU = uC
ARM MİMARİSİ Hakkında: ARM (AcornRisc Machine) mimarisi 32-bit RISC işlemci mimarisine sahiptir. Düşük güç tüketimi sağlar. Sadeleştirilmiş komut setine sahiptir. Yüksek performans sağlar.
ARM MİMARİSİ ARMv7 Çeşitleri: M Serisi: Cortex-M0, Cortex-M3, Cortex-M4 A Serisi: Cortex-A8, Cortex-A9 R Serisi: Cortex-R4, Cortex-R5, Cortex-R7
ARM MİMARİSİ ARM Teknolojisi: Thumb Thumb2 TrustZone Jazelle SIMD DSP Komutları CMSIS NVIC
ARM MİMARİSİ Cortex-M3Teknolojisi: Thumb: Thumb komut seti ARM komut setinden farklı olarak 16 bit ile çalışır. Hafızada daha az yer kaplaması ve perfomans artışı sağladığı için tercih edilir. Thumb2: Komut çeşitliği, performans ve ARM komut setiyle aynı anda kullanılabilirliği açısından thumb komut setinin geliştirilmesiyle oluşmuş bir sistemdir.
ARM MİMARİSİ Cortex-M3Teknolojisi: CMSIS: Türkçesi Cortexmikrodenetleyici yazılım ara yüzü standardıdır. Cortexçekirdeğine sahip işlemciler üzerinde, üreticiden ve çipten bağımsız olarak basit bir şekilde gerçek zamanlı işletim sistemi kullanabilmeye olanak sağlar NVIC: Kesme(interrupt) modülüdür. İşlemci üzerindeki bütün portlara harici kesme verebilme olanağı sağlamaktadır.
STELLARIS LM3S811 Hakkında: ARM Cortex M3 mimarisine sahip olan stellaris serisi MCU’lar düşük fiyat ve yüksek performans sağlamalarından dolayı tercih edilmektedirler. Kolay programlanabilme özelliği (stellarisware) ile programcıya rahatça 32bit işlemci programlayabilme avantajı sağlamaktadır. Düşük güç tüketimi sayesinde mobil uygulamalarda tercih edilir. Ortalama fiyatı : $2.75
STELLARIS LM3S811 Özellikleri: 50MHz işlemci 64kB flash ve 8 kB SRAM Genel amaçlı Timer(sayıcı) WatchdogTimer(sayıcı) I2C UART 10-bit ADC PWM SPI RTC LDO
STELLARIS LM3S811 EVALUATION KIT Özellikleri: Stellaris LM3S811 işlemci 96x16 OLED display Programlanabilir kullanıcı butonu Reset buton Potansiyometre 20-pin JTAG debugkonnektörü (ICDI) UART0 üzerinden sanal USB haberleşme portu USB üzerinden güç seçeneği
STELLARISWARE Hakkında: Ücretsiz lisanslı StellarisMCU’larda kullanılmak üzere geliştirilmiş açık kaynaklı kütüphaneler topluluğudur. StellarisMCU’ları kolayca programlamamızı sağlar C tabanlı yazılsa da arka planda Thumb-2 komut setini kullandığı için performans konusunda oldukça iddialıdır. uKeil, CCS, IAR, CodeRedgivi derleyicilerle derlenebilmektedir.
KEIL Hakkında: Cortex-M, Cortex-R4, ARM7 ve ARM9 cihazlarının tamamını destekliyor Üzerinde IDE, debugger ve simülasyon desteği vardır CMSIS özelliğini destekliyor TCP/IP ve UDP protokollerini destekliyor. 32 KB ücretsiz kullanım özelliği vardır.
PROGRAMCI MODELİ Kodumuz derlenir ve hafızaya gönderilir İşlemci daha sonra kodumuzu çalıştırır