Сборка прошивки IskraJS в Windows 10

Тема в разделе "Iskra JS, Espruino, Йодо", создана пользователем r1000ru, 13 июл 2016.

  1. r1000ru

    r1000ru JS-технократ

    Привет, коллеги. Если у вас возникло желание поиграться/расширить(сократить) функционал Espruino - ниже небольшое руководство, как делать собственные сборки под Windows 10 (изначально сборка Espruino оптимизирована под Linux и на Windows весьма не тривиальна).

    ВНИМАНИЕ! Данное руководство - не официальное от Амперки, а моя частная публикация для заинтересованных лиц. Полученная прошивка будет предназначена для STM32F4Discovery, а не для IskraJS. Полная совместимость не гарантируется. В случае утери работоспособности, будьте готовы залить оригинальную прошивку самостоятельно с использованием программатора или DFU.

    1. Ставим Linux. Шутка. Начиная со сборки 14316 в Windows 10 появилась возможность использовать встроенную подсистему Linux, на основе Ubuntu. Для активации этой подсистемы нужно:
    1.1 Зайти в параметры обновления системы, выбрать "Дополнительные параметры" и там поставить галочку "Участвовать в Insider Preview". После активации, установите доступные обновления.
    1.2 Когда новая сборка установлена (на момент публикации, это 1607, посмотреть текущую можно Start->winver), в поиске найдите "Панель управления" (классическую). Там в "Установка и удаление программ" выберите "Установка компонентов Windows", поставьте галочку на "Подсистема Windows для Linux (бета)".
    1.3 После установки компоненты и перезагрузки, нажмите Start и запустите bash.
    1.4 Будет задан вопрос о подтверждении установки, имени пользователя и его пароля. По окончанию установки, вы будете находиться в консоле bash.
    1.5 Установите необходимое программное обеспечение командой
    Код (Bash):
    sudo apt-get install git make gcc-arm-none-eabi
    1.6 Зайдите в папку, в которой будет лежать проект Espruino.
    Код (Bash):
    cd /mnt/c/Users/вашеИмяВВин/Documents
    1.7 Я предпочитаю держать проекты в отдельной папке Projects. Для ее создания вы можете воспользоваться командой:
    Код (Bash):
    mkdir Projects
    , после чего зайти в нее командой:
    Код (Bash):
    cd Projects
    1.8 Клонируйте ветку Master из репозитария https://github.com/espruino/Espruino.git:
    Код (Bash):
    git clone https://github.com/espruino/Espruino.git
    Обратите внимание, что тут нет изменений от Амперки, а значит пины P0..P13, A0..A6 будут не доступны. Необходимо обращаться по названию портов и их номеров.
    1.9 Разумеется создать папку вы можете и просто через проводник, а клонировать - через Git для Windows или какой-нибудь GUI.
    2. Для работы с кодом я использую Visual Studio Code, по этому дальнейший рассказ будет об этой IDE.
    2.1 Если VSCode у вас не установлен, скачайте его, установите и запустите.
    2.2 Выберите в меню Открыть->Папку и укажите созданную при клонировании папку Espruino.
    2.3. В VSCode консоль запускается сочетанием клавиш Ctrl+`. Но в нашем случае нужно, чтобы запускалась не консоль Windows (cmd), а bash. Для этого выберите в меню: Файл->Параметры->Параметры рабочей области (параметры Пользователя изменяют общие настройки, Рабочей области - параметры для конкретного проекта). У вас откроются два файла json. Слева файл с текущими настройками, справа - с настройками, которые переинициализируют текущие. Вам необходимо добавить строку, чтобы файл выглядел так:
    Код (Javascript):

    // Поместите параметры в этот файл, чтобы перезаписать параметры по умолчанию и пользовательские параметры.
    {
        "terminal.integrated.shell.windows": "C:\\Windows\\sysnative\\bash.exe"
    }
    2.5. Закройте файлы, запустите консоль и убедитесь, что открывается именно bash.
    2.6. В файле Makefile нет описания IskraJS, но нам подойдет прошивка от Stm32F4Discovery.
    2.8 Запустите сборку прошивки командой:
    Код (Bash):
    STM32F4DISCOVERY=1 make
    2.9 Получившийся в результате файл espruino_1v86.26_stm32f4discovery.bin вы можете прошить в IskraJS и она будет стабильно работать, а вы сможете экспериментировать с кодом.
     
    sys, acos, nailxx и ещё 1-му нравится это.
  2. sys

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

    Последнее редактирование: 14 июл 2016
  3. r1000ru

    r1000ru JS-технократ

    Изначально, когда я писал первое сообщение, я хотел привести ссылку на бранч IskraJS репозитария Амперки, но при перепроверке зашел на GitHub и увидел, что напротив репозитария нарисован замок амбарный, обыкновенный. Думаю nailxx более подробно сможет рассказать о причинах этого.