bootloader

Başlatan muhittin_kaplan, 11 Şubat 2009, 02:20:48

muhittin_kaplan

biraz araştırma yaptım bootloader hafızanın belli bir blgesine belli bir program atıp uygulama programını hafızanın başka bölümüne atıyoruz. buraya kadar herşey güzel
şimdi
1. Bu Bootloader programlarını bizmi yazıyoruz
2.Eğer Biz yazmıyorsak Nereden İndiriyoruz
3.Her Pic için ayrımı
4.Nasıl Yüklüyoruz
5.Nasıl deniyoruz.

Teşekkür Eder İyi Çalışmalar Dilerim.

Tagli

1) İstersen bootloader'ı kendin yazabilirsin. Ama hem PIC hem bilgisayar için gerekli programları yazman gerekiyor. Hazır yazılmışı varken uğraşmak gereksiz bence.
2) Açıkçası ben denemedim ama sitede verilen bir linkte bu siteyi görmüştüm. Tek seçenek bu değil elbette.
3) Evet, her PIC için ayrı. Ama yukarda bahsettiğim sitede hepsini bir paket yapmışlar galiba.
4) Bootloader'ın yüklenmesi normal bir hex dosyasını PIC'e yüklemekten ibaret.
5) Bootloader'ı yükledikten sonra veriler PIC'e seri iletişim ile gönderiliyor. Bu işi yapan bilgisayar programını da zaten bootloader'ı yazan kişi(ler) yapmış oluyor.

Ufak bir ayrıntı: Bootloader kullanabilmek için söz konusu PIC'in kendi program hafızasına yazabilme yeteneğinin olması gerekiyor.
Gökçe Tağlıoğlu

microcozmoz

http://www.etc.ugal.ro/cchiculita/software/picbootloader.htm

adresinde bulunan bootloader sitede yazdığına göre hafızada en az yer kaplayan bootloader mış...

Bootloader hex dosyası değişik tipte ve hızda çalışacak işlemciler için hazırlanmıştır. ilk önce bu hazır olan hex lerden size uygun olanı işlemcinize  herhangi bir programlayıcı ile yüklüyorsunuz.
Daha sonra yine aynı sayfada şeması verilmiş rs232 iletişim devresini kuruyorsunuz ve yazdığınız programı direk RS232 den yükleyebiliyorsunuz..

Yazmış olduğunuz programın başına bootloader kullanıdığınızı belirten bir deklarasyon yapmanız gerekiyor.
Örnek olarak ben picbasicde DEFINE LOADER_USED 1 veya protonda Declare BOOTLOADER = On tanımlamalarını kullandım..

Ben tiny'i denedim ve memnun kaldım..
"Bütün bu şerâitten daha elîm ve daha vahim olmak üzere, memleketin dahilinde, iktidara sahip olanlar gaflet ve dalâlet ve hattâ hıyanet içinde bulunabilirler."

teknikelektronikci

hocam bu seri iletisim normal bildigimiz rs232 ilemi ? ynai ister ft232 ister max232 ile tx rx uclarindanmi gönderior programi ? eger öyle ise harikaymis
Ey Türk istikbalinin evlâdı! İşte, bu ahval ve şerâit içinde dahi, vazifen; Türk İstiklâl ve Cumhuriyetini kurtarmaktır! Muhtaç olduğun kudret, damarlarındaki asil kanda mevcuttur!

Tagli

Evet, bildiğim kadarıyla öyle. Hatta bu mantıkla bir PIC'in başka bir PIC'i programlaması da çok daha kolay şekilde sağlanabilir. Yani bir çeşit saha programlayıcısı yapılabilir, hem de Microchip'in karışık dökümanları üzerinde kafa patlatmadan...
Gökçe Tağlıoğlu

Maxim

yanlız bu tip hazır bootloader larda code koruması olamıyor bildiğim kadarıyla , yani yazdığınız programı başkası kopyalayabilir ?

o yüzden kendinize özel bootloader yazmanız gerekiyor ,
o da herkesin harcı değil

Macera

Alıntı yapılan: "maxiboost"yanlız bu tip hazır bootloader larda code koruması olamıyor bildiğim kadarıyla , yani yazdığınız programı başkası kopyalayabilir ?

o yüzden kendinize özel bootloader yazmanız gerekiyor ,
o da herkesin harcı değil
Bootloader program geliştirmek amacıyla kullanılır.
Seri imalatda tabiiki codeprotect yapılacak
"Art without engineering is dreaming; engineering without art is calculating." -- Steven K. Roberts

controller

Alıntı yapılan: "maxiboost"yanlız bu tip hazır bootloader larda code koruması olamıyor bildiğim kadarıyla , yani yazdığınız programı başkası kopyalayabilir ?

o yüzden kendinize özel bootloader yazmanız gerekiyor ,
o da herkesin harcı değil

