2013-05-23 26 views
6

Arduino cihazında çalışan bir Atmel çipinin üzerine yanıp sönecek altıgen bir dosyam var.Bir .hex dosyasını Arduino için C++'ya nasıl yeniden yüklerim?

Bu dosyanın Arduino'yu kullanmadan önce değiştirmek istediğim bazı yönleri vardır, ancak C++ kaynağım yok; sadece altıgen dosyası.

Bir .hex dosyası almanın ve C kodunu yeniden oluşturmanın etkili bir yolu var mı? Öyleyse nasıl?

+1

Hayır, orijinal dosyayı almak mümkün değil, ya da bir şey bile uzaktan orijinal dosya gibi bakarak IDA olduğunu. –

+0

Bunu değiştirebileceğiniz C koduna geri dönüştürebilirsiniz, ancak Joachim'in dediği gibi, orijinal gibi bir şey görünmeyecektir. –

+0

@ BenVoigt - bu iyi. Bunu yapmayı nasıl yaparım? Teşekkürler! –

cevap

7

ben avr-objdump (yudum) çıkışındaki görünecektir:

avr-objdump -j .sec1 -d -m avr5 foo.hex 

Sen mimariye "-m" Aşağıdaki kelimelerden değiştirmek zorunda kalacaktır. Bu işe yarayıp/çıkmasa bile, size yazdığınız herhangi bir şeye bakmayabilecek C kodunu verecektir. Değişken isimleri farklı olacak ve kullanışlı Arduino fonksiyonları dağınık C önemsiz gibi görünecek. Umarım daha iyi bir yol vardır, üzgünüm. Ayrıca bkz. AVR GCC forum - Using avr-objdump to disassemble hex code.

10

Bu, diğer cevapların verildiği sırada mevcut olmayabilir. .hex'i assembler'a geri yükler. İstenilen orijinal AVR mimarisini bilmeniz gerekebilir. Yazdığım ve derlediğim kod için benim için iyi çalışıyor. Tiny 85 için AVR-25 ile test ettim. Umarım yardımcı olur. Aynı şeyin bir çevrimdışı sürümüne sahip olmak güzel olurdu! http://www.onlinedisassembler.com/ Alternatif ticari seçenek https://www.hex-rays.com/