-
Notifications
You must be signed in to change notification settings - Fork 25
Разработка на хосте
Взято отсюда
Начиная с версии 3.6.6 библиотеки, появилась возможность отлаживать скетчи на компьютере, без необходимости программирования платы. В настоящий момент поддерживается эмуляция контроллеров esp8266 c ограничениями на аппаратные функции. Более подробно как это работает https://github.com/esp8266/Arduino/blob/master/tests/host/README.txt.
Эмуляция работает только в Linux-окружении, для запуска введите в терминале ../../onhost
из любого каталога примеров.
Для пользователей Windows возможно использовать:
- Виртуальную систему (напр. VirtualBox)
- Windows Subsystem for Linux (WSL v2)
После установки Linux-based системы необходимо:
- Установить нужные для сборки пакеты
sudo apt update && sudo apt install build-essential git && sudo apt install valgrind
- Cоздать папку для репозиториев (напр. папка
repos
на рабочем столе текущего пользователя)
mkdir /home/$USER/Desktop/repos && cd /home/$USER/Desktop/repos
- Клонировать нужные репозитории
git clone --recursive https://github.com/esp8266/Arduino.git && git clone --recursive https://github.com/GyverLibs/GyverPortal.git
- Установить переменную окружения
ESP8266
. Потребуется вводить каждый раз при открытии нового сеанса терминала, или добавить в файл~/.profile
пользователя.
export ESP8266=/home/$USER/Desktop/repos/Arduino
- Перейти в папку с отлаживаемым скетчем
cd /home/$USER/Desktop/repos/GyverPortal/examples/demos/demoAllComponents
- Запустить скрипт, который скомпилирует код и запустит web-server на http://localhost:9080/
../../onhost
Чтобы остановить работу скрипта нажать в терминале Ctrl+C
.
Скрипт при компиляции скетчей *.ino
рассматривает их как обычные *.cpp
-файлы, поэтому необходимо указывать объявления функций, расположенных вне области видимости текущего вызова.
Example
void action(); // function declaration
void setup() {
action(); // call function
}
// function definition
void action() {
// todo
}
Также можно узнать из кода, где он запущен:
#if CORE_MOCK
// this part is compiled on emulation environment only - not on hardware
#else
// this part is compiled on hardware only - not in the emulation environment
#endif
Документация в разработке, некоторые ссылки пока никуда не ведут
- Введение
- Действия
- Компоненты
- Файлы
- Системные модули
- Дизайн и вёрстка
- Всякие трюки