Найти в Дзене

Утилиты для работы с ESP8266 / ESP32. Часть 1 - Esptool

Для работы с микроконтроллерами Espressif, производителем предоставляется пакет утилит, в который входят: esptool.py, espefuse.py и espsecure.py. В этой статье-заметке будет рассмотрена одна, наиболее важная, из них – esptool. esptool - независимая от платформы утилита с открытым исходным кодом, предназначенная для работы с flash-памятью в системах с микроконтроллерами Espressif. При помощи этой утилиты, решаются следующие задачи: - Чтение, запись, стирание и проверка двоичных данных, хранящихся во flash-памяти. - Считывание характеристик чипа и других связанных данных, таких как MAC-адрес или идентификатор микросхемы flash-памяти. Далее описан процесс установки и примеры использования esptool. Установка Прежде всего нужно знать, что данная утилита написана на языке Python, и потому для ее работы на рабочей машине должен быть установлен интерпретатор языка. Для того чтобы понять установлен ли интерпретатор Python на компьютере, в командной строке можно набрать команду "python --version

Для работы с микроконтроллерами Espressif, производителем предоставляется пакет утилит, в который входят: esptool.py, espefuse.py и espsecure.py.

В этой статье-заметке будет рассмотрена одна, наиболее важная, из них – esptool.

esptool - независимая от платформы утилита с открытым исходным кодом, предназначенная для работы с flash-памятью в системах с микроконтроллерами Espressif. При помощи этой утилиты, решаются следующие задачи:

- Чтение, запись, стирание и проверка двоичных данных, хранящихся во flash-памяти.

- Считывание характеристик чипа и других связанных данных, таких как MAC-адрес или идентификатор микросхемы flash-памяти.

Далее описан процесс установки и примеры использования esptool.

Установка

Прежде всего нужно знать, что данная утилита написана на языке Python, и потому для ее работы на рабочей машине должен быть установлен интерпретатор языка. Для того чтобы понять установлен ли интерпретатор Python на компьютере, в командной строке можно набрать команду "python --version".

-2

если ответом будет версия интерпретатора

-3

значит он установлен и можно переходить к установке esptool.

Если же ответом будет что-то типа: ""python" не является внутренней или внешней командой", необходимо будет установить интерпретатор Python. Для примера, опишу установка под ОС Windows, но для других ОС процесс не сложней.

На главной странице официального сайта https://www.python.org/, нужно перейти в раздел Download, где скачать необходимый .exe'шник.

-4

После чего, просто запустить. При установке рекомендую поставить галочку "Add python.exe to PATH", это избавит, от прописывания PATH в ручную, и позволит дальнейшем, не указывать полного пути к программе при обращении к ней через командную строку. Жмем на "Install Now", и ждем окончания установки.

-5

Теперь на запрос, в командной строке - "python --version", в ответ, уже точно, должны получить версию Python.

Вместе с интерпретатором Python должен установиться пакетный менеджер pip. С помощью него и попробуем установить esptool, написав в командной строке "pip install esptool", после чего должен начаться процесс скачивания и установки. Для проверки, можно набрать команду "esptool version", ответом на которую должна вернуться версия esptool.

-6

Также esptool устанавливается автоматически с IDE поддерживающими работу с микроконтроллерами ESP: PlatformIO, Arduino и пр., т.к. IDE взаимодействуют с flash-памятью микроконтроллера через эту утилиту.

Чтобы до конца понять, что же такое esptool, рассмотрим примеры. В рамках этой статью, далее рассмотрено три базовых команды: чтения, стирания и записи flash-памяти.

И для начала стоит ввести команду - "--help" или в короткой записи "-h", ответом на которую будет описание всех команд утилиты.

-7

Чтобы попрактиковаться с реальной микросхемой, подключаем микроконтроллер чрез адаптер TTL UART<->USB к компьютеру (не забываем установить драйвер переходника), убеждаемся что все подключилось правильно в диспетчере устройств, ну и там же узнайте номер COM-порта.

-8

Команда read_flash позволяет считать содержимое flash-памяти. Пример записи:

esptool -p COM3 read_flash 0 ALL flash_contents.bin

Я думаю здесь все понятно, с порта COM3, произвести чтение данных по всем адресам, считанные данные сохранить в файл flash_contents.bin (файл будет сохранен в той директории, из которой набирается команда).

Итак, данные считаны и сохранены файлом на компьютере, теперь сотрем flash-память.

esptool -p COM3 erase_flash

ну здесь все просто, думаю комментарии не нужны. Можно еще раз прочитать содержимое flash-памяти, чтобы убедиться в том, что все байты в микросхеме имеют значение 0xFF. Только теперь сохраняйте файл с данными под другим именем, чтобы не заменить ранее считанные данные.

И теперь запишем данные обратно во flash-память устройства при помощи команды write_flash. Перед вводом команды, убедитесь, что командная строка находится в директории в которой находится файл с данными (переход между директорий осуществляется командой "cd").

esptool -p COM3 write_flash 0x00000 flash_contents.bin

здесь аргументами указывается: порт устройства, адрес памяти микросхемы с которого начать запись и файл с данными.