Yazıyı okuyana öncelikle merhaba. Madem buradasın bende kendimden biraz bahsedeyim. Doğma büyüme İzmir'liyim. Karadeniz Teknik Üniversitesinden mezun olduktan sonra istediğim alan olan gömülü yazılım alanında çalışmaya başladım. İlk iş deneyimimde embedded linux bord üzerinde çalışma fırsatı bulunca güzel linux ve kara yüzlü terminal ile tanışmış oldum. İşte bu başlangıçla embedded linux ve embedded software benim için yeni derin bir hayat oldu.
Hiç 8 bit işlemciler ile uğraşmadın mı, direk mi embedded linux bordlar üzerinde kocaman kocaman projelerde çalıştın dersen tabi ki uğraştım derim. Madem merak ettin bende anlatayım. Hikaye şöyle başladı, üniversite ikinci sınıfta C Programla dili ile tanıştıktan sonra bu dile resmen aşık oldum. Diğer derslerden fırsat buldukça C Programlama ile uğraştım. Üniversitede ödev ya da diğer zorunluluklar olmadan uğraştığım tek konuydu. Bilgim, artık dersi geçmemden fazlasını içeriyordu. Durum böyle olunca sınıfta da millete bu dersi az anlatmadım.
Gömülü yazılım konusu da bu şekilde yavaş yavaş kendini göstermeye başladı. İkinci sınıf bittikten sonra o yaz İzmir-Çankaya'da bulunan Emre Elektronik dükkanından temel elekronik tasarım ve labaratuvar kitablarını almıştım. Derste gördüklerimiz hep somut kalmıştı benim için, birşeylerin çalışmasını, gerçekten nasıl olduğunu merak ediyordum. Bu kitaplar sayesinde analog elektronik bilgim gelişti. Herşeyden önce elektronik malzemeler ile içli dışlı olmaya başladığım için elektroniği tam manasıyla kavramaya başladım. Kondansatörler, diyotlar, transistörler benim için artık tanımlı, manalı olmaya başladı. Dedim ya derste benim için bu kavramlar hep somut kaldı. Transistör deyince koca sınıfın aklına GATE-DRAIN-SOURCE gelirdi. Ama benim aklıma artık anahtarlama devreleri, röle sürme, tetik elemanı olarak kullanma, led devreleri tasarlamak gibi konular oluşmaya başlamıştı. İşte o yaz mesleğin "Gömülü" kısmına girmiştik ama içinde hala yazılım yoktu.
Böylece C Programlama ve devre tasarlamayı kendi çabalarımla öğrenmiştim. Üçüncü sınıfın başlarında Serdar Çiçek-CCS C ile PIC Programlama kitabını aldım. İşte o gün tam istediğim konuyla tanış oldum. Kitabı o kadar çok sevdim ki kitap kullanılmaktan parçalandı. Sonra aynı kitabın yenisini aldım. İnanırmsın o iki kitap hala duruyor ve bazen açıp bakarım ve öğrenci iken gecenin ikisinde o uygulamaları yapmaya çalıştığım zamanlar gelir. Kitap bittikten sonra artık kendi hayal dünyamı kullanarak kendime hedef konular belirleyip o konuları gerçekleştirmeye çalışıyordum. Proteus devre tasarım programı benim için o zamanlar muhteşem bir nimetti. Devre tasarımının yanında yazdığınız kodu tasarlanan devreye yükleyip çalıştırıyordunuz. Simülasyonun en üst noktasıydı. İşte 8 bit işlemciler ile tanışmam bu şekilde başlamış oldu. Bu kitap sayesinde bir çok entegre tanıyarak dijital devre tasarımı yapmayı da öğrendim.
Doğal olarak o zamanlar en popiler olan işlemci Microchip firmasının PIC sersisiydi. PIC16F628, PIC16F877 bu işlemcilerin özelliklerini hatta her bir pininin(bacakları) özelliklerini ezberlemiştim. PIC serisi ve CCSC ile o zamanlar çok haşir neşir oldum. Çok şeyler öğrendim. Kesme nedir, timer nedir, kod yüklemek, reset atmak nedir hep bunları bu kaynaklar sayesinde öğrendim. Hemde kodu bizzat işlemcinin üzerinde koşarak gördüm. Breadboard üzerinde az devre toplamadım :). Hatta PCB çizip, ütü ile az baskı devre de yapmadım. Yazın her hafta Çankaya'daki elektronikçilere uğrar baskı devre için yedek olsun diye fazla fazla bakır levha ve asit alırdım. (tabi o zamanlar dolar düşüktü, malzemeler uygundu :) )
Zaman böyle geçerken hem Proteus'un hem de CCSC ve PIC in bu dünyada tek olmadığını öğrendim. Meğersem bu işteki abiler daha ilerdeymiş. Devre tasarım konusunda EAGLE kullanmaya başladım. PIC dışında MSP430 ve STM işlemdileriyle tanıştım. Tesas firması 5 dolara MSP430 geliştirme seti satıyordu. Ne olur olmaz dedim 3 tane birden almıştım.(dolar kurunu o zamanlar kim takıyordu ki :) ) Böylece MSP430 ve IAR programı ile tanışmış oldum. Aynı şekilde STM firmasının 8 bitlik işlemcilerini kullanmaya başladım. EE bu durumda KEIL programını da kendisini göstermiş oldu. Gel zaman git zaman derken vakit böyle geçti ve aklımda yazılım, işlemci ve gömülü sistem bilgileri ile mezun oldum. O zamanlar yaptığım çalışmaları merak ediyorsan bu linke tıklayarak bazılarını görebilirsin. 4 pinle devre kontrolur favorimdi. Basit ama sevimli uygulamarl :) Zaman içinde çoğu kayboldu.
Mezun olduktan sonra ARM işlemcilere bakayım dedim. Ama o sırada da iş arayışı başlamıştı. Üniversitede yaptığım devere tasarımlarına ve yazdığım kodlara güvenerek iş aramaya başladım. Bir yandan da iş görüşmelerinde faydalı olur diye yaptığım çalışmaların belgesini hazırlayıp CV me ekliyordum. Kendimce o kadar işlemci türü ile uğraştım ve bunlar üzerinde kod yazdım diyerek direk gömülü yazılım mühendisliği iş ilanlarına abandım. Baktım İzmir' de bana göre iş yok ver elini İstanbul dedim ve İstanbul ilanlarına da abandım. Kendimi gerçekten geliştirmek istiyordum. Niketim de öyle oldu. İstanbulda bir beyaz eşya firmasına teknik mülakat sınavını geçerek kabul edildim. İstanbula yerleşme, ev tutma derken birden İstanbul'lu oldum.
İlk işimde beklediğimin ötesinde bir durumla karşılaştım. O zamana kadar öğrendiğim PIC olsun, MSP430 olsun hiç birini kullanmayacağımı gördüm. Direk Embedded Linux Board ile karşılaştım. Hemde TV projesinde. TV projesindeki kod büyüklüğüne mi şaşayım yoksa embedded linux ile tanışmamamı şaşayım. Ama arge müdürümüz beni işe alırken beni bu kavramları öğrenebileceğim düşünerek işe almıştı ve bende var gücümle çalışmaya başladım. C ve Sistem Programcıları Derneği'nde C Programlama ve C++ Programlama kurslarını tamamladım. Tabi tüm zaman böyle toz pembe geçmedi. Yeni şeyler öğrenmenin güzelliği yanında bolca zorluğu ve acısı da vardır. Yeri gelir sıkılır yorulursun. Ama bir şekilde problemler çözüme ularşır. Yeterki amaç başarmak olsun.
İşte o gün bugündür gömülü sistemler üzerinde çalışmaya devam ediyorum. Gömülü sistemler konusunda bir çok konu vardır. Ama benim için C dili tamamen özeldir. Ben bu dil ile taşınabilir kodun ne demek olduğunu, makineye yakın bir dilin ne demek olduğu öğrendim. Bence C dili sadece bir programlama dili değil, elektroniğin ana dilidir. Çünkü 8bit den 32bit işemcilere, Linux uygulamalarından tutun, Uboot koduna kadar o var.
Benim hakkımdakiler kısaca böyle. Daha öncesinden bu sitede blog tutuyordum ama google sites daha bir esnek ve kolay. Artık buradan devam edeceğim. Tüm bilgilerimi hatta bilmediklerimi de öğrenip burada paylaşacağım.
Bir gömülü sistem öğreniminin kronolojisi aşağıdaki iki sözdür:
1. Burroghs : Yeni bir şeyler öğrenmek istiyorsanız, dün gittiğiniz yollardan gitmeyin.
2. Victor Hugo : Öğrendikten, sevdikten sonra daha çok acı çekeceksiniz.
Hatasız kodlar, sorunsuz çalışan sistemler dileğiyle...
Teşekkürler.
Zafer Satılmış 02.04.2019-Salı
mail1.zafer@gmail.com