Skip to content

Середовище розробки Windows (засноване на Cygwin)

WARNING

This development environment is community supported and maintained. Це може працювати або не працювати з поточними версіями PX4.

Цей інструментарій був рекомендований раніше, але наразі не працює з PX4 v1.12 і новіше через проблеми з пакетами. The Windows WSL2-Based Development Environment should be used by preference.

Дивіться Встановлення інструментарію для інформації про середовища та інструменти, що підтримуються основною командою розробників.

Наступні інструкції пояснюють як налаштувати (на базі Cygwin) середовище розробки на Windows 10 для PX4. Це середовище може бути використане для збірки PX4 для:

  • Pixhawk та іншого апаратного забезпечення на основі NuttX
  • jMAVSim Simulation

Інструкції з установки

  1. Download the latest version of the ready-to-use MSI installer from: Github releases or Amazon S3 (fast download).

  2. Запустіть, оберіть потрібне місце установки, дочекайтесь встановлення:

    jMAVSimOnWindows

  3. Tick the box at the end of the installation to clone the PX4 repository, build and run simulation with jMAVSim (this simplifies the process to get you started).

    INFO

    If you missed this step you will need to clone the PX4-Autopilot repository manually.

:::

WARNING

At time of writing the installer is missing some dependencies (and cannot yet be rebuilt to add them - see PX4-windows-toolchain#31).

Щоб додати їх самостійно:

  1. Перейдіть в директорію встановлення інструментів (за замовчуванням C:\PX4\)

  2. Run run-console.bat (double click) to start the linux-like Cygwin bash console

  3. Введіть в консолі наступну команду:

    sh
    pip3 install --user kconfiglib jsonschema future

Початок роботи

The toolchain uses a specially configured console window (started by running the run-console.bat script) from which you can call the normal PX4 build commands:

  1. Перейдіть в директорію встановлення інструментів (за замовчуванням C:\PX4\)

  2. Run run-console.bat (double click) to start the linux-like Cygwin bash console (you must use this console to build PX4).

  3. Клонуйте репозиторій PX4 PX4-Autopilot з цієї консолі:

    INFO

    Skip this step if you ticked the installer option to clone the PX4 repository, build and run simulation with jMAVSim. Клонування потрібно зробити тільки один раз!

:::

sh
# Clone the PX4-Autopilot repository into the home folder & loads submodules in parallel
git clone --recursive -j8 https://github.com/PX4/PX4-Autopilot.git

Тепер можна використовувати консоль/PX4-Autopilot репозиторій для збірки PX4.

  1. Наприклад, для запуску JMAVSim:

    sh
    # Navigate to PX4-Autopilot repo
    cd Firmware
    # Build and runs SITL simulation with jMAVSim to test the setup
    make px4_sitl jmavsim

    Після цього консоль покаже:

    jMAVSimOnWindows

Наступні кроки

Після того, як ви закінчите налаштування інструментів командного рядка:

Усунення проблем

Інструменти моніторингу файлів проти швидкості інструментарію

Антивірус та інші інструменти моніторингу файлів у фоні можуть суттєво сповільнити встановлення інструментів та збірки PX4.

Можливо знадобиться тимчасово зупинити їх під час збірки (на власний розсуд).

Windows & Git Special Cases

Символи закінчення рядків Windows CR+LF проти Unix LF

Ми рекомендуємо примусити використання закінчення рядків Unix LF для кожного репозиторію, з яким ви працюєте з цим інструментарієм (також використовуйте редактор, який залишає їх незмінними під час збереження змін, тобто Eclipse або VSCode). Compilation of source files also works with CR+LF endings checked out locally, but there are cases in Cygwin (e.g. execution of shell scripts) that require Unix line endings (otherwise you get errors like $'\r': Command not found.). На щастя, git може це зробити для вас, якщо виконаєте дві команди в кореневому каталозі вашого репозиторію:

sh
git config core.autocrlf false
git config core.eol lf

Якщо ви працюєте з цим інструментарієм в декількох репозиторіях, ви також можете встановити ці дві конфігурації глобально для вашого комп'ютера:

sh
git config --global ...

Це не рекомендується, оскільки це може вплинути на будь-які інші (непов'язані) випадки використання git на вашій Windows машині.

Біт виконання прав доступу Unix

Під Unix є прапорець в правах доступу кожного файлу, який вказує на те, чи дозволено файлу виконуватись. git under Cygwin supports and cares about that bit (even though the Windows NTFS file system does not use it). This often results in git finding "false-positive" differences in permissions. Вивід diff в результаті може виглядати так:

sh
diff --git ...
old mode 100644
new mode 100755

Ми рекомендуємо відключити глобально перевірку прав доступу у Windows, щоб уникнути проблем:

sh
# глобально відключити перевірку біту виконання для комп'ютера
git config --global core.fileMode false

Для наявних репозиторіїв, що мають цю проблему викликану локальною конфігурацією, додатково виконайте:

sh
# прибрати локальну конфігурацію, щоб застосувати глобальну
git config --unset core.filemode

# прибрати локальну конфігурацію для всіх підмодулів
git submodule foreach --recursive git config --unset core.filemode