1

Я начал экспериментировать с 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

Он просто печатал на экране несколько раз, я использовал Minicom в Ubuntu с /dev/ttyUSB0 со скоростью 115200 бод для подключения устройства с помощью USB-кабеля. и странная часть после цикла включения / выключения, я получаю ненужные данные на миником.

Некоторая статья в сети направлена на отладку с eagle.dump файла eagle.dump и eagle.s . Я не решил проблему с этим либо.

Кто-нибудь может направить меня, чтобы решить проблему?

2 ответа2

0

Я нашел способ прошить 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?Даже если я увеличил скорость передачи данных до 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 
0

У @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 ?= dio

(заметьте, я также нашел ссылку на дио здесь: https://groups.google.com/forum/#!topic/esp-open-rtos/-MNCe1NyVKA)

Эти два изменения решили проблему для меня.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .