Gömülü Linux
  • Giriş
  • Linux Çekirdeği
    • Gömülü Sistemlerdeki Kullanımı
    • Geliştirme Süreci ve Versiyonlar
    • Kod Sözdizim Rehberi
    • Konfigürasyon Süreci ve Kbuild Sistemi
    • Derleme ve Çapraz Derleme
    • Initramfs İmajının Eklenmesi
    • U-boot İmajı Haline Getirilmesi
  • Gömülü Sistemlerde Boot Yükleyiciler
    • U-boot
    • RedBoot
    • ARM Mimarisinde Açılış Süreci
  • Linux Açılış Süreci
    • Kernel Açılış Süreci
    • Kullanıcı Kipine Geçiş - Init Süreci
  • Kök Dosya Sistemi Oluşturma
  • Initramfs İle Erken Kullanıcı Kipi
  • Devtmpfs Dosya Sistemi
  • NfsRoot Çalışma Yöntemi
  • Çapraz Derleme ve Gerekli Ekipmanlar
  • NOR, NAND, eMMC ve Flash Tabanlı Depolama
  • Memory Technology Device - MTD Katmanı
  • Unsorted Block Images - UBI Katmanı
  • Gömülü Sistemlerde Kullanılan Dosya Sistemleri
    • JFFS2 Dosya Sistemi
    • YAFFS2 Dosya Sistemi
    • UBIFS Dosya Sistemi
    • Cramfs Dosya Sistemi
    • Squashfs Dosya Sistemi
    • Minix Dosya Sistemi
    • FAT Dosya Sistemi
    • Ext2,3,4 Dosya Sistemi
  • Watchdog Kullanımı
  • CPU Frequency Scaling
  • Buildroot
  • Android Platformu
    • Geliştirme Ortamının Hazırlanması
    • İnşa Süreci
  • Sistem Çağrıları
  • I2C Protokolü
    • I2C Protokolünün Tanıtılması
    • Linux Altında I2C İşlemleri
    • Board Seçimi ve İlk İşlemler
    • Sıcaklık Sensörünün Seçilmesi
    • Sıcaklık Değerinin Yazılımsal Olarak Elde Edilmesi
  • Strace Kullanımı
  • GNU Build Sistemi Araçları
    • Make
    • Autoconf, Automake
  • Orange Pi Zero
    • Orange Pi Zero Teknik Özellikleri
    • Gerekli Araçların Elde Edilmesi
    • U-boot Derleme Süreci
    • Kernel Derleme Süreci
    • Wifi Desteği - Problemli Senaryo Örneği
    • Dosya Sisteminin Hazırlanması
    • SD Kartın Hazırlanması
    • Cihazın Açılması
  • Raspberry Pi
    • Raspberry Pi 2 Teknik Özellikleri
    • Açılış Süreci
    • Gerekli Araçların Elde Edilmesi
    • Kernel Derleme Süreci
    • U-boot Derleme Süreci
    • Dosya Sisteminin Hazırlanması
    • Cihazın Açılması
    • NFS Root Çalışma
    • Sistem Konfigürasyonu
    • Raspberry Pi 3
  • Board Spesifik Kılavuzlar
    • Hawkboard
    • Olimex A20
    • TI DM6446 EVM
    • BeagleBoard
    • BeagleBoneBlack
    • Savage Board
  • EKLER
    • Seri Konsol Kullanımı
    • TFTP Sunucu Kurulumu
    • NFS Sunucu Kurulumu
    • TI işlemcilerinde DSP kullanımı
      • C6Run
      • DSP Testi
    • Ubuntu Sanal Makine Performansı
Powered by GitBook
On this page

Was this helpful?

  1. Raspberry Pi

Açılış Süreci

PreviousRaspberry Pi 2 Teknik ÖzellikleriNextGerekli Araçların Elde Edilmesi

Last updated 5 years ago

Was this helpful?

Raspberry Pi için ARM işlemci ana işlemci olarak değil daha çok bir yardımcı işlemci (coprocessor) olarak tasarlanmıştır. Ana işlemci ise VideoCore grafik işlemcisidir. Bu sebeple cihazın açılış süreci gömülü cihazların genel olarak izlediği yoldan bir miktar ayrışmaktadır.

Tipik bir ARM işlemcili cihaz (kitabımızda incelediğimiz diğer örnek cihazlar dahil olmak üzere) açılış sürecinde genel olarak aşağıdaki adımları izlemektedir:

  • Cihaza enerji verildikten sonra ARM işlemci çalışır.

  • ARM işlemci, ilk olarak, bünyesindeki ROM bellekteki ilk önyükleyici (ROM bootloader) çalıştırır.

  • ROM bootloader kendinden sonraki işletim sistemini yüklemekten sorumlu önyükleyiciyi yükler.

  • İşletim sistemi belleğe yüklenir ve ARM işlemci tarafından çalıştırır.

Cihaza enerji verilmesinden işletim sisteminin yüklenmesine kadar geçen tüm aşamalarda ARM işlemcinin rol aldığını görmekteyiz. Raspberry Pi için ise açılış süreci temel olarak aşağıdaki gibidir.

  • Cihaza enerji verildiğinde ARM işlemci reset modundadır, yani aktif olarak çalışmamaktadır.

  • ROM bellekteki ilk önyükleyici (first-stage bootloader, ROM bootloader) VideoCore GPU içindeki küçük bir RISC (Reduced Instruction Set Computer) işlemci tarafından çalıştırılır.

  • İlk önyükleyici tarafından SD karttaki FAT32 boot bölümü mount edilir ve ikinci önyükleyici (second-stage bootloader) bootcode.bin, GPU içindeki L2 cache'e çekilerek, çalıştırılır. Bu aşamada ARM işlemci hala reset durumundadır.

  • İkinci önyükleyici tarafından aslında GPU firmware'i olan son önyükleyici (third-stage bootloader) start.elf yüklenir ve çalıştırılır. Bu aşamada ekrana gökkuşağı logosu bastırılmaktadır.

  • start.elf tarafından SD kart boot bölümündeki config.txt dosyası okunur. Bu ayar dosyası ile bazı sistem ayarları değiştirilebilmekte (ARM ve GPU frekansları, RAM paylaşımları) ayrıca önyükleyiciye müdahale edilebilmektedir.

  • SD kart boot bölümünde dtb (bcm2709-rpi-2-b.dtb) ve kernel (kernel.img) dosyalarının bulunması durumunda start.elf tarafından sırasıyla 0×100 ve 0×8000 adreslerine yüklenmektedir. Ayrıca cmdline.txt dosyasının bulunması halinde dosya içeriğindeki komut satırı argümanları çekirdeğe geçirilmektedir.

  • Son olarak ARM işlemci reset durumundan çıkarılır ve işletim sistemini çalıştırması sağlanır.

Cihaza enerji verilmesinden, işletim sisteminin çalıştırılmasına kadar geçen süreç aşağıdaki diagramda özetlenmiştir.

Bu sürece diğer cihazların açılış sürecinden aşina olduğumuz u-boot önyükleyicisinin karışmadığını görmekteyiz, kernel GPU firmware'i start.elf tarafından yüklenmekte ve ardında ARM işlemci reset durumundan çıkarılmaktadır. config.txt dosyasına müdahale ederek start.elf tarafından işletim sistemi çekirdeğinin değil u-boot önyükleyicisinin yüklenmesini sağlayabilir, bu sayede sistemimizi u-boot üzerinden açabiliriz. Bu işlemin nasıl yapıldığına daha sonra değineceğiz.