Yazılarımız

Tesla Akademi

GÖMÜLÜ SİSTEMLER EĞİTİMİ

Gömülü sistem kartını simgeleyen işlemci ve devre bağlantıları sembolü

Bir çamaşır makinesinin, bir POS cihazının ya da bir ağ yönlendiricisinin içinde masaüstü bilgisayar yoktur — ama hepsinin içinde işlemcisi, belleği ve işletim sistemi olan bir gömülü sistem vardır. Gömülü geliştirme, "kod yazmayı bilmek" ile "donanımı yönetmek" arasındaki köprüdür ve kendine özgü bir çalışma disiplini ister: kodu bir makinede yazıp derlersiniz, başka bir makinede — kartın kendisinde — çalıştırırsınız. Bu içerik, Linux tabanlı bir gömülü kartla çalışmanın bütün akışını beş adımda ele alır.

1. Gömülü Sistem ve Linux

Gömülü sistem, tek bir görevi güvenilir biçimde yapmak için donanım ve yazılımın birlikte tasarlandığı özel amaçlı bilgisayardır. Bu dünyada Linux'un baskın olmasının nedenleri somuttur: çekirdeği ihtiyaca göre küçültülebilir, kaynak kodu açıktır, lisans maliyeti yoktur ve ağ desteği yerleşiktir — modem, akıllı TV ve endüstriyel kontrolörlerin büyük bölümü bu yüzden Linux çalıştırır. Geliştirici tarafında temel araç seti de bellidir: bir terminal, bir metin editörü ve karta dosya aktarımı için FTP/SSH bağlantısı. Windows kullanan geliştirici bile bu araçlara bir Linux ortamı (sanal makine ya da uyumluluk katmanı) üzerinden ulaşır.

2. Çapraz Derleme: Kodun Yazıldığı Yer ile Çalıştığı Yer Farklıdır

Gömülü geliştirmenin ilk kavramsal eşiği budur. Masaüstündeki gcc, programı kendi işlemcisi için derler (içsel derleme); oysa gömülü kartın işlemcisi çoğu zaman farklı bir mimaridir — ARM ya da MIPS. Çözüm, çapraz derleyicidir: güçlü bilgisayarda çalışır ama hedef kartın mimarisine uygun makine kodu üretir. Kart üzerinde derleme yapmak teknik olarak mümkün olsa da sınırlı bellek ve işlemci gücü nedeniyle pratik değildir; endüstride akış hep aynıdır — PC'de yaz, çapraz derle, karta gönder, kartta çalıştır.

Bilgisayardan gömülü karta çapraz derleme ve program aktarım akış şeması

3. Kartla Tanışma: Bağlantı, Giriş ve Program Gönderimi

Kredi kartı boyutundaki bir gömülü Linux kartıyla çalışmak üç bağlantı üzerinden yürür: seri port (konsol erişimi — kartın "açılış ekranı" burada akar), Ethernet (ağ üzerinden erişim ve dosya aktarımı) ve güç girişi. Karta terminalden giriş yapılır, dizin yapısı gezilir, ağ ayarları (IP adresi, alt ağ) yapılandırılır. Derlenen program FTP ile karta aktarılır, çalıştırma izni verilir ve komut satırından başlatılır. Bu döngü — derle, aktar, çalıştır, gözle — gömülü geliştiricinin günlük ritmidir.

4. Kernel Mod, Aygıt Sürücüleri ve GPIO

Linux'ta donanıma dokunmanın kuralları vardır. Uygulamalar user modda çalışır ve donanıma doğrudan erişemez; donanımı yöneten kod kernel modda koşan aygıt sürücüsüdür. Sürücü, kullanıcıya bir aygıt dosyası (örneğin /dev altında) sunar; majör ve minör numaralar hangi sürücünün hangi aygıtı temsil ettiğini belirler. Sürücüler çekirdeğe gömülü olabilir ya da yüklenebilir modül olarak çalışma anında eklenir.

