ESP8266 не загружается после прошивки прошивки, последовательный выход Неустранимое исключение (28)
Я начал экспериментировать с ESP8266, который был куплен у AI-Thinker, и вики здесь, ESP8266 и еще одна для NodeMCU.
Я уже знаком с прошивкой Lua, поэтому прошил прошивку узла Lua и смог добиться успеха с этим, но я сталкиваюсь с проблемой памяти с прошивкой Lua. Тогда я подумал использовать программирование на C вместо Lua. Моя среда разработки - Ubuntu 14.0. Шаги, которые я выполнил отсюда: https://github.com/SuperHouse/esp-open-rtos.
Мне удалось собрать прошивку с gen_misc.sh
в examples/project_template
папка с генерацией нижеупомянутых бинов с параметрами сборки по умолчанию:
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
Это было просто печать на экране несколько раз, я использовал миником на Ubuntu с /dev/ttyUSB0
со скоростью 115200 бод для подключения устройства используется USB-кабель. и странная часть после цикла включения / выключения, я получаю ненужные данные на Minicom.
Некоторая статья в сети направлена на отладку с eagle.dump
файл и eagle.s
, Я не решил проблему с этим либо.
Может кто-нибудь направить меня, чтобы решить вопрос?
2 ответа
Я нашел способ прошить esp-8266 с помощью esp-free-rtos, если кто-то воспользовался моим ответом, я рад. Я использовал NodeMcu WiFi Development Board - ESP8266(ESP-12E). Проблема, с которой я столкнулся, связана с фатальным исключением (28) из-за того, что соответствующее место в памяти недоступно (возможно, нет, я здесь только новичок).
Я ошибочно принял два разных проекта, но они идентичны ESP8266_RTOS_SDK и esp-open-rtos.
Поэтому после некоторого поиска я решил продолжить с esp-open-rtos, затем появилась ошибка, связанная с размером флэш-памяти, отсюда: https://nodemcu.readthedocs.io/en/master/en/flash/ Я получил ответ.
В отредактированной корневой папке esp-open-rtos файл параметров изменился на FLASH_SIZE?= 8, FLASH_MODE?= Dout, даже если я увеличил скорость передачи данных до ESPBAUD?= 1500000 .
Я прошился с прошивкой и получил мою программу на C в esp8266 .
Ниже я перечислю пошаговое руководство по прошивке C-программы на esp8266 . Моя система разработки - Ubuntu 14.04 LTS.
1. скачать esp-open-sdk и собрать
Убедитесь, что все требования и зависимости, доступные для вашей системы разработки, указаны на их странице GitHub.
$ 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
(дает вам шестнадцатеричный производитель и чип)- найдите чип в 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 ?= dio
(обратите внимание, я также нашел ссылку на дио здесь: https://groups.google.com/forum/)
Эти два изменения решили проблему для меня.