2013-05-23 5 views
6

Arduino 장치에서 실행중인 Atmel 칩에 플래시 할 16 진수 파일이 있습니다..hex 파일을 Arduino 용 C++로 재구성하는 방법은 무엇입니까?

이 파일의 특정 측면은 Arduino에 추가하기 전에 수정하고 싶지만 소스가 없습니다. C++; 그냥 16 진수 파일.

.hex 파일을 가져 와서 C 코드를 다시 어셈블하는 효율적인 방법이 있습니까? 그렇다면 어떻게?

+1

아니요, 원본 파일이나 원본 파일처럼 원격으로 볼 수 없습니다. –

+0

수정할 수있는 C 코드로 다시 역 컴파일 할 수 있지만 요아킴 (Joachim)이 말했듯이 원래처럼 보이지는 않습니다. –

+0

@ BenVoigt - 괜찮습니다. 그 일을 어떻게 하죠? 감사! –

답변

7

내가 avr-objdump (꿀꺽)의 출력에 보일 것이다

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

당신은 당신의 아키텍처에 "-m"다음 단어를 변경해야합니다. /이 코드가 작동하는 경우에도 C 코드를 제공 할 것입니다. 변수 이름은 다를 것이고, 편리한 Arduino 함수는 지저분한 C 쓰레기처럼 보일 것이다. 더 좋은 방법이 있기를 바랍니다. 죄송합니다.

AVR GCC forum - Using avr-objdump to disassemble hex code도 참조하십시오.

10

다른 답변이 제공된 시점에는 해당되지 않았을 수 있습니다. 그것은 .hex를 다시 어셈블러로 가리 킵니다. 원래 의도 한 AVR의 아키텍처를 알아야 할 수도 있습니다. 필자가 작성하고 컴파일 한 코드에서 잘 작동합니다. 나는 Tiny 85 용 AVR-25로 테스트를했다. 같은 것을 오프라인 버전으로 사용하는 것이 좋을 것입니다! http://www.onlinedisassembler.com/ 대체 상업용 옵션은 IDA입니다. https://www.hex-rays.com/