ESP8266은 펌웨어 플래시, 직렬 출력 후에 부팅하지 않습니다 치명적인 예외 (28) 실험하기 시작했으며 위키가 여기에있다.

나는 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

(나는 HiLetGo nodemcu를 가졌다 – 32Mb)

파일을 편집하십시오 : esp-open-rtos / parameters.mk

  • FLASH_SIZE ?= <N> (N은 플래시의 메가 비트 임)
  • FLASH_MODE ?= 디오

(또한 참고 문헌을 찾았습니다. 디오 이리: https://groups.google.com/forum/#!topic/esp-open-rtos/-MNCe1NyVKA )

그 두 가지 변화가 나를 위해 문제를 해결했습니다.