/dev/ttyUSB0을 통해 임베디드 장치에 펌웨어 쓰기

/dev/ttyUSB0을 통해 임베디드 장치에 펌웨어 쓰기

나는 마지막 예를 사용합니다.이 게시물

나는 wctx:file length=0sz 명령을 쫓고 있습니다. 실제로 Minicom에 대한 직렬 연결을 열면 minicom전송이 중단됩니다. 따라서 minicom 창에 들어가면 press enter to begin update이 시점의 일반적인 프로세스는 메뉴로 가서 S Send를 선택하고 Xmodem을 선택한 다음 펌웨어 파일을 찾아서 선택하는 것입니다. 이 시점에서 전송이 시작되고 거의 즉시 실패합니다.

다른 가상 터미널 창으로 이동하여 실행 sz -X -k -b -vvv - /tmp/sz_fifo > /dev/ttyUSB0 < /dev/ttyUSB0한 다음 수신 sz 0.12.21rc mode:1 sending s20806.lsz 0 blocks: give your Xmodem receive command now하여 minicom 창으로 이동합니다. to begin update press enterEnter 키를 눌러 sz 창에 표시되고 Xmodem sectors/kbytes sent 0/ 0kretry Timeout on sector ACK마지막 부분이 몇 번 반복됩니다 retry count exceeded.mode:0

fifo가 비어 있는지, minicom에서 Xmodem 프로토콜을 선택해야 하는지, 아니면 무엇인지 모르겠습니다! 이 작업을 수행하기 위해 Windows를 사용해 보겠습니다. 나는 모뎀 프로토콜과 fifo에 대한 전문가와는 거리가 멀다. Debian Woody로 시작했지만.

"s를 누르기 전에 Enter를 누르세요"라는 코멘트에 대한 응답으로,

minicom을 사용하면 내장된 카드의 직렬 인터페이스에 액세스하여 업데이트가 수행됩니다. 내장 카드에는 CRCXmodem과 1K-Xmodem이라는 두 가지 옵션을 사용할 수 있습니다.

1K-Xmodem을 선택했는데 응답은 "터미널에서 연결을 끊고 속도를 115,600으로 변경한 다음 다시 연결하십시오"입니다. 카드 자체의 속도가 변경됩니다. 포트 설정 속도 변경 후 Minicom이 다시 연결되고, 내장된 카드에 "펌웨어 업데이트를 시작하려면 Enter를 누르세요"라는 메시지가 표시됩니다.

이 시점에서 임베디드 카드 매뉴얼에 쓰여진 지침은 "펌웨어 업데이트 파일 보내기"입니다. CTRLA + z를 눌러 minicom 메뉴로 들어간 다음 "S"를 선택하여 전송하면 프로토콜을 선택할 수 있습니다. Xmodem을 선택하면 펌웨어 파일을 선택하는 데 사용되는 파일 브라우저가 나타납니다.

Enter 키를 누르면 업데이트가 시작되지만 빠르게 실패합니다. 미니콤 메뉴에서 "S"를 선택하기 전에 Enter를 누르면 아무 것도 전송되지 않고 업데이트가 실패합니다. minicom 메뉴에 접근하기 전에 Enter를 누르면 내장 카드의 타이머가 만료되고 업데이트가 실패합니다.

명명된 파이프를 사용하여 위에서 제공한 링크에서 작동하는 sz를 시도하고 있습니다. minicom이 없으면 임베디드 시스템이 펌웨어를 받을 수 있도록 준비하는 방법을 모르지만 minicom이 실패합니다.

나는 이 특정 문제를 해결하려고 노력하고 있습니다. 특히 minicom에는 1K-Xmodem에 대한 특별한 옵션이 없고 오직 Xmodem만 있기 때문입니다. 그리고 sz에는 카드에서 제공하는 옵션에 지정된 대로 1K-Xmodem에 대한 -k 스위치가 있습니다.

관련 정보