pic e iki farklı hex kodu yükleme

Başlatan nusi, 23 Ocak 2016, 21:53:51

nusi

selem arkadaşlar. bir sorum olacak?http://emrahbudak.com/2013/05/26/cizgi-izleyen-robot/#comment-177 adresindeki çizgi izleyen robotu yapmaya çalışıyorum. yalnız iki farklı hex kodu var. biri  main-on-of diğeri main- pwm bu ikisinden hangisini pic e yükleyeceğim? veya ikisi birden yüklenecekse nasıl yüklerim?

z

Benzer bir konu açacaktım unuttum senin mesajını görünce ne tesadüf dedim.

Bugün aynı durum benim de başıma geldi.

Normal şartlarda;

ARM işlemcime bir bootloder yazmıştım. Bir de uygulama programı. Herikisi iki ayrı proje.

Önce çipe bootloaderı yüklüyor daha sonra da seri port üzerinden bootloader aracılığı ile uygulama programını yüklüyordum.

İki ayrı iş olmasın hem bootloaderı hem de uygulama programını tek çırpıda yükleyebilirmiyim diye merak ettim.

IDE ortamında çoklu proje vs yapmadan hex dosyaları text editörle açıp bir dosyadaki hex kodları kopyalayıp diğer dosyanın sonuna yapıştırdım.

Daha sonra iki dosyayı barındıran bu hexi çipe attım. İstediğimi çok zahmetsiz şekile yapmış oldum.

Burada adı geçen hex dosya saf makine kodu değil.  Galiba Intel Hex format diye geçiyor yada benzeri.

Aşağıdaki gibi.

:10010000214601360121470136007EFE09D2190140
:100110002146017E17C20001FF5F16002148011928
:10012000194E79234623965778239EDA3F01B2CAA7
:100130003F0156702B5E712B722B732146013421C7
:00000001FF
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

nusi

hocam hex dosyasının içeriğini nasıl açarım? kusura bakmayın bira acemiyim.

RaMu

@z hocam, sakıncalı bir yöntem,
birleştirdiğin 2 hex dosyayı program memoryde farklı iki yere yazıldığından sıkıntı yok ama:

eğer iki hexde program memory de aynı yere yazılacak değerler içeriyorsa
sona eklenen hex üstüne yazılmış olacak.

@nusi hex dosyalarını kurcalama boşuna, senin işini görmez.
Yinede, notepad ile açabilirsin, herhangibir text editörü ile açabilirsin.

Emin değilsen daha güzel anlatımı olan örnek araman daha iyi olur,
üstünkörü baktım, beğenmedim,
baskı devre yapıp denememiş, ben olsam böyle örnekle vakit kaybetmem.
Sorularınıza hızlı cevap alın: http://www.picproje.org/index.php/topic,57135.0.html

dursuncemal

her iki programi da kendin yazmadigin surece  veya o amacli yazilmadigi surece olmaz . senin baktigin yazilimlarda olmaz her biri ayrı ayrı amaclarla yazilmis.hangisini yuklersen o calisir.biri sensor  ile calisiyor  biri de  butonlarla
:=

z

Ha bootloader ile uygulama programını roma atmışım ha programlayıcı ile farketmez ki. Sonuçta her iki programı da zaten ben yazdım programların hangi adreslere oturacağına da zaten yazım aşamasında karar vermiştim.





Bana e^st de diyebilirsiniz.   www.cncdesigner.com

Karamel

hocam. ben sizin boyle mesajlarinizi okumustum. keil ile bu nasil yapilir diyesormussunuz.

yanlis hatirlamiyorsam sorunuz soyle idi. iste bir program var. baska bir programda var. keilde bunlara address atiyorsunuz. daha sonra ikisinide micorocontollerin rom una yerlestiriyorsunuz. (bir seferde) daha sonra birbirileri arasinda duruma gore gecis yapiyordunuz? (yamak hocamda sormus olabilir. suan tereddute dustum)

hatta dahada yanilmiyorsam.

bir bootloader
1. program
2. program
3. program

seklindeydi. hepsinin baslangic bitis address leri belli. siz istediginizi kullaniyordunuz. sizin bootloader ile yeni yaziliminizi boyle birlestirip yapabilirsiniz?

dursuncemal

yok hocam ben sizi kast etmedim  nusi arkdasin s orusuna istinaden yazdim. sizin yazinizda bahsettiginizi tam anlamadim. arm i bilmiyorum  ama picte  hexten kesip baska hex e ekleyip program calismaz. soyle ki yazarken adres belirtip yazarsaniz belki onuda hic denemedim.
:=

z

Normalde bootloaderı ben yüklüyordum müşterim de uygulama programımı kendisi çipe bootloader aracılığı ile yüklüyordu.

Müşteri kaytardı hem bootloader hem de uygulama programı çip üzerinde hazır gelsin dedi.

Ben de yeni bir proje oluşturmak yerine aklıma gelen bu yöntemi denedim.

Benim yöntemde hiç bir sakınca yok. Memory'nin farklı bölgelerine yerleşecek çok sayıda programın hexlerini editörde elle birleştirdiğimde amacım zaten gerçeklenmiş oluyor.

Sıralarının da önemi yok. gelişigüzel sıra ile bile kopyalasanız olur.

Yalnız başlıktaki soru benimkinden biraz farklıymış. Orda galiba bendeki gibi farklı adreslere yerleşmesi için özel uğraşılmış program yok. Dolayısı ile benim yöntem arkadaşın işini görmez.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

dursuncemal

:=

MrDarK

Alıntı yapılan: z - 23 Ocak 2016, 23:59:49
Ha bootloader ile uygulama programını roma atmışım ha programlayıcı ile farketmez ki. Sonuçta her iki programı da zaten ben yazdım programların hangi adreslere oturacağına da zaten yazım aşamasında karar vermiştim.

Benzer bir işi şu şekilde yaptım;
Bootloader kodunu yükledim, sonra ana kodumu chip içine yükledim. Daha sonra chip içindeki kodumuzu programlayıcı ile okuduğumuzda iki kod birleşmiş oluyor zaten dışarıya hex olarak alıp işi bitirebiliyoruz.
Picproje Eğitim Gönüllüleri ~ MrDarK

aliveli

@nusi
On-Off Kontrol programı motorları test etmek, bağlantı kontrolü vs  için
PWM programı çizgi izleyen robotun programı

nusi

teşekkür ederim arkadaşlar.

mesaj birleştirme:: 24 Ocak 2016, 20:10:15


dnacikaya

#13
Aynı işlemcide çalışan 2 projeyi birleştirmek için bir çalışma başlattım ama 2 projenin inc dosyaları nedeniyle projeleri birleştiremedim. Sonra hex dosyaları birleştirebilir miyim diye düşünüp forumda araştırma yapınca bu yazılanlarla karşılaştım okudum, kafamda şimşekler çaktı :-) Kaynak kodun birinde ve hex dosyası üzerinde çalışarak 2 hexsi aynı işlemcide çalıştırmayı başardım. Proton basic üzerinde pic18f4550 ile çalıştım ama farklı diller, derleyiciler veya işlemciler için kullanılabileceğini düşünüyorum. Artık pic18f4550 üzerinde usb cdc çalışma veya usb hid çalışma bir jumper yardımıyla seçilebiliyor. Çalışmayı pdf haline dönüştürdüm linkten indirilebilir:

https://www.elektroinfo.org/2020/04/pic-iki-hex-yuklemek-birlestirmek.html

power20

10sn önce denedim. Bahsettiğiniz pdf indirilmiyor