Введение в ESP-OPEN-SDK

разделы: Интернет вещей, дата: 14 марта 2019г.

Как я уже говорил, ESP8266 можно программировать двумя способами: либо через Arduino IDE, либо через тулчейн esp-open-sdk. Первый вариант я уже рассматривал на примере разработки температурного логера, в этот раз я хочу рассказать о работе с esp-open-sdk.

Тулчейн позволяет программировать на SDK функциях, которые поставляются в закрытых скомпилированных библиотеках называемых SDK. Имеется две версии SDK: RTOS SDK и NONOS SDK. Я буду рассматривать вариант без RTOS, при необходимости, "прикрутить" простенький диспечер задач будет несложно.

Non-OS SDK - это библиотека предоставляющая программный интерфейс приложения(API) для ESP8266 и включающая стек функций для приема и передачи через WiFi-соединение, доступа к аппаратным ресурсам и базовые функции контроля и управления модулем. Данное API позволяет программировать на более высоком уровне не вдаваясь в особенности архитектуры ESP8266.

SDK может быть интересен для опытных embedded - программистов, которых, возможно, тяготит использование Arduino IDE и Wiring, и которые не боятся остаться один на один с Си. Взамен вы получите: избавление от прослойки Arduino/Wiring, возможность использования вашей любимой системы управления проектом, возможность использования стороннего IDE для написания кода, а также возможность отладки через JTAG. Что вы теряете? Возможность использования Arduino библиотек.

Однако, если вы используете фреймворк Arduino, то для вас не доложно быть секретом, что сам он написан на функциях SDK. Т.о. изучение SDK существенно расширит ваши возможности при написании своих библиотек, да и собственно само программирование ESP8266, т.к. функции SDK доступны из Arduino.

Далее речь пойдёт исключительно о тулчейне "esp-open-sdk". В качестве целевой платы я буду использовать плату NodeMCU ESP8266, т.к. там есть автозагрузка прошивки, но в принципе может быть использована любая другая плата на модуле ESP12E/ESP12F.

    Список используемой документации:
  1. ESP8266EX Resources | Espressif Systems Страница с доступными ресурсами по ESP8266 на сайте производителя.
  2. ESP8266 Non-OS SDK API Reference ESP8266 Non-OS SDK API Reference версия 2.2
  3. ESP8266 SDK Getting Started Guide - руководство по работе со официальным SDK
  4. ESP8266 Technical Reference
  5. Xtensa Instruction Set Architecture (ISA)
  6. Статья на хабре: "Reverse Engineering ESP8266 — часть 1"
  7. Статья на хабре: "Reverse Engineering ESP8266 — часть 2"
  8. Статья Михаила Григорьева на хабре: Работа с ESP8266: Собираем компилятор и пишем первую прошивку

Содержание:

  1. Сборка esp-open-sdk
  2. Создание базового проекта
  3. Описание API для работы с GPIO
  4. Краткое описание ассемблера Xtensa
  5. Подключение JTAG отладчика на FT232H чипе
  6. Работа с GPIO16 через NonOS-SDK, подключение библиотеки "Driver_Lib"
  7. Вывод через UART

Посмотреть исходники, сборочные файлы, скачать скомпилированные прошивки, можно с портала GITLAB https://gitlab.com/flank1er/esp8266_sdk_examples

Читать дальше