1 / 25

ARM Tabanlı Mikrodenetleyici Temelleri ve Programlama

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)

pippa
Download Presentation

ARM Tabanlı Mikrodenetleyici Temelleri ve Programlama

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ARM Tabanlı Mikrodenetleyici Temelleri ve Programlama TUNA AYAN www.tuna-ayan.com tunayan@gmail.com

  2. 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

  3. İŞ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.

  4. İŞ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)

  5. İŞ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.

  6. İŞ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.

  7. İŞ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.

  8. İŞ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

  9. İŞ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

  10. İŞ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

  11. İŞ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.

  12. İŞ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

  13. 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

  14. 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.

  15. 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

  16. ARM MİMARİSİ ARM Teknolojisi: Thumb Thumb2 TrustZone Jazelle SIMD DSP Komutları CMSIS NVIC

  17. 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.

  18. 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.

  19. 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

  20. 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

  21. 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

  22. 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.

  23. 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.

  24. PROGRAMCI MODELİ Kodumuz derlenir ve hafızaya gönderilir İşlemci daha sonra kodumuzu çalıştırır

  25. DİNLEDİĞİNİZ İÇİN TEŞEKKÜRLER

More Related