하지만 커맨드라인에서 사용할 수 있는 esptool을 사용하면 맥이나 리눅스에서도 문제없이 펌웨어 업데이트가 가능하다.
esptool은 GitHub에서 다운받을 수 있다. esptool을 사용하려면 pyserial이 미리 설치되어 있어야만 한다.
설치가 되었고 ESP8266이 UART UPGRADE 모드인 경우 다음과 같이 명령을 주면 된다.
./esptool.py --port [Serial port] write_flash [address] [filename]
[Serial port]에는 ESP8266이 연결되어 있는 시리얼 포트 디바이스 이름을 써주면 된다. 디폴트는 /dev/ttyUSB0로 되어 있다.
[filename]이 지정한 바이너리 파일의 내용을 ESP8266의 [address]가 가르키는 주소에 기록을 하게 된다.
아래는 맥에서 0.95 펌웨어로 업데이트 하는 예제이다.
$ ./esptool.py /dev/tty.usbserial-A4013ESQ write_flash 0x00000 AI-v0.9.5.0\ AT\ Firmware\ \(1\).bin
Connecting...
Erasing flash...
Writing at 0x0007ec00... (100 %)
Leaving...
$
위와 같이 되면 업데이트가 끝난 것이다. 이제 다시 부팅해서 시리얼 터미널을 열고 아래 명령을 입력해보면 새로운 펌웨어로 동작하는걸 확인할 수 있다.
AT+GMR
00200.9.5(b1)
compiled @ Dec 25 2014 21:40:28
AI-THINKER Dec 25 2014
OK
바이너리 파일이 여러개로 되어 있는 경우는 write_flash 뒤의 [address] [filename] 부분을 반복적으로 써 주면 된다. 즉 file1.bin은 0x00000 번지에 쓰고, file2.bin은 0x40000 번지에 쓰고 싶으면 esptool.py --port /dev/ttyusbserial-A4013ESQ write_flash 0x0000 file1.bin 0x40000 file2.bin 으로 하면 된다.
댓글 없음:
댓글 쓰기