В этом проекте в качестве системы сборки используются CMake и GNU ARM-Toolchain, а для отладки — GDB/OpenOCD.
Используя эти инструменты, можно создать среду разработки, независимую от платформы и производителя чипа. Проект можно собрать с помощью терминала командной строки или таких IDE, как VSCode или KDevelop.
pacman -S cmake
.C:\Program Files\CMake\bin
, в переменную Path).brew install cmake
.GNU/Linux:
libnewlib
, которая приводит к сбою компоновщика. sudo apt install gcc-arm-none-eabi
.pacman -S arm-none-eabi-gcc arm-none-eabi-newlib
.Windows:
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:
brew tap ARMmbed/homebrew-formulae && brew install arm-none-eabi-gcc
.apt-get install openocd
.pacman -S openocd
.brew install openocd
.Перейдите в корневой каталог проекта:
cd path/to/project/directory
.
Создайте каталог с именем «build»:
mkdir build
.
Перейдите в созданный каталог «build»:
cd build
.
Выполните команду:
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 -DCMAKE_TOOLCHAIN_FILE="cmake/toolchain-arm-none-eabi.cmake" -DAPPLICATION="LoRaMac" -DSUB_PROJECT="periodic-uplink-lpp" ..
.
Также можно использовать графический интерфейс для... configure CMake, drop down menus и check boxes предоставят пользователю возможные опции.
cmake-gui ..
ccmake ..
Опции, которые может выбрать пользователь:
APPLICATION
— выбор примера приложения. Возможные варианты:
SUB_PROJECT
— пример подпроекта LoRaMac. Примечание: применимо только к выбору APPLICATION
LoRaMac. Возможные варианты:
ACTIVE_REGION
— активный регион, для которого будет инициализирован стек. Примечание: применимо только к выбору APPLICATION
LoRaMac. Возможные варианты:
MODULATION
— тип модуляции. Примечание: применимо только к выбору приложения ping-pong или rx-sensi. Возможные варианты:
USE_DEBUGGER
— включает поддержку отладчика (по умолчанию ВКЛ);BOARD
— целевая плата. Возможные варианты:
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
— определяет используемое радио. Возможные варианты:
LINKER_SCRIPT
— определяет путь к целевому файлу компоновщика;OPENOCD_BIN
— определяет путь OpenOCD;OPENOCD_INTERFACE
— определяет файл конфигурации интерфейса, который будет использоваться OpenOCD;OPENOCD_TARGET
— определяет целевой файл конфигурации, который будет использоваться 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
arm-none-eabi-gdb
file src/apps/LoRaMac/LoRaMac-classA
target extended-remote localhost:3333
monitor reset halt
load
thbreak main
continue
continue
VSCode ->EXTENSION (Crtl+Shift+x)
и найдите:
Для платформ Windows необходимо выполнить некоторые дополнительные настройки. Откройте свои настройки под Файл -> Настройки -> Настройки и добавьте следующие строки:
Добавить MinGW Makefiles в качестве предпочтительного генератора:
"cmake.preferredGenerators": [
"MinGW Makefiles",
"Ninja",
"Unix Makefiles"
]
Установите путь к CMake:
"cmake.cmakePath": "путь/к/cmake.exe"
.cmaketools.json
на основе CMakeLists.settings.json
, находящийся в каталоге .vscode
, — это место, где можно изменить параметры сборки.Debug
или Release
).launch.json
, который настраивает процесс отладки для данной платы.F5
, чтобы начать сеанс отладки.CMake: Edit the CMake Cache
.CMake: Clean rebuild
.Для получения подробной информации о расширении CMake Tools см. их репозиторий на GitHub.
apt-get install kdevelop
pacman -S kdevelop
Проект->Открыть / Импортировать проект...
и выберите верхний уровень CMakeLists.txt
каталога клонированного репозитория.-DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-arm-none-eabi.cmake
в Дополнительные аргументы
.Открыть конфигурацию...
.Выполнить->Настроить запуски...
и добавьте новый Компилированный двоичный лаунчер
.Отладчик исполняемый файл
в соответствии с вашей системой. Например /usr/bin/arm-none-eabi-gdb
.Запустить скрипт gdb
в зависимости от приложения, которое вы хотите отладить.loramac-node/build/src/apps/LoRaMac/openocd-run.gdb
.Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )