[nodemcu 강좌] 2. 펌웨어 프레슁하기

|


이전 시간에 펌웨어를 빌드하는것을 알아보았습니다.

이번에는 빌드된 바이너리를 esp에 올리는 과정을 설명하겠습니다.


펌웨어 소스디랙토리에서 /tools/esptool.py 가 있는지 확인합니다.(기본적으로 포함되어있습니다.)

파이썬으로된 간단한 플레슁 툴입니다.

파이썬스크립트이기 때문에 이것을 실행하려면 python2.7 과 pyserial 모듈이 필요합니다.


만약 없다면 esptool은 아래에서 다운가능합니다.

https://github.com/themadinventor/esptool



플레슁하기전에 esp 모듈의 GPIO0 번 핀을 GND에 연결합니다.(low)

그리고 전원을 넣고 씨리얼을 연결합니다.






tools 디랙토리를 이동하여 upload.sh 쉘스크립트를 작성합니다.


upload.sh


#-------------


#!/usr/bin/env bash

./esptool.py --port /dev/tty.usbserial -b 230400 write_flash 0x00000 ../../nodemcu-firmware/bin/0x00000.bin 0x10000 ../../nodemcu-firmware/bin/0x10000.bin

#-------------

실행권한을 부여합니다.

chmod 755 ./upload.sh


쉘스크립틀르 실행합니다.

./upload.sh


한두번씩 실패할수도있지만 재시도 하면됩니다. 계속 실패할경우 씨리얼케이블을 다시 연결하고 해보시면됩니다.


-- 클라우드 빌드된 펌웨어 업로드시 주의사항 --


esp 칩들은 플레쉬 용량이 4M버전과 512k버전이 있습니다.

대표적으로 esp-7은 512 이고 esp-12 는 4메가 입니다.


이것에 따라 추가적인 옵션이 붙습니다.


4M 인경우에는 dio, 32m이라는 옵션을 줍니다.

./esptool.py --port /dev/tty.usbserial -b 230400 write_flash --flash_mode dio --flash_size 32m 0x00000 nodemcu-master-9-modules-2016-08-10-00-57-30-integer.bin 0x3fc000 esp_init_data_default.bin


참고

http://nodemcu.readthedocs.io/en/dev/en/flash/#esptoolpy



1.5.4.1 이상버전의 펌웨어 에서는 init data default 바이너리가 필요합니다. 이것은 매번 업데이트 할필요없이 한번 만 하면 됩니다.

4m 버전과 512버전의 주소가 다릅니다. 4메가 버전은 위의 예처럼 0x3fc000입니다.

참고

http://nodemcu.readthedocs.io/en/dev/en/flash/#upgrading-firmware

'esp8266' 카테고리의 다른 글

[nodemcu 강좌] 4.wifi station 모드  (0) 2015.12.13
[nodemcu 강좌] 3. gpio 다루기  (0) 2015.12.06
[nodemcu 강좌] 1. 펌웨어 컴파일하기  (0) 2015.05.29
And