Не сохраняется программа при отключении питания

Тема в разделе "Iskra JS, Espruino, Йодо", создана пользователем nolimitcrew, 24 окт 2016.

  1. nolimitcrew

    nolimitcrew Нуб

    Добрый день.
    Подскажите в чем проблема.
    Не сохраняется программа при отключении от USB либо нажатии Reset.
     
  2. ИгорьК

    ИгорьК Гуру

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

    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 - программа запускается.

    Естественно, все эти манипуляции стоит проводить, когда программа отлажена и Вы хотите получить работающее устройство.

    Подчеркиваю - это мой ошибочный опыт. Как правильно - я не знаю.
     
  3. sys

    sys Злобный Буратино Модератор

    Шаг номер 2 из http://wiki.amperka.ru/js:ide выполнили?
    проверьте в настройках Espruino IDE наличие галочки у пункта "Save on send"
     
  4. ИгорьК

    ИгорьК Гуру

    Насколько мне понимается, если в скрипте нет функции E.on то IDE ругается без внятного объяснения причин недовольства.
    Проставление же галочки лишь автоматизирует пункт 4 (из моего поста).
     
  5. sys

    sys Злобный Буратино Модератор

  6. ИгорьК

    ИгорьК Гуру

  7. sys

    sys Злобный Буратино Модератор

    Это что касается работы опции Save on send.
    Способ описанный Вами про onInit() и E.on('init', function(){...}) тоже правильный http://www.espruino.com/Notes
    просто setBootCode выполняется раньше init'ов и, имхо, они могут быть использованы совместно...