Bu çalışmada eBox2300’ de çalışacak bütün özelliklere sahip CE Kernel’in detayları ile birlikte adım adım anlatılacaktır. Tüm özellkleri Kernel’ e ekleyeceğimizden kernel büyüklüğü biraz fazla olacaktır. Ama sizler ihtiyaç duymadığınız servis ve sürücüleri eklemediğinizde kernel küçük boyutlu hale gelecektir.Visual Studio 2005 IDE çalıştıralım. CE Geliştirme araçları Visual Studio içine plug-in olarak eklenmektedir. İşlemlere başlamak için Microsoft VS 2005’ i çalıştırmalıyız. Visual Studio çalıştırdığımızda aşağıdakine benzer ekran karışımıza gelir.
Resim1
Sırada yeni OS kernel inşaa etmemiz için yeni bir proje açmalıyız.FileàNewàProject seçip açılan formun sol tarafındaki listeden Platform Builder for CE 6.0‘ı seçelim.
Sağ taraftaki OSDesign seçip aşağıdaki Name kısmına projenizin adını verin. Create directory for solution check işareti koyun ve OK basarak devam edin. Birkaç saniye sonra Windows Embedded CE 6.0 Design Wizard çalışmaya başlayacaktır. Bu Sihirbaz bize basit bazı sorular soracaktır.Next’e tıklayıp devam edelim.
Shirbaz Board Support Package‘ lerden hangisi ile çalışacağımızı bize sormaktadır. BSP, temel sürücüleri ve hedef cihaz platformu için diğer ihtiyaç olan OS özelliklerini içerir. eBox 2300 için ICOP_Vortex86_60B:x86 seçip Next ‘e basabiliriz.
Resim 4
Sihirbaz bir sonraki adımda bize hangi Design Template’ ini kullanacağımızı sorar. Design Template, OS opsiyonlarının piyasada varolan standartlara göre hazırlanmıştır. Herbir Design Template otomatik olarak sürücüleri ve özellikleri seçer. Sizin sadece yapmanız gereken, ihtiyacınız olmayan gereksiz özellikleri ve sürücüleri çıkartmak yada ihtiyacınız olan diğer sürücü ve özellikleri eklemek olacaktır.Şimdilik biz listeden Industrial Devices seçip devam edeceğiz. Industrial Device eBox için en iyi seçimdir çünkü birçok özellikler içine eklenmiş olacaktır. Next deyip ilerliyoruz.
Sihirbazın sonraki adımında Design Template‘in değişkenlerinin seçilmesi formu gelir. Seçenekler Design Template için en temel yapıyı içerir. Resim 6’da Industrial Device’lar için seçenekleri gösterir. Listeden Internet Appliance seçelim. Internet Appliance otomatik olarak networking desteğini içermektedir.Next deyip ilerleyelim.
Resim 7’de, tasarım sihirbazı bize bir çok uygulama ve media opsiyonlarını seçebileceiğimiz ekranı getirir. Yüksek kapasiteli bir kernel oluşturacağımızdan aşağıda listede olanların seçilmiş olduğundan emin olduktan sonra Next deyip sonraki ayar sayfasına geçebiliriz.
• .NET Compact Framework 2.0 ( C# için gereklidir) • Internet Explorer 6.0 • Windows Media Audio/MP3 • Windows Media Player Application • Windows Media Player OCX • Windows Media Video/MPEG-4 Video • WordPad • XML MIME Viewer
Sihirbaz bize bu aşamada Resim 8’deki gibi bir çok network ve haberleşme opsiyonlarını göstermektedir. Varsayılan seçenekler bu durumda uygundur. Fakat eğer sizin cihazınızda Wi-Fi 802.11 Wireless var ise bunun için Local Area Network altındaki Wireless Local Area Network (802.11) eklemelisiniz. Next deyip bir sonraki seçeneklere gidelim.
Böylece Proje Yönetimi Sihirbazı sona ermiştir ve Finish’e basabiliriz.
OS Design sihirbazı bittikten bir müddet sonra yeni proje dosyalarını ayarlamaları yaparken güvenlik uyarısı karşımıza çıkacaktır. Seçilen componentlerin birer risk oluşturduğunu, her ne olursa olsun cihaz ile uyumsuzluk çıkabilir ve Netwrok bağlantısı olduğundan güvenlik problemleri meydana gelebilir anlamında bir uyarıdır.İşe devam edebilmek için Acknowledge’a tıklayıp devam edeceğiz. Eğer Cancel dersek bu özellik eklenmeyecektir.
Bu noktada aslında OS Design projemiz kurulmuştur. Proje dökümanları Osdesign klasörünün altındaki bizim vermiş olduğumuz isimdeki klasördedir. Bu design için path, ..\WINCE600\OSDesign \MyOs.. Solution’ın en üst seviyesi OSdesign projesini ve bazı c/c++ uygulamaları içerir. Bu uygulamalara subprojects ve C# uygulamaları olarak proje içinde belirir Bir sonraki adımda hala OSdesign’ın ihtiyacı olan bazı sürücü ve compenentleri ekleme ile ilgili ayarlar yapılacaktır.
Catalog Items eğer bir şekilde göremiyorsanız açmak için ,
View àOther Windows àCatalog Items View şeklinde ulaşabilirsiniz. Hala OS Kernele birçok şey ekleyebiliriz. Catalog Items View den seçilerek eklenir. Eğer bir item eklenmişse yeşil check box belirir. Yeşil Kare olarak gözükenler ise yeni seçilmiş otomatik olarak eklenecektir. Eklenmeyecek olanlar ise kırmızı olarak belirir.Şimdi, Catalog Items View sekmesinden Third Party ağacını açalım. Buradan eBox tarafından desteklenen display ve audio sürücülerini işaretleyelim. Audio àVortex86_Audio DisplayàVortex86_Display Son olarak yazmış olduğumuz kodların deploy edilip eBox da çalıştırabilmemiz için ConMan Corecon files’ lara ihtiyacımız olacaktır bu VS_2005_CoreCon_X86’ yıda seçmemiz gerekiyor. Eğer bu seçenek görünmüyorsa Setup edilmemiştir. Kurmanız gerekmektedir.
VS 2005 kullanarak eğer uygulama geliştirmek istiyorsanız;
Core OS altındaki CEBASE altındaki Applications-End User àCAB File Installer/Uninstaller . seçilmelidir.
C# Proje geliştirip çalıştırabilmek için; Applications and Services Developmentà.NET Compact Framework seçilmelidir.
USB Host desteği sağlayabilmek için; Core OS altındaki CEBASE altındaki Core OS ServiceàUSB Host SupportàUSB Storage Class Driver seçilmelidir.
BuildàConfiguration Manager kullanarak Configuration Manageri açalım. Configuration Manager Resim 11’de görüldüğü gibidir. ICOP_Vortex_60B_x86 Debug mode seçili ve aktif olduğundan emin olunuz. Herbir proje için 2 farklı tipte OS Build i desteklemektedir. Bunlar Debug Build ve Realese Build dir.Debug Build birçok debug mesajlarını yakalamıza ve ilk OS yeni cihaza yüklenirken karşılaşılacak sorunları çözmemize yardımcı olur. Eğer Debug mesajlarını almak istemiyorsak release mode’da Build edebiliriz. Release Build de %40 daha az memory kullanmış oluruz. Debug mode OS design test edilip sorunlar giderildikten sonra Release Build kullanılarak proje sonlandırılır. Şimdi Configration Manageri kapatabiliriz.
OS‘u build etmeden önce hala birkaç ayarları seçmemize ihtiyaç vardır. Solution Explorer i seçerek projenin solution görünümün tabına geçelim kendi OS adnızı (bu proje için MyOs) sağ klik yapıp properties açalım. Properties penceresi açılınca Configuration Properties genişletip ordan Build Options seçelim Property sayfası Resim 12’deki gibi görünecektir.
Şimdi burda aşağıdaki ayarları yapalım • Enable eboot space in memory (IMGEBOOT=1) : Bu özellik ethernet üzerinden debug ve bundling boot loder desteklemesini sağlar • Enable kernel debugger (no IMGNODEBUGGER=1). Run-time image’in debugger’ının host ile target cihaz arasında bağlantı sağlamasını ve debug mesajlarının iletmesini sağlar. • Enable KITL (no IMGNOKITL=1) KITL, Kernel Independent Transport Layer’ın kısaltılmışıdır, hedef Windows CE ve geliştirme istasyonu arasındaki debug/download bağlantısını sağlar.
Sakın OK ye basmayın!!! Birkaç ayar daha yapacağız.
Yapılandırma sisteminin ortam değişkenleri çeşitli maddelerin image tarafından hafıza konfigrasyonunun kapsamasını ve kapsamamasını ve ayarlamak için kullanılır. Sonraki adım, Property Page’deki Build Options altındaki Environment seçelim. Burda çok kiritik bir ortam değişkenini set edeceğiz.Resim 13 de görebilirsiniz. New… butonuna basalım açılan pencereden Variable Name IMGRAM128, Value 1 olarak ayarlayıp OK diyelim. IMGRAM128 ayarlamasını yapma sebebimiz, sonuçta çıkacak olan image’in 128 MB memory nin tüm alanını kullanmasını sağlayacaktır. Sonuçta eBox 2300 desteklediği toplam ram boyutudur. Şimdi bu ayarı yapmasaydık ne olurdu? Uygulamalarımızda Out of Memory Errors ları görmeyi göze almış olurduk. Apply tıklayalım ve sonra da OK deyip konfigrasyonu tamamlayalım.
Ortam değişkenlerine başka bir örnek daha verelim fakat bu ayarlamayı bu projemizde yapmayacağız. IMGENFORA=1. the Enfora SA-GL GSM/GPRS Stand Alone Modem. desteği sağlatmamızı sağlar. Şimdi yapılandırma ile ilgili tüm ayarlamalar ve opsiyonlar seçilmiş oldu. Yeni OS image ‘ımızı Build edebiliriz. Yukardaki menüden BuildàBuild Solution seçelim ve Platfom Builder yeni OS image‘ı tüm subprojectleri ile birlikte build etmeye başlayacaktır. İşlemlerin kontrol etmeye, derlemeye, ve binlerce dosyaları birbirleri ile link etmeye ihtiyaç olduğundan Build işlemi 10-20 dk sürebilir. Şunu aklımızdan çıkartmayalım bu işlemleri yaparken herhangi bir virus koruma programı açık ise build çok uzun sürebilir.Çünkü virus programları oluşturulan her dosyayı virus taramasından geçireceğinden işlemler 2 saate kadar çıkabilir. VS 2005 IDE nin altında sağ taraftaki küçük animated bitmap hala build’in devam ettiğini gösterecektir. Eğer Output’da birşeyler olmuyorsa bu icona bakarak build’in devam edip etmediğini anlayabilirsiniz. Bu build işlemi yapılırken geliştirme PCsinde başka bi iş yapmamak çok iyi bir fikirdir. Eğer bu build süresince dosya sistemi ile ilgil işlemler yaparsanız yada başka programlar ile çalışırsanız Build Error gelebilir bu durumda Rebuild etmeniz gerekmektedir. ReBuild bir önceki build dosyalarının hepini temizleyip yerine yeni build
dosyalarını koyar. Build bittikten sonra Output’da final Build succeeded with no errors mesajını alırısınız. (Resim 14)
Resim 14
Build işlemi bittikten sonra oluşturulan dosyalar varsayılan kurulum klasörü altındaki , Debug image:
C:\WINCE600\OSDesigns\MyOS\HaytisOS\RelDir\ICOP_Vortex86_60B_x86_Debug Release image: C:\WINCE600\OSDesigns\MyOS\HaytisOS\RelDir\ICOP_Vortex86_60B_x86_Release Başarılı bir build sonrası çok büyük bir NK.BIN dosyası yukardaki dizinde bulabilirsiniz. Bu sizin yeni Windows Embedded CE 6.0 OS image dosyanızdır. eBox2300 için yeni image oluşturma işlemleri bitmiştir. Sonraki çalışmamızda bu yeni oluşturulan image eBox nasıl gönderilip işletim sistemi çalıştırılır bunu anlatmaya çalışacağım.
Georgia Institute of Technology tarafından hazırlanan A Tutorial Approach with Laboratory Exercises for Windows Embedded CE 6.0 and the eBox 2300 SoC Embedded Computer makalelerinden yararlanılarak hazırlanmıştır.
Hasan AYTIŞ Trakya Universitesi Fen Bilimleri Enstitüsü Bilgisayar Mühendisliği Ana Bilim Dalı hasanaytis@trakya.edu.tr