Arduino IDE ile yazılan Kodu Başka Atmega işlemciye korumalı yazma

Başlatan burak54, 03 Ocak 2016, 22:58:25

burak54

Merhaba Arkadaşlar,
Arduino IDE yazmış oldugum kodu (Arduino MEGA 2560) yine Atmel in Mikro Denetleyicisi olan Atmega128A 'ya Kod korumalı olarak yazmak istiyorum.Sebebini Sorarsanız hazır olarak kullandığım Arduino Mega Boardında ki 2560 geliştirme amaçlı hazır devreyi kullandım ancak ihtiyaçtan fazla. Arduino IDE ile yazdım cünkü program çok komplike değil bildiğiniz üzere yazması daha kolay orada. Elimde USBASP programlayıcı var. Yapmak istediğim çizeceğim karta Atmega 128A koyacağım (Arduino Modellinde bu Mikro kontrolcu yok benim bildigim ) ve Arduino IDE ile yazdıgım kodu bu işlemciye nasıl yazacagım ve kod koruma bitini diger dikkat etmem (Reset Pin ) gereken konularda tecrübelerinizden faydalanabilirsem çok sevinirm.İyi Çalışmalar

Kabil ATICI

internetten atmega128A kullanan bir arduino modeli dosyalarını indirmen gerekir.
örneğin
https://www.chip45.com/products/crumbuino-128_arduino_compatible_atmega128_module_board_usb.php
bu adreste olduğu gibi...
Bu dosyaları arduino programı içinde gerekli yerleri yerleştirmen gerekir. Bu dosyalar pin, register, adres tanımlarını içerir...
Yazdığın programı bu çip (modül) seçili iken derlediğinde, sana atmega128A için hex dosyasının oluşturur. Bu dosyayı oluştuduğu klasörden alman başka bir yere koyman gerekir. Çünkü Arduino programını kapatılınca bu silinir. (Temp özelliklidir).hex dosyasının yerini tercihler menüsünden açılan diyalog penceresinde "aşağıdaki işlemi ayrıntılı göster "seçeneğinden "derleme"  işaretli ise hex dosyasının yeri derleme esnasında gösterilecektir.


Daha sonra oluşturulan hex dosyasını programlayıcı ile bu dosyayı Atmega128A içine yazmaktır. Ve kilit bitlerinden işlemciyi kilitlemektir.
Programlayıcıyı nasıl kullanacağını öğrenmek gerek, biliyorsan sorun yok...

Sigorta ayarlarında tabii arduino için yapılması gereken ayarları yapman gerekir. sadece senin durumunda bootloader ve bootloader reset seçeneği olmayacak. (Ben MKII kullandığım için programlama konusunda fazla yardımcı olamayabilirim).

https://www.picproje.org/index.php/topic,62233.0.html
konu başlığı altında bazı anlatımlar var...
ambar7

burak54

@Kabil ATICI teşekkür ederim ön araştırmama destekleyici güzel bir açıklama yapmışsınız tabi hala öğrenmem gereken yerler var biraz daha araştırma yaptıktan sonra özellikle Fuse ve bahsettiğiniz bootloader kısmı ile ilgili bir kaç soru daha sormak isterim . Teşekkür ederim iyi çalışmalar.

mehmet

http://eleccelerator.com/fusecalc/
Sigorta ayarlarına da buradan göz gezdirebilirsiniz...
Kod koruma için Lock bitleri 0xC0 olması yeterli...
Olan olmuştur,
olacak olan da olmuştur.
Olacak bir şey yoktur.
---------------------------------------------
http://www.mehmetbilgi.net.tr

antonio

merhaba, Arduinoda derlediğim bir kodu ".ino" dosyasını kaybettim. Bu son derlediğim kodlara arduino işlemci üzerinden nasıl ulaşabilirim? teşekkürler.

Kabil ATICI

Buradaki asıl konu; senin bir başkasının yazdığı kodlara ulaşmak mı? Yoksa bir başkasının senin yüklediğin kodlara ulaşması mı?
Doğrudan programlayıcıları dene! Arduino programı ile değil tabii. Yani senin kullandığın arduinonun işlemcisi için olan programlayıcıdan. ATMEGA328 veya ATMEGA2560 gibi...

İlki için bir şey diyemem. Ama ikincisinden endişeli isen, kodunu bir programlayıcı ile (hex) ile işlemci üzerine yaz ve yazılım korumasını (sigortasını) aktifleştir.
ambar7

antonio

Biraz açayım , Bir laptopta Arduino yazılım arayüzünde bir program yazıp derleyip Arduino Uno kite yükledim ve bu laptopun o gün hard disk vs bozuldu.Arduino kite son yüklemiş olduğum (benim için önemli, değerli) yazılıma ulaşmak ve başka bir laptopta kodlamada ekleme-çıkarma-düzeltme yapabilmek için son kaynak dosyayı ".ino" veya ".ino" içindeki yazılım kod satırlarını elde etmem mümkün mü ? Teşekkürler..

burak54

Program koruma yoksa geriye HEX i çekebilirsin diye biliyorum. Kaynak kodu zor gibi.

Kabil ATICI

elde edebilsen bile, sadece hex olarak gelir ki, disassembler uygulamaları ile assembler elde edebilirsin ki, bu dil üzerinde çalışırsan kod üzerinde düzenleme yapabilirsin. Ama bunu C kodu olarak düşünme. C düzey olarak, bir üst kademede kalır.Burada belirtiğin ino uzantılı format çok daha uzak, çünkü derleme esnasında buna daha kütüphaneler eklenir.

olayı şöyle; normalde işlemcinin  pinleri port olarak belirtilmiştir bu pinler arduino'da bir kütüphanede tanımlıdır ve siz sadece 1,2,3... gibi rakamlar olarak görürsünüz ki bunlar derleme esnasında port olarak pinler tanımlanır bu da yetmez, register adresi olarak çevrilir.
Eh bunlardan geri dönüş o kadar kolay değil. Belki günün birinde birileri yappar...
ambar7

mehmet

Kaynak kodu çıkarmanız bu şekilde mümkün
değil. Eğer kod koruma yoksa sadece hex kodlarını
alabilirsiniz. Sigorta ayarlarını da okumayı
unutmayınız.

Ayrıca kodu siz yazdığınıza göre yeniden yazmanız
mümkün.
Olan olmuştur,
olacak olan da olmuştur.
Olacak bir şey yoktur.
---------------------------------------------
http://www.mehmetbilgi.net.tr