나는 AI-Thinker에서 구입 한 ESP8266을 실험하기 시작했으며 위키가 여기에있다. ESP8266 다른 하나는 NodeMCU .
나는 이미 Lua 펌웨어에 익숙하므로 Lua 노드 펌웨어를 플래시하고 성공할 수는 있지만 메모리 문제는 루아 펌웨어 . 그렇다면 루아 대신 C로 프로그래밍을 사용하려고 생각했습니다. 내 개발 환경은 우분투 14.0입니다. 내가 여기에서 따라온 단계 : https://github.com/SuperHouse/esp-open-rtos .
펌웨어를 성공적으로 만들었습니다. gen_misc.sh
…에서 examples/project_template
기본 빌드 옵션으로 아래에서 언급 한 bin을 생성하는 폴더 :
eagle.flash.bin
eagle.irom0text.bin
그 다음에 esptool.py
, 아래 명령을 사용하여 :
./esptool.py write_flash 0x00000 ESPWorkspace/esp-open-sdk/ESP8266_RTOS_SDK/esp8266_bin/eagle.flash.bin 0x20000 ESPWorkspace/esp-open-sdk/ESP8266_RTOS_SDK/esp8266_bin/eagle.irom0text.bin
보드에서 플래싱 된 출력은 다음과 같습니다.
Fatal exception (28): epc1=0x40001800, epc2=0x00000000, epc3=0x00000000, excvaddr=0x00007ff0, depc=0x00000000
그것은 화면에 반복적으로 인쇄 중이 었으며, 우분투에서 minicom을 사용했습니다. /dev/ttyUSB0
USB 케이블을 사용하여 장치를 연결하기위한 115200 보오율. 그리고 이상한 부분은 전원을 껐다 켠 후에 나왔고, 나는 미니캠에 대한 쓰레기 데이터를 얻는다.
디버그로 감독 된 넷상의 일부 기사 eagle.dump
파일과 eagle.s
. 나는 그 문제를 해결하지 못했다.
누가 문제를 해결하기 위해 나를 안내 할 수 있습니까?
답변
esp-free-rtos를 사용하여 esp-8266을 깜박일 수있는 방법을 찾았습니다. 누군가 내 대답에 도움이 되었다면 기쁩니다. NodeMcu WiFi Development Board – ESP8266 (ESP-12E)을 사용하고있었습니다. 관련된 메모리 위치로 인해 치명적인 예외 (28)와 관련하여 직면 한 문제 (사용 가능하지 않을 수도 있음, 여기서는 초보자 임).
두 개의 프로젝트가 동일하지만 ESP8266_RTOS_SDK 및 esp-open-rtos와 동일합니다.
esp-open-rtos를 계속 사용하기 위해 검색을 한 후에 오류가 발생했습니다. 여기에서 플래시 크기와 관련이 있습니다. https://nodemcu.readthedocs.io/ko/master/en/flash/ 나는 대답을 얻었다.
esp-open-rtos 루트 폴더에서 FLASH_SIZE? = 8, FLASH_MODE? = dout으로 변경된 매개 변수 파일을 편집했습니다.
심지어 나는 ESPBAUD? = 1500000에 보 레이트를 증가시켰다.
나는 펌웨어로 번쩍이고 esp8266에 나의 C 프로그램을 가지고있다.
아래에서 esp8266에 C 프로그램을 플래시하는 단계별 지침을 나열했습니다. 내 dev 시스템은 우분투 14.04 LTS입니다.
1. esp-open-sdk를 다운로드하고 빌드하십시오.
모든 GitHub 페이지에 언급 된 dev 시스템에서 모든 요구 사항 및 종속성을 사용할 수 있는지 확인하십시오.
$ git clone --recursive https://github.com/pfalcon/esp-open-sdk.git
$ make STANDALONE=n
내보내기 경로 설정 :
$ export PATH=/path_to_Workspace/esp-open-sdk/xtensa-lx106-elf/bin:$PATH
2. esp-open-rtos를 다운로드하고 플래시를 만듭니다.
$ git clone --recursive https://github.com/Superhouse/esp-open-rtos.git
$ cd esp-open-rtos
$ make flash -j4 -C examples/http_get ESPPORT=/dev/ttyUSB0
답변
@Glorfindel은 정확한 답을 가지고 있지만 명확하게 설명합니다.
보드의 플래시 크기를 결정하십시오.
…에서 https://stackoverflow.com/questions/39631011/how-to-determine-flash-size-of-nodemcu
- 설치하다 esptool.py
- 운영
esptool.py -p <serial-port> flash_id
(16 진수를 준다.
제조업체 & amp; 칩 ID)- 칩을 들여다 보아라. https://code.coreboot.org/p/flashrom/source/tree/HEAD/trunk/flashchips.h
(나는 HiLetGo nodemcu를 가졌다 – 32Mb)
파일을 편집하십시오 : esp-open-rtos / parameters.mk
FLASH_SIZE ?= <N>
(N은 플래시의 메가 비트 임)FLASH_MODE ?= 디오
(또한 참고 문헌을 찾았습니다. 디오 이리: https://groups.google.com/forum/#!topic/esp-open-rtos/-MNCe1NyVKA )
그 두 가지 변화가 나를 위해 문제를 해결했습니다.