Добрый день. Подскажите в чем проблема. Не сохраняется программа при отключении от USB либо нажатии Reset.
Это не проблема, а особенность. Программа, будучи загруженной в память стандартной кнопочкой, исполняется, но не сохраняется для загрузки при старте. Для правильного понимания вопроса лучше бы иметь подробное вики от авторов, но они как-то стесняются. Попробую объяснить как действую я, возможно и неправильно. 1. Логически разбейте Вашу программу на две части: - 1.1. всякие "отдельностоящие" функции, - 1.2. то, что запускает программу в работу. Обычно это постоянно действующие таймеры (setInterval()) или, нечто, наблюдающее за чем-то (Serial.on()) 2. То, что выделено по п. 1.2. заключаете в функцию Код (Javascript): E.on('init',function(){... /вот здесь и находится п. 1.2 / }); Источник мудрости: http://www.espruino.com/Reference#l_E_init 3. Загружаете в плату кнопкой. Ничего не происходит, ничего не запускается. 4. В терминале выполняете save(). Опять ничего не происходит. 5. А вот если нажать Reset - программа запускается. Естественно, все эти манипуляции стоит проводить, когда программа отлажена и Вы хотите получить работающее устройство. Подчеркиваю - это мой ошибочный опыт. Как правильно - я не знаю.
Шаг номер 2 из http://wiki.amperka.ru/js:ide выполнили? проверьте в настройках Espruino IDE наличие галочки у пункта "Save on send"
Насколько мне понимается, если в скрипте нет функции E.on то IDE ругается без внятного объяснения причин недовольства. Проставление же галочки лишь автоматизирует пункт 4 (из моего поста).
Это что касается работы опции Save on send. Способ описанный Вами про onInit() и E.on('init', function(){...}) тоже правильный http://www.espruino.com/Notes просто setBootCode выполняется раньше init'ов и, имхо, они могут быть использованы совместно...