1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/lupyuen-LoRaMac-node-nuttx

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
development-environment.md 17 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 29.11.2024 22:21 70f2e33

Введение

В этом проекте в качестве системы сборки используются CMake и GNU ARM-Toolchain, а для отладки — GDB/OpenOCD.

Используя эти инструменты, можно создать среду разработки, независимую от платформы и производителя чипа. Проект можно собрать с помощью терминала командной строки или таких IDE, как VSCode или KDevelop.

Необходимые условия

  • CMake версии 3.6 и выше:
    • GNU/Linux:
      • Ubuntu 16.04/ Linux Mint 18: поскольку официальная версия из репозитория слишком старая, можно использовать, например, PPA.
      • Linux Arch: pacman -S cmake.
    • Windows:
      • CMake Download. Примечание: используйте последнюю полную версию и убедитесь, что путь к CMake добавлен в системную переменную PATH (в Windows 10 найдите «Переменные среды» в меню «Пуск» и добавьте путь установки CMake, например C:\Program Files\CMake\bin, в переменную Path).
    • OSX:
      • Homebrew: brew install cmake.
  • GNU ARM-Toolchain:
    • GNU/Linux:

      • Ubuntu 16.04/ Linux Mint 18: поскольку официальная версия из репозитория слишком старая, можно использовать, например, PPA.
      • Ubuntu 18.04: в инструментарии была обновлена версия, но есть ошибка с libnewlib, которая приводит к сбою компоновщика. sudo apt install gcc-arm-none-eabi.
      • Linux Arch: pacman -S arm-none-eabi-gcc arm-none-eabi-newlib.
    • Windows:

      • GNU Arm Embedded Toolchain.
      • Также требуется утилита Make, которую можно получить, например, через MSYS2 или MinGW.
        • С MSYS2:
          • Следуйте инструкциям по установке.
          • Установите MinGW Make с pacman -S mingw-w64-x86_64-make.

      Примечание: убедитесь, что оба пути добавлены в системную переменную PATH. Добавьте, например: C:\msys64\mingw64\bin и C:\Program Files (x86)\GNU Tools ARM Embedded\6 2017-q2-update\bin в переменную Path.

    • OSX:

      • Homebrew: brew tap ARMmbed/homebrew-formulae && brew install arm-none-eabi-gcc.
  • OpenOCD:
    • GNU/Linux:
      • Ubuntu 16.04/ Linux Mint 18: apt-get install openocd.
      • Linux Arch: pacman -S openocd.
    • Windows:
      • Неофициальные бинарные пакеты доступны здесь для скачивания. Примечание: конфигурация отладки для VSCode предполагает, что OpenOCD установлен в C:/openocd. Если это не так, необходимо изменить переменную OPENOCD_BIN в соответствии с правильным местоположением.
    • OSX:
      • Homebrew: brew install openocd.

Инструкции по сборке в командной строке

  1. Перейдите в корневой каталог проекта:

    cd path/to/project/directory.

  2. Создайте каталог с именем «build»:

    mkdir build.

  3. Перейдите в созданный каталог «build»:

    cd build.

  4. Выполните команду:

    cmake -DCMAKE_TOOLCHAIN_FILE="cmake/toolchain-arm-none-eabi.cmake" ...

Примечание: если GNU ARM-Toolchain установлен не по умолчанию (GNU Linux: /usr, Mac OS: /usr/local), необходимо указать префикс:
cmake -DCMAKE_TOOLCHAIN_FILE="cmake/toolchain-arm-none-eabi.cmake" -DTOOLCHAIN_PREFIX="/path/to/the/toolchain" ...
Для платформ Windows префикс должен быть указан в любом случае, и дополнительно должен быть выбран генератор CMake для MinGW Makefiles:
cmake -DCMAKE_TOOLCHAIN_FILE="cmake/toolchain-arm-none-eabi.cmake" -DTOOLCHAIN_PREFIX="/path/to/the/toolchain" -G "MinGW Makefiles" ...

Доступные параметры конфигурации для CMake

Возможность выбора приложения, целевой платы и других параметров доступна с использованием предоставленных параметров конфигурации.

Эти параметры конфигурации можно задать с помощью дополнительных параметров командной строки, например:
cmake -DCMAKE_TOOLCHAIN_FILE="cmake/toolchain-arm-none-eabi.cmake" -DAPPLICATION="LoRaMac" -DSUB_PROJECT="periodic-uplink-lpp" ...

Также можно использовать графический интерфейс для... configure CMake, drop down menus и check boxes предоставят пользователю возможные опции.

  • CMake QT GUI с cmake-gui ..
  • CMake curses interface с ccmake ..

Опции, которые может выбрать пользователь:

  • APPLICATION — выбор примера приложения. Возможные варианты:
    • LoRaMac (по умолчанию),
    • ping-pong,
    • rx-sensi,
    • tx-cw;
  • SUB_PROJECT — пример подпроекта LoRaMac. Примечание: применимо только к выбору APPLICATION LoRaMac. Возможные варианты:
    • periodic-uplink-lpp,
    • fuota-test-01;
  • ACTIVE_REGION — активный регион, для которого будет инициализирован стек. Примечание: применимо только к выбору APPLICATION LoRaMac. Возможные варианты:
    • LORAMAC_REGION_EU868,
    • LORAMAC_REGION_US915,
    • LORAMAC_REGION_CN779,
    • LORAMAC_REGION_EU433,
    • LORAMAC_REGION_AU915,
    • LORAMAC_REGION_AS923,
    • LORAMAC_REGION_CN470,
    • LORAMAC_REGION_KR920,
    • LORAMAC_REGION_IN865,
    • LORAMAC_REGION_RU864;
  • MODULATION — тип модуляции. Примечание: применимо только к выбору приложения ping-pong или rx-sensi. Возможные варианты:
    • LORA,
    • FSK;
  • USE_DEBUGGER — включает поддержку отладчика (по умолчанию ВКЛ);
  • BOARD — целевая плата. Возможные варианты:
    • NAMote72,
    • NucleoL073 (по умолчанию),
    • NucleoL152,
    • NucleoL476,
    • SAMR34,
    • SKiM880B,
    • SKiM980A,
    • SKiM881AXL;
  • REGION_EU868 — включает поддержку региона EU868 (по умолчанию ВКЛ);
  • REGION_US915 — включает поддержку региона US915 (по умолчанию ВЫКЛ);
  • REGION_CN779 — включает поддержку региона CN779 (по умолчанию ВЫКЛ);
  • REGION_EU433 — включает поддержку региона EU433 (по умолчанию ВЫКЛ);
  • REGION_AU915 — включает поддержку региона AU915 (по умолчанию ВЫКЛ);
  • REGION_AS923 — включает поддержку региона AS923 (по умолчанию ВЫКЛ);
  • REGION_CN470 — включает поддержку региона CN470 (по умолчанию ВЫКЛ);
  • REGION_KR920 — включает поддержку региона IN865 (по умолчанию ВЫКЛ);
  • REGION_IN865 — включает поддержку региона AS923 (по умолчанию ВЫКЛ);
  • REGION_RU864 — включает поддержку региона RU864 (по умолчанию ВЫКЛ).

Опции, которые устанавливаются автоматически:

  • RADIO — определяет используемое радио. Возможные варианты:
    • sx1272,
    • sx1276;
  • LINKER_SCRIPT — определяет путь к целевому файлу компоновщика;
  • OPENOCD_BIN — определяет путь OpenOCD;
  • OPENOCD_INTERFACE — определяет файл конфигурации интерфейса, который будет использоваться OpenOCD;
  • OPENOCD_TARGET — определяет целевой файл конфигурации, который будет использоваться OpenOCD.

Отладка

  1. OpenOCD
    OpenOCD должен быть запущен с параметрами, зависящими от используемого устройства отладки и целевой платы. Некоторые примеры приведены ниже:
  • NucleoL073 + STLinkV2-1 (встроенный отладчик):
    openocd -f interface/stlink-v2-1.cfg -f target/stm32l0.cfg

  • SAMR34 Xplained Pro (встроенный отладчик, протестирован с openocd 0.10, не работал с 0.9): openocd -f interface/cmsis-dap.cfg -f target/at91samdXX.cfg

  1. GDB
    Приведённый ниже пример использования GDB показывает, как начать сеанс отладки, записать программу во флэш-память и запустить её.
  • Запустите ARM-GNU GDB с помощью команды:
    arm-none-eabi-gdb
  • Выберите программу, которую хотите отладить:
    file src/apps/LoRaMac/LoRaMac-classA
  • Подключите GDB к OpenOCD:
    target extended-remote localhost:3333
  • Выполните сброс и остановку цели:
    monitor reset halt
  • Загрузите программу в целевую флэш-память:
    load
  • Добавьте одноразовую точку останова в main:
    thbreak main
  • Запустите программу до точки останова:
    continue
  • Наконец, запустите программу:
    continue

Поддержка IDE

VSCode

Дополнительные требования

  • Visual Studio Code:
  • Расширения: откройте VSCode ->EXTENSION (Crtl+Shift+x) и найдите:
    • C/C++
    • CMake
    • CMake Tools
    • Native Debug

Конфигурация

Для платформ Windows необходимо выполнить некоторые дополнительные настройки. Откройте свои настройки под Файл -> Настройки -> Настройки и добавьте следующие строки:

Добавить MinGW Makefiles в качестве предпочтительного генератора:

"cmake.preferredGenerators": [
        "MinGW Makefiles",
        "Ninja",
        "Unix Makefiles"
    ]

Установите путь к CMake:

    "cmake.cmakePath": "путь/к/cmake.exe"

Использование

  1. Откройте каталог клонированного репозитория.
    Расширение CMake Tools автоматически сгенерирует файл .cmaketools.json на основе CMakeLists.
  2. Файл settings.json, находящийся в каталоге .vscode, — это место, где можно изменить параметры сборки.
    Это параметры сборки, которые будут предоставлены CMake.
    Информацию о параметрах сборки см. в главе Инструкции по сборке из командной строки.
  3. Нажмите на синюю строку состояния CMake Tools, чтобы выбрать тип сборки (Debug или Release).
    Будет выполнен процесс настройки CMake.
  4. Теперь будет доступна кнопка Build.
    Нажмите эту кнопку, чтобы собрать цель.
  5. Система сборки CMake автоматически создаст файл launch.json, который настраивает процесс отладки для данной платы.
  6. Нажмите клавишу F5, чтобы начать сеанс отладки.
    Автоматически запустится GDB и OpenOCD.

Полезные советы

  • Измените параметры CMake: откройте командную палитру (Crtl+Shift+P) и введите CMake: Edit the CMake Cache.
  • Выполните чистую перестройку: откройте командную палитру (Crtl+Shift+P) и введите CMake: Clean rebuild.

Для получения подробной информации о расширении CMake Tools см. их репозиторий на GitHub.

KDevelop

Дополнительные требования

  • KDevelop:
    • GNU/Linux:
      • Ubuntu 16.04/ Linux Mint 18: apt-get install kdevelop
      • Linux Arch: pacman -S kdevelop
    • Windows:
      • Скачать KDevelop
        Примечание: в настоящее время поддержка GDB отсутствует, но она запланирована для будущих выпусков.
    • OSX:
      • Скачать KDevelop.
        Официальные двоичные файлы недоступны. Необходимо собрать из исходного кода.

Использование

  1. Чтобы открыть проект, нажмите Проект->Открыть / Импортировать проект... и выберите верхний уровень CMakeLists.txt каталога клонированного репозитория.
    Следуйте указаниям, чтобы настроить проект и добавить -DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-arm-none-eabi.cmake в Дополнительные аргументы.
  2. Параметры CMake и переменные можно изменить, щёлкнув правой кнопкой мыши на проекте и выбрав Открыть конфигурацию....
    Появится графический интерфейс.
    См. главу Инструкции по сборке из командной строки для получения информации о параметрах сборки.
  3. Щёлкните Build, чтобы построить проект.
  4. Создайте конфигурацию запуска для отладки:
    • Нажмите Выполнить->Настроить запуски... и добавьте новый Компилированный двоичный лаунчер.
    • Установите поле Отладчик исполняемый файл в соответствии с вашей системой. Например /usr/bin/arm-none-eabi-gdb.
    • Выберите Запустить скрипт gdb в зависимости от приложения, которое вы хотите отладить.
      Например: loramac-node/build/src/apps/LoRaMac/openocd-run.gdb.
      Примечание: система сборки CMake автоматически сгенерирует скрипт запуска GDB.
  5. Запустите OpenOCD в терминале командной строки, как описано в разделе Отладка.
  6. Щёлкните «Отладка», чтобы запустить сеанс отладки.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/lupyuen-LoRaMac-node-nuttx.git
git@api.gitlife.ru:oschina-mirror/lupyuen-LoRaMac-node-nuttx.git
oschina-mirror
lupyuen-LoRaMac-node-nuttx
lupyuen-LoRaMac-node-nuttx
master