Ana Sayfa
Forumlar
Hakkımızda
Yükleniyor. Lütfen bekleyin ...
Kategoriler
ASP.NET
C# & VB.Net
Visual Studio ve Araçlar
Sharepoint
.NET Framework
SQL Server
Mobil Teknolojileri
Dynamics
Silverlight
İş Zekası
Windows Embedded Sistemler
Yazılım Mimarisi
Yazgeliştir
Yazar olmak ister misiniz?
Forumlar
Kitap Önerileri
Haberler
Yazarlar
İpuçları
Görüşleriniz
Hakkımızda
İstatistikler
En son kayıt olan üye:
bahattin
Şuanki online üyeler (
2
) :
yalcinim
,
mrv_26
Windows Embedded Sistemler Kategorisi
»
Bootloader Nasıl Derlenir?
Bootloader Nasıl Derlenir?
Print Versiyonu
Yazar:
Hasan AYTIŞ
Tarih:30.05.2009
Puan:
5
(Oy Kullanan:
1
)
Okuma Sayısı:
2259
Makaleyi İşaretle
Makale Özeti
Daha önceden derlenmiş bir bootlaoder kullanarak uygulamalarınızı yada sürücü(driver)lerinizi bu bootlaoder ile sisteme yuklemişseniz aslında o kadar da zor bir işlem değildir. Ama, eğer siz bootloader da bazı değişiklikler yapmak isterseniz o zaman ne olcak? Ki bu derleme sırasında neler olduğunu bilmemiz ilerde code değiştirme işleminde ve testlerimizi hızlı yapmamıza yardımcı olacaktır.
Paylaşım
Makale
Daha önceden derlenmiş bir bootlaoder kullanarak uygulamalarınızı yada sürücü(driver)lerinizi bu bootlaoder ile sisteme yuklemişseniz aslında o kadar da zor bir işlem değildir.
Ama, eğer siz bootloader da bazı değişiklikler yapmak isterseniz o zaman ne olcak? Ki bu derleme sırasında neler olduğunu bilmemiz ilerde code değiştirme işleminde ve testlerimizi hızlı yapmamıza yardımcı olacaktır.
Birinci adım , bildiğiniz gibi kaynak kodları bulmamız olacaktır. Kaynak kodun bulunduğu yer Windows CE versiyonuna göre değişmektedir.Ama hepsi bize BSP yi hedef göstererecektir.
Windows CE 4.2 versiyonu ve öncesi için:
%_WINCEROOT%\Platform\<BSP ADI>\eboot
%_WINCEROOT%\Platform\<BSP ADI>\sboot
Windows CE 5.0 ve 6.0 için:
%_WINCEROOT%\Platform\<BSP ADI>\src\Bootloader
Eğer BSP nizi 3. parti bir yerden temin etmişseniz o zaman dosyaların yeri farklı bir yerde olabilir.
Sonraki adım ise bootlaoder built edildiği zaman hangi ismi almakta olduğunu tespit etmemiz gerekiyor.Bunun için bootloader için olan BIB dosyası bize bu ismi vermektedir.BIB dosyası genellikle bootlaoder kaslrou ile aynı yerde olur.
Şimdi hep beraber ,
C:\WINCE600\PLATFORM\CEPC\SRC\BOOTLOADER\EBOOT\boot.bib
C:\WINCE600\PLATFORM\CEPC\SRC\BOOTLOADER\SBOOT\boot.bib
bu iki dosyayı inceleyelim ve değişikliği görelim.
eboot.bib;
; Name Start Size Type
; ------- -------- -------- ----
EBOOT 00130000 00020000 RAMIMAGE
sboot.bib
; Name Start Size Type
; ------- -------- -------- ----
SBOOT 00130000 00010000 RAMIMAGE
Name sütunu Type Sütunundaki RAMIMAGE olarak karar vererk ismini verir,Bu durumda eboot eboot.bin ve eboot.nb0 olarak yaratılırken sboot ise sboot.bin ve sbooy.nb0 olarak oluşturulacaktır. Bu dosyalar oluşturulup platformun uygun alt klasörüne yerleştirilecektir.
Şimdi build işlemi ile bootloader in nasıl derlendiğini,ne oluşturduğunu ve dosyaların build in baştan sona nerede olduğu biliyoruz....O zaman bir bootloader derleyelim. :)
Bootloader derlenmesi:
Derleme penceresini açalım, Derleme penceresini (Build Window açmak için) OSDesign yada PBWorkspace in PBXML dosyasını seçip Open Build Window.. diyerek açabiliriz.
Build Window u açtıktan sonra çalışma klasörünü bootloader klasörü olarak seçelim.Sonra da build.exe dosyasını çalıştıralım.ve böylece işlemimiz bitmiş olacaktır.
Neler oldu acaba?
C:\WINCE600\PLATFORM\CEPC\SRC\BOOTLOADER\EBOOT:
yukardaki folder a bakalim
a.Build kaynaklar dosyasını işledi ve nmake ile kaynak dosyaları derledi.
b.nmake objeleri ve önceden derlenmiş kütüphaneleri linkleyerek eboot.exe yi oluşturdu.
Kaynaklar dosyasında olan WINCETARGETFILES RomIMage ile eşitlendi.WINCETARGETFILES ,kaynaklar dosyasında tanımlandığı gibi hedefROmIMage için derleme sonrası derleme bilgilerini soyledi.
Build WINCETARGETFILES ın makefile.inc dosyasında tanımlı olduğunu bilir ve bunun için bu dosyayı ister.
WINCETARGETFILES için kural şudur;
RomImage:
!IF "$(NOLINK)" == ""
romimage boot.bib
!ENDIF
!IF "$(WINCEREL)"=="1"
copy $(_TARGETPLATROOT)\target\$(_TGTCPU)\$(WINCEDEBUG)\eboot.* $(_FLATRELEASEDIR)
!ENDIF
yani diyorki :
i.
RomImage derlediğin zaman,eğer değişken NOLINK in değeri herhangi bir şey verilmemiş ise romimage boot.bib komutunu çalışıtır ki bu da ROM images oluşuturur.
ii.
RomImage derlediğin zaman
, ,eğer değişken WINCERELin değeri 1 verilmişse ROM İmages hedef klasorden _FLATRELEASEDIR klasörüne kopyala diyor
bitti.(fin).
Blogum
Makaleyi nasıl buldunuz?
Makaleye puan vermek için üye girişi yapmanız gerekmektedir.
v2.4
Geri Bildirim (Feedback)
Site içerisinde yazılan tüm makalelerin yazım ve yayınlama hakkı aksi belirtilmediği sürece sadece yazarlara aittir.
Yazgelistir.Com Ekibi - 2006 -
Yazgelistir.com