WIZnet Developer Forum

Configuration tool 펌웨어 업로드

수고 많으십니다.

App펌웨어 업로드시 로더를 통하여서는 되는데 Config tool을 이용해서는 안됩니다. TFTP 서버 정상 종료하고 Boot 펌웨어의 main.c 의 application_update() 펑션 내부에서도 TFTP_SUCCESS 리턴까지 정상동작합니다. application_update() 루틴 나와서 다음에 debug printf문 찍으면 1 byte만 찍고 down됩니다. 그래서 더이상 디버그도 진행이 안되네요. 무슨 문제일까요.
모든걸 초기화시키기 위해 erase boot hex 코드로 eeprom erase 하고, 다시 부팅한후 original 2.0 펌웨어 로 다시 업데이트하고 config tool로 스캔해서 tftp original 2.0 app펌웨어만 업로드 했는데 역시 안되네요. ㅠㅠ

감사합니다.

안녕하세요.

Config tool로 업로드 되는 것은 App 데이터만 가능합니다.

ST loader를 이용하는 것은 보통 boot + app 펌웨어를 이용하지만 config tool로 업로드하기 위해서는 app 펌웨어만 가능합니다.

app 펌웨어로 다시 업로드 부탁드립니다.

감사합니다.

추가로 App 펌웨어인지 다시 한 번 확인 부탁드리며,

문제가 있으시면 답글 부탁드립니다.

감사합니다.

^^;, 당연히 app 만 업로드 합니다. boot는 st loader로 하고…, 그런데 안됩니다.
엇그제 새롭게 구매한 모듈이 입고되어 새로운 모듈로 해도 안되네요.
IP만 바꾸고 했는데…, 다시 네트웍 문제일까 해서 1:1로 연결해서 해보았는데도 역시나 안되네요. 분명히 다운로드는 되는거 같은데 다른 코드가 write되는거 같아요. config tool 로 write한 hex 파일을 st loader로 읽어 보면 내려보낸 hex 파일과 코드가 달라요. 1~2개월전 개발 초기에는 config tool로 별 문제 없이 app 다운로드 해서 사용했었습니다. 근데 갑자기 안되요. 처음에는 내가 그냥 코드를 잘못 작성해서 그러나 보다 했는데, original app 코드를 다운로드해도 안돼네요. 이유를 모르겟네요. ㅠㅠ, 혹시 config tool이 이상이 있을까 싶어 오늘은 config tool 도 다시 다운받아 해보았는데 역시 안되네요…
감사합니다.

안녕하세요.

제가 지금 테스트해봤는데… 저는 되는데 이상하네요…

혹시 TFTP Guide 문서가 있는데… 이대로 한 번 진행해보시겠어요??

wizwiki.net/wiki/lib/exe/fetch.p … g_tftp.pdf

ST loader의 경우 HEX로 Firmware를 업로드하는데에 비해, 위 가이드에서는 bin 파일로 업로드를 합니다.

한 번 확인 부탁드립니다.

감사합니다.

^^;, 감사합니다.
TFTP Server 프로그램 문제였을까요?
그동안 CISCO TFTP 서버프로그램을 사용했었거든요.
아~! 근데 지금 CISCO TFTP 서버 프로그램으로도 됩니다. 단 hex 화일이 아닌 bin 파일로 했을때만요. 원래 bin 만 되는거였나요? 예전에 분명 hex파일을 업로드 했던거 같은데…, 착각이었을까요… ㅠㅠ, 여하간 해결되었네요. 감사합니다.

추가로 boot+app 화일 merge 어떻게 하는지요. 500개 한꺼번에 구울려니 아무래도 한개의 파일로 되면 조금 편할거 같아서요…

  • 감사합니다. -

안녕하세요.

어드레스 차이입니다.

hex의 경우 펌웨어 코드 내부에 어드레스 시작 주소와 끝주소가 내장되어 있구요.

bin는 어드레스 없이 데이터가 연결되어 있습니다.

그래서 hex로 ST loader를 이용하여 펌웨어 업로드를 하면 어드레스를 별도의 설정 없이 사용이 가능합니다.

근데, bin로 ST loader를 이용하여 펌웨어 업로드를 할 경우, 어드레스를 설정해줘야 합니다. (위 정보는 wizwiki의 download 페이지에 있습니다.)

wizwiki.net/wiki/doku.php?id=pro … oad_rev1.1

boot는 8000000 app은 8007000 부터입니다.

근데, TFTP는 bin만 가능한 이유는, TFTP는 내부에 Decoder가 없기 때문에 hex로 넣으면 내장되어 있는 주소값을 디코딩 할 수 있는 기능이 없습니다.

따라서 주소값이 없는 bin을 이용해야 정상적인 펌웨어 업로드가 가능합니다.

ST loader의 경우, ISP를 이용하여 펌웨어를 업로드하기 때문에, ISP내부에 Decoder가 내장되어 있습니다.

이런 Decoder가 hex의 주소값을 디코딩하고 bin로 변환하여 MCU 내부 플래쉬에 저장하게 됩니다.

결국, mcu flash에 저장되는 것은 bin 정보입니다.


boot + app의 merge는 "srec_cat"라는 것을 이용하여 진행합니다. (아래 링크)

srecord.sourceforge.net/download.html

위 경로로 접속하셔서 srec_cat 을 다운받고, folder하나를 새로 생성하셔서 그 폴더 안에 boot 파일 app파일 srec_cat 파일을 넣습니다.

그리고 cmd(커맨드 모드)를 실행하여 해당 폴더 경로로 접속합니다.

ex) cp D:\Firmware_bin_hex\WIZ550web

커맨드로 접속한 상태에서 srec_cat을 이용하여 merge합니다.

사용 명령어는 아래와 같습니다.

srec_cat WIZ550web_Boot.hex -intel WIZ550web_App.hex -intel -o WIZ550web.hex -intel

감사합니다.

친절하고 자세한 응대 감사합니다. 덕분에 이번 프로젝트 대충 마무리 된거 같습니다.
이제 더이상 질문 없어야 하는데 …^^;

  • 감사합니다. -

Copyright © 2017 WIZnet Co., Ltd. All Rights Reserved.