Bu mimarinin en öğretici uygulaması GPIO — genel amaçlı giriş/çıkış pinleridir. GPIO sürücüsü yüklendiğinde, C programı bir pini çıkış yapıp lojik 1 yazarak led yakabilir, giriş yapıp okuyarak butonun basılıp basılmadığını görebilir. "Merhaba dünya"nın gömülü karşılığı olan led yakma, aslında kernel-user ayrımını, aygıt dosyasını ve sürücü kavramını tek uygulamada öğretir.

5. Web Üzerinden Donanım Kontrolü

Kartın ağ bağlantısı olduğuna göre, donanımı uzaktan yönetmek için ek donanım gerekmez — küçük bir web sunucusu yeter. Kart üzerinde çalışan sunucu, tarayıcıdan gelen form isteğini bir CGI programına iletir; CGI programı isteği okuyup GPIO üzerinden donanıma uygular. Sonuç: telefonun tarayıcısındaki bir düğmeyle kartın üzerindeki röleyi çektirmek. Bu basit zincir — HTML form → web sunucu → CGI → GPIO — bugün "akıllı ev" ve IoT ürünlerinde çok daha gelişmiş katmanlarla karşımıza çıkan mimarinin çekirdeğidir.

Bu akışı uygulamalı yaşamak isteyenler için doğal başlangıç, Linux çalıştıran popüler kartlarla kurulan Raspberry Pi eğitimidir; konuyu ağ bağlantılı ürün geliştirmeye taşımak isteyenler için IoT eğitimi devam noktasıdır.

Sıkça Sorulan Sorular

Gömülü sistem nedir?

Gömülü sistem, belirli bir görevi yerine getirmek için tasarlanmış, donanım ve yazılımı birlikte barındıran özel amaçlı bilgisayar sistemidir. Bir mikrodenetleyici ya da işlemci etrafında kurulur. Genel amaçlı bilgisayardan farkı, tek bir işi güvenilir ve kesintisiz yapacak şekilde optimize edilmiş olmasıdır.

Çapraz derleme (cross compile) nedir ve neden gerekir?

Çapraz derleme, bir platformda yazılan kodu farklı bir işlemci mimarisi için derlemektir. Gömülü kartlar sınırlı belleğe sahip olduğundan kod genellikle güçlü bir bilgisayarda derlenip karta aktarılır. Örneğin masaüstünde MIPS tabanlı bir kart için derleyici kullanılarak çalıştırılabilir dosya üretilir.

İçsel derleyici ile çapraz derleyici arasındaki fark nedir?

İçsel derleyici, kodu çalıştığı sistemin kendi mimarisi için derler; örneğin gcc bir PC üzerinde PC için üretir. Çapraz derleyici ise başka bir mimari hedefler. Gömülü geliştirmede kart üzerinde derlemek yavaş ve kaynak yetersiz olduğundan çapraz derleyici tercih edilir.

GPIO aygıt sürücüsü ne işe yarar?

GPIO, genel amaçlı giriş çıkış pinlerini ifade eder. Aygıt sürücüsü, bu pinleri yazılımdan kontrol edilebilir hale getirir; pini giriş ya da çıkış yapma, lojik seviye okuma veya yazma işlemlerini soyutlar. Böylece led yakma, buton okuma gibi donanım kontrolleri C kodundan yapılabilir.

Kernel mod ile user mod arasındaki fark nedir?

Kernel mod, işletim sisteminin donanıma doğrudan eriştiği ayrıcalıklı çalışma seviyesidir; aygıt sürücüleri burada çalışır. User mod ise kısıtlı yetkili uygulamaların çalıştığı seviyedir. Donanıma erişmek isteyen kullanıcı programı, sistem çağrılarıyla kernel moddaki sürücüye başvurur.

Web tabanlı donanım kontrolünde CGI ne işe yarar?

CGI, web sunucusunun bir programı çalıştırıp çıktısını tarayıcıya döndürmesini sağlayan arayüzdür. Gömülü kartta CGI programı, web formundan gelen komutu alıp GPIO üzerinden donanıma uygular. Böylece bir tarayıcı sayfasındaki düğmeyle kart üzerindeki led uzaktan kontrol edilebilir.

 TESLA AKADEMİ