Загорается светодиод busy при загрузке кода и Iskra зависает

Тема в разделе "Iskra JS, Espruino, Йодо", создана пользователем Владимир Пронин, 30 ноя 2017.

  1. На девственно чистую искру загружаю код.
    Первая загрузка проходит удачно. И код кстати работает исправно.
    А вот вторая загрузка не получается. IDE не реагирует. На Iskre индикатор busy.
    Вот код:

    Код (Javascript):
    SPI2.setup({baud: 3200000, mosi: B15, miso: B14, sck: B13});
    var eth = require('WIZnet').connect(SPI2, P10);
    eth.setIP({
      "ip":"10.0.1.155",
      "subnet":"255.255.255.0",
      "gateway":"10.0.1.1",
      "dns":"10.0.1.1"
    });
    var http = require("http");

    http.createServer(function (req, res) {
      req.on('data',function(data) { console.log(data); });
      res.writeHead(200, {'Access-Control-Allow-Origin': '*'});
      res.write('Hello World');
      res.end();
    }).listen(80);
    если перезагрузить Iskra и залить "мигающий светодиод", то все становится норм. И так по кругу.
     
  2. acos

    acos Официальный гик Администратор

  3. Morgan

    Morgan Гик

    Какая версия прошивки?

    Ещё со скобками беда:
    Код (Javascript):
    http.createServer(function (req, res) {
      req.on('data',function(data) {
        console.log(data);
        res.writeHead(200, {'Access-Control-Allow-Origin': '*'});
        res.write('Hello World');
        res.end();
      });
    }).listen(80);
     
  4. прошивка последняя. Сегодня скачал и прошил. 1.92.193
    а со скобками какая беда?
     
  5. а, про скобки понял. Все засунули в обработчик .on
    но и этот код тоже подвешивает Искру при повторной отправки кода в нее.
    может др.Eth шилд попробовать?...
     
  6. Взял другую Искру и другой Ehternet Shield
    - все равно зависает, при повторной заливке кода. И на Искре лампочка busy.
    что ж делать?
     
  7. acos

    acos Официальный гик Администратор

    Зависает любой код из примеров в вики, или только этот?
    Что ещё подключено кроме IskraJS и Ethernet Shield?
    Сможете сфоткать и выложить свою сборку?
     
  8. sdfg

    sdfg Гик

    может быть переустановить среду
     
  9. ARDUIN-щик

    ARDUIN-щик Гик

    Уберите все датчики, модули и т. п.

    Далее перезагрузите компьютер, отсоединив искру от него
     
  10. ARDUIN-щик

    ARDUIN-щик Гик

    Не поможет, искру не видит комп, а не среда
     
  11. Зависает только этот код. В остальном все в порядке.
    Пробовал менять искру и ethernet shield (у меня их 3)
    Прошивал до последней прошивки
    Из подключенного только Искра и Eth шилд. Сфоткать сейчас не могу, но вы все их хорошо знаете.
    На искре джампер на 5Вольт выставлен.
    Если закомментировать функцию createServer, то все становится нормально. Видимо проблема в ней

    Повторюсь: код работает исправно, если зальется на Искру. Проблема в том, что он второй раз подряд не заливается. Приходится сначала заливать что-то простое (типа мигающего светодиода) или вообще пустой код. А потом уже этот.
    но так же быть не должно
     
  12. Попробуйте, у кого есть Eth шилд, залить себе такой код дважды, трижды подряд. И отпишитесь, пожалуйста.
    P.S. IDE переустанавливал, комп перезагружал, драйвера удалял-ставил, плату перепрошивал
     
  13. еще попробовал на другом компьютере - тоже самое.
    повторно не загружает код после добавления функции http.createServer. Все взято из примеров, должно работать. Странно.
    IMG_1075.JPG
    Ethernet кабель во время прошивки, разумеется, вставлен.
     
    Последнее редактирование: 4 дек 2017
  14. sdfg

    sdfg Гик

    перед прошивкой снимите шилд. а потом уже одевайте (после прошивки).
     
  15. К сожалению, это не помогает.
    К тому же каждый раз разбирать "пирог", чтоб перепрошить - это не вариант. Особенно, когда пишешь программу и отлаживаешь, прошивать приходится часто
     
  16. sys

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

    Есть такое дело с зависоном. Решается все просто. Не надо ничего разбирать.
    - Зависон платы после неудачной попытки прошить решается кнопкой reset на плате.
    - А в дальнейшем перед заливкой нового кода в консоле IDE выполните команду reset() и только потом прошивайте новым кодом. И советую так делать всегда - помогает избегать неудобств ;)
     
  17. Спасибо! Это решает проблему. Работа стала веселее.
    Но все же это костыль.
    любой другой код (без createServer) прошивается сразу без проблем.
     
  18. sys

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

    Любой другой код не имеет особенностей сервера. Если Вы вникнете в суть процессов происходящих внутри при работе сервера Вы не будете столь критичны к данному "костылю"
     
  19. ну что ж, видимо так.
    у меня все стало прошиваться без проблем. Мой код работает. Искра при перепрошивке не зависает.
    вопрос считаю решенным, тему закрытой.
    Всех благодарю за помощь!

    ИТОГО: Решение: В консоле IDE выполнить команду reset() и только потом прошивать новым кодом