pic in içindeki yazılımın program hafızaya yazabilme yetkisi "WRT" fuse değeri ile ayarlanır. bu ayar pic in kod korumasından bağımsızdır. yani pici hem kod korumalı olarak hem de bootloader den programlanacak şekilde kullanabilirsiniz. kullanıcının bootlader ile kodu okuyabilme yetkisi tamamen bootloader i yazan kişinin insiyatifine kalır. yani hazır bootloader kodlarında herhangi bir değişiklik yapmadan pic i kod korumalı olarak kullanabilirsiniz.
Hesabım OG tarafından haksız bir şekilde pasif yapılmıştır.

Maxim

hımm ben şunu bir deneyeyim hele .

Maxim

beyler ,
bu işte biraz problem var ,
code koruması olmuyor

bilenler biraz daha açıklama yapabilirlermi ?

bootloader programını pice atarken code protectli olarak atarsam ,
hex yükleyemiyorum .

bootloader programını pice atarken code protect kapalı tutarsam ,
hex protekli olarak atsam bile ,gene okunmaktadır .

Tagli

Öncelikle şunu belirteyim, konu hakkında deneyimim yok. Aşağıda yazacaklarım varsayım ve tahminlerimdir.

Alıntı yapılan: "maxiboost"bootloader programını pice atarken code protect kapalı tutarsam ,
hex protekli olarak atsam bile ,gene okunmaktadır .
Bu normal. Büyük ihtimalle bootloader'ın kod koruması, yüklemeden sonra bir biti değiştiriyor ve programın bootloader ile seri iletişimle yollanmasını engelliyordur. Ama sonuçta PIC normal okumaya hala açık. Bu okumada kod bootloader da dahil olarak okunur.

Alıntı yapılan: "maxiboost"bootloader programını pice atarken code protectli olarak atarsam ,
hex yükleyemiyorum .
Burda dikkat edilmesi gereken bir nokta var. Gerçi PIC'ten PIC'e değişebilir ama cihazda kod koruması ile program hafızasına yazma koruması bitleri ayrıdır. Bu genelde "Write Enable" diye geçer. Bootloader PIC'e atılırken bu "Write Enable"ın açık olması gerekir. Sadece "Code Protect" ile PIC'in doğrudan okunması engellenmelidir. Elbette hex atılırken ayrıca korumalı atılmalı (bunu bilmiyordum, şimdi sen yazınca öğrendim). Aksi taktirde kod doğrudan okunamasa bile bootloader ile okunabilir.
Gökçe Tağlıoğlu

microcozmoz

http://www.picbasic.org/web_get_started_bootloader.php

Burada detaylı bir şekilde bootloader mantığı anlatılmış ve bir paragrafta ;

Alıntı YapThe configuration fuses for code protection CANNOT be enabled. The bootloader needs to be able to freely read and write to the PICmicro®'s code and data space. Therefore, the device cannot be code protected. The bootloader is primarily aimed at development work, any final products that require code protection must be programmed in the conventional way.

Yani kod koruma ilgili bitler maalesef Aktive edilemiyor.
"Bütün bu şerâitten daha elîm ve daha vahim olmak üzere, memleketin dahilinde, iktidara sahip olanlar gaflet ve dalâlet ve hattâ hıyanet içinde bulunabilirler."

Maxim

peki ..
bende öyle biliyordum zatende emin değildim

ama size güzel bir sorum var

şimdi cihaz satın alıyoruz, ne olduğu önemli değil
çoğu için arada bir üretici firma tarafından yeni firmware veya güncelleme dosyası yayınlanıyor .

o da bir nevi bootloader ,
onu nasıl koruyabiliyor adamlar ?

yada benmi yanlış düşünüyorum, belkide korumaya gerek görmüyorlardır ?  

benim aklıma şöyle birşey geliyor ,
kod koruması olmasın ama ayrı bir eeprom dan seri numarası okunsun devrede ? hem böylece kullanıcı yeni programı kendi yükleyebilir ,yada buna benzer birşey ?

Tagli

@microcozmoz;
Ben aynı fikirde değilim. Bu yazıyı yazan ya yanlış yazmış, ya da "code protection" derken dahili yazma koruma bitlerini de dahil etmiş tanımına.

16F87XA'nın datasheet'inde konu açıkça anlatılmış:
Alıntı YapWhen the device is code-protected, the CPU may
continue to read and write the data EEPROM memory.
Depending on the settings of the write-protect bits, the
device may or may not be able to write certain blocks
of the program memory; however, reads of the program
memory are allowed. When code-protected, the device
programmer can no longer access data or program
memory; this does NOT inhibit internal reads or writes.
Gökçe Tağlıoğlu

emrez

Merhaba arkadaşlar, benim elimde sd kart ile çalışan bir devre var içindeki dosyaları tv ye aktarıyor ve seçince data outlardan kullanımını sağlıyor, microchipe firmware dosyasını sd kart ile yazabiliyorsun bunu hagi yazılımla yapmışlar ? firmware dosyası hex değil ama sourcede değil.  atariamiga.free.fr/sdiskemul.php