Эта библиотека больше не поддерживается, и создание ее преемника не планируется. Хотя он останется доступным для существующих пользователей nRF5 SDK, он не будет получать дальнейших обновлений или поддержки. Мы рекомендуем воздержаться от запуска новых проектов с этой библиотекой, поскольку в доступной прошивке (файлы .hex) используются устаревшие двоичные файлы SoftDevice.
pc-ble-driver
предоставляет библиотеки C/C++ для сериализации Bluetooth Low Energy nRF5 SoftDevice.
pc-ble-driver
состоит из набора статических и общих библиотек, которые обеспечивают функциональность SoftDevice приложению посредством связи через последовательный порт с микросхемой подключения nRF5, на которой работает SoftDevice и программное обеспечение для подключения, включенное здесь в виде одного шестнадцатеричного файла. Дополнительные сведения о сериализации SoftDevice см. в разделе Сериализация.
С библиотеками C/C++ можно взаимодействовать напрямую, но они также предоставляются в виде привязок более высокого уровня, которые упрощают разработку за счет снижения контроля (приемлемого в большинстве случаев):
Где «Прикладной чип» — это просто обычное оборудование (т. е. устройство Windows, Linux или macOS), хотя это также может быть, например, Arduino или Raspberry Pi.
Чтобы использовать pc-ble-driver, в вашем комплекте разработки должна быть установлена правильная прошивка. Необходимые прошивки находятся в папке hex/sd_api_v
и содержат SoftDevice и прошивку для подключения, необходимую для связи с pc-ble-driver
.
Сгенерированные библиотеки совместимы со следующими версиями API SoftDevice и микросхемами nRF5x:
connectivity__1m_with_s130_2.xx
(ИС серии nRF51 и nRF52)connectivity__<1m|*usb>_with_s132_3.xx
(только для микросхем серии nRF52)connectivity__<1m|*usb>_with_s132_5.xx
(только для микросхем серии nRF52)connectivity__<1m|*usb>_with_s132_6.xx
(только для микросхем серии nRF52)connectivity__<1m|*usb>_with_s140_6.xx
(только для микросхем серии nRF52)*usb) только для микросхем серии nRF52 с периферийным устройством USBD
СПС | Официальное название | Номер артикула | Примечания |
---|---|---|---|
PCA10028 | НАБОР ДЛЯ РАЗРАБОТКИ nRF51 | nRF6824 | |
PCA10031 | ключ nRF51 | nRF6825 | |
PCA10040 | КОМПЛЕКТ ДЛЯ РАЗРАБОТКИ nRF52 | nRF6827 | |
PCA10056 | nRF52840 {Комплект разработчика} | nRF6828 | *) |
PCA10059 | nRF52840 { Ключ } | nRF6829 | Можно использовать только прошивку для подключения с поддержкой последовательного порта Nordic USB CDC. |
*) Можно использовать как версию с последовательным портом Nordic USB CDC, так и версию SEGGER J-Link-OB (VCOM). Для использования версии последовательного порта Nordic USB CDC на PCA10056 необходимо соединить контакты P0.18 и P0.24. Выводы чипа QSPI также должны быть на месте (они есть по умолчанию). Алгоритм определения того, является ли это PCA10056 или PCA10059, заключается в проверке возможности связи с чипом QSPI. PCA10059 не имеет чипа QSPI. Обнаружение используется триггером nRF Connect DFU, чтобы определить, какой контакт использовать для сброса устройства при переключении между DFU и режимом приложения.
Эта коммуникационная библиотека работает через любой последовательный порт (UART), но чаще всего она используется через Segger J-Link USB CDC UART. Чтобы настроить необходимые драйверы J-Link, просто загрузите и установите версию, соответствующую вашей операционной системе:
После установки необходимых драйверов и подключения платы с поддержкой J-Link (например, комплектов разработчика Nordic) порт должен быть доступен.
Кроме того, вам необходимо отключить Mass Storage Device
, чтобы использовать pc-ble-driver
для связи с устройством, а также увидеть data corruption or drops issue
.
Последовательный порт будет отображаться как COMxx
. Просто проверьте раздел «Порты (COM и LPT)» в диспетчере устройств.
Последовательный порт будет выглядеть как /dev/ttyACMx
.
По умолчанию порт доступен не всем пользователям. Введите команду ниже, чтобы добавить пользователя в группу dialout
и предоставить ему доступ к последовательному порту. Обратите внимание, что для того, чтобы изменения вступили в силу, потребуется повторный вход.
$ sudo usermod -a -G dialout < username >
Чтобы служба модемманагера не пыталась подключиться к последовательному порту CDC ACM:
$ systemctl stop ModemManager.service
$ systemctl disable ModemManager.service
Последовательный порт будет выглядеть как /dev/tty.usbmodemXXXX
.
Существует известная проблема. Если у вас возникли какие-либо проблемы, проверьте ее здесь.
Для программирования прошивки подключения вам понадобится nrfjprog
, который входит в комплект инструментов командной строки nRF5x, которые можно загрузить по адресу:
Добавьте nrfjprog
и mergehex
в PATH
в Linux и macOS.
Кроме того, nRF Connect Programmer
может помочь вам запрограммировать прошивку Connectivty с поддержкой пользовательского интерфейса.
Загрузите nRF Connect Desktop и установите туда nRF Connect Programmer
.
Для компиляции pc-ble-driver
вам понадобятся следующие инструменты:
pc-ble-driver
из исходного кода. Для компиляции HEX-файлов connectivity
вам потребуются дополнительные инструменты:
connectivity
.Следуйте инструкциям по установке зависимостей на конкретной платформе:
Загрузите Visual Studio 15
или более позднюю версию и установите.
Установите Шоколадный. Установить с помощью cmd.exe
(запуск от имени администратора)
# Copy everything below
@ " %SystemRoot%System32WindowsPowerShellv1.0powershell.exe " -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command " iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1')) " && SET " PATH=%PATH%;%ALLUSERSPROFILE%chocolateybin "
Если Chocolatey
уже установлен, как описано выше, но не добавлен в PATH, запустите:
$ SET " PATH=%PATH%;%ALLUSERSPROFILE%chocolateybin "
Установите Git
.
$ choco install -y git
Установите CMake
.
$ choco install -y cmake
Установите vcpkg.
$ git clone https://github.com/Microsoft/vcpkg.git
$ cd vcpkg
$ git checkout tags/2020.04
$ . b ootstrap-vcpkg.bat
Затем добавьте местоположение vcpkg в PATH
и установите его как переменную среды VCPKG_ROOT
.
Следующие шаги необходимы только в том случае, если вы хотите скомпилировать свои собственные HEX-файлы connectivity
.
Установите ninja
.
$ choco install -y ninja
Загрузите и установите GNU Embedded Toolchain for Arm
версии 7-2018q2.
Загрузите из этого места.
Следуйте инструкциям по установке.
Установите путь установки как GNUARMEMB_TOOLCHAIN_PATH
в переменных среды. Например:
$ set GNUARMEMB_TOOLCHAIN_PATH=c: g ccarmemb
Установите Python
и pip
, а затем установите nrfutil
$ pip install nrfutil
# Reboot if installation succeeds but validation fails
Установите build-essential
.
$ sudo apt-get -y install build-essential
Установить Git
$ sudo apt-get -y install git
Если установленная версия Git
ниже требуемой, то:
$ sudo add-apt-repository ppa:git-core/ppa
$ sudo apt update
$ sudo apt install git
Установите CMake
.
$ sudo apt-get -y install cmake
Установите CMake
из исходного кода, если версия ниже требуемой.
Установите vcpkg.
$ git clone https://github.com/Microsoft/vcpkg.git
$ cd vcpkg
$ git checkout tags/2020.04
$ ./bootstrap-vcpkg.sh
Затем добавьте местоположение vcpkg в переменную среды PATH
и VCPKG_ROOT
.
Установите Ninja
.
$ sudo apt-get install ninja-build
Следующие шаги необходимы только в том случае, если вы хотите скомпилировать свои собственные HEX-файлы connectivity
.
Установите GNU Embedded Toolchain for Arm
версии 7-2018q2.
GNUARMEMB_TOOLCHAIN_PATH
в переменных среды. Установите Python
и pip
, а затем установите nrfutil
.
$ pip install nrfutil
# Reboot if installation succeeds but validation fails
# If errors persist, try updating pip itself.
Установите Xcode (>=10.1)
.
Установите gcc6
с помощью HomeBrew.
$ brew install gcc6
Установите CMake
с помощью HomeBrew.
$ brew install cmake
$ brew upgrade cmake
Установите CMake
из исходного кода, если версия ниже требуемой.
Установите vcpkg.
$ git clone https://github.com/Microsoft/vcpkg/
$ cd vcpkg
$ git checkout tags/2020.04
$ ./bootstrap-vcpkg.sh
Затем добавьте местоположение vcpkg в переменную среды PATH
и VCPKG_ROOT
.
Следующие шаги необходимы только в том случае, если вы хотите скомпилировать свои собственные HEX-файлы connectivity
.
Установите GNU Embedded Toolchain for Arm
версии 7-2018q2.
GNUARMEMB_TOOLCHAIN_PATH
в переменных среды. Установите Python
и pip
, а затем установите nrfutil
$ pip install nrfutil
# Reboot if installation succeeds but validation fails
Установите зависимости vcpkg.
# cd
# Make sure %VCPKG_ROOT% is set and added to %PATH%
$ mkdir build && cd build
$ vcpkg install asio catch2 spdlog
CMake Выберите компилятор Visual Studio для использования в соответствии с этой статьей: Сборка кода C/C++ в командной строке.
$ cmake -G Ninja ..
Скомпилировать
$ cmake --build .
При необходимости выберите конфигурацию сборки с помощью опции --config
. Обычно доступны Debug
, Release
, MinSizeRel
и RelWithDebInfo
. Например:
$ cmake --build . --config Debug
Установите зависимости vcpkg.
# cd
# Make sure $VCPKG_ROOT is set and added to $PATH
$ mkdir build && cd build
$ vcpkg install asio catch2 spdlog
CMake
$ cmake
-G Ninja
..
При необходимости выберите конфигурацию сборки с параметром -DCMAKE_BUILD_TYPE
. Обычно доступны Debug
, Release
, MinSizeRel
и RelWithDebInfo
.
При желании выберите целевую архитектуру (32 или 64-разрядную), используя опцию -DARCH
. Значения могут быть x86_32
, x86_64
, x86_32,x86_64
. Например:
$ cmake
-G Ninja
-DCMAKE_BUILD_TYPE=Debug
-DARCH=x86_32,x86_64
..
Скомпилировать
$ cmake --build .
pc-ble-driver
из исходного кода, если вы еще этого не сделали.Убедитесь, что установлены следующие переменные среды:
VCPKG_ROOT
GNUARMEMB_TOOLCHAIN_PATH
Убедитесь, что в PATH добавлены следующие пути:
VCPKG_ROOT
mergehex
Следуйте инструкциям по установке зависимостей на конкретной платформе:
Установить среду
# cd
$ SET " PATH=%PATH%;%ALLUSERSPROFILE%chocolateybin "
# Make sure environment variables have been set
# as described at beginning of this section
CMake
$ mkdir build && cd build
# Modify -DCONNECTIVITY_VERSION=a.b.c
$ cmake -G Ninja -DCOMPILE_CONNECTIVITY=1 -DCONNECTIVITY_VERSION=1.0.0 ..
COMPILE_CONNECTIVITY
имеет значение 1, чтобы включить компиляцию прошивки для подключения.
CONNECTIVITY_VERSION
определяет версию скомпилированной прошивки для подключения.
Проверьте дополнительные параметры при компиляции pc-ble-driver в Windows.
Скомпилировать
$ cmake --build . --target compile_connectivity
Файлы HEX доступны в папке hex/sd_api_v
после компиляции. Они включают SoftDevice и приложение для подключения.
Установить среду
# cd
$ export TMP=/tmp
# Make sure environment variables have been set
# as described at beginning of this section
CMake
$ mkdir build && cd build
# Modify -DCONNECTIVITY_VERSION=a.b.c
$ cmake
-G Ninja
-DCOMPILE_CONNECTIVITY=1
-DCONNECTIVITY_VERSION=1.0.0
..
COMPILE_CONNECTIVITY
имеет значение 1, чтобы включить компиляцию прошивки для подключения.
CONNECTIVITY_VERSION
определяет версию скомпилированной прошивки для подключения.
Проверьте дополнительные параметры при компиляции pc-ble-driver в Ubuntu Linux или macOS.
Скомпилировать
$ cmake --build . --target compile_connectivity
Файлы HEX доступны в папке hex/sd_api_v
после компиляции. Они включают в себя SoftDevice и приложение для подключения.
Перейдите к установке инструментов, если инструменты командной строки nRF5x еще не установлены.
Чтобы использовать эту библиотеку, вам необходимо запрограммировать прошивку подключения на микросхеме nRF5x.
Используйте инструменты командной строки nRF5x, чтобы стереть и запрограммировать микросхему:
$ nrfjprog -f NRF5 -e
$ nrfjprog -f NRF5 --program hex/sd_api_v/connectivity___with_s_...hex
Альтернативно, используйте программатор nRF Connect, чтобы стереть и запрограммировать микросхему.
Некоторые комплекты, такие как ключ pca10059 nRF52, не имеют встроенного отладчика, и их придется программировать через последовательный DFU. В Windows для правильного обнаружения комплектов операционной системой требуются драйверы устройств. Чтобы установить необходимые драйверы, убедитесь, что у вас установлена последняя версия nRF Connect for Desktop.
Программирование прошивки для подключения через последовательный DFU можно выполнить из командной строки или из nRF Connect for Desktop.
Обновление прошивки устройства с помощью nrfutil обычно выполняется в два этапа: 1: создание zip-пакета DFU и 2: выполнение процедуры DFU. ZIP-пакет DFU уже создан и включен в этот репозиторий. Чтобы запустить процедуру DFU с помощью nrfutil с готовым пакетом DFU:
nrfutil dfu usb-serial -pkg connectivity_x.x.x_usb_with_s_.._dfu_pkg.zip -p
Эти примеры служат отличной отправной точкой для разработки с помощью pc-ble-driver
. Примеры включают монитор сердечного ритма (периферийное устройство BLE) и коллектор сердечного ритма (главное устройство BLE) и демонстрируют базовую структуру приложения, построенного на pc-ble-driver
.
Чтобы быстро приступить к работе с примерами, см. example/README.md.
Если у вас возникли проблемы во время установки pc-ble-driver, пожалуйста, посетите Issues.md.
Не стесняйтесь предлагать изменения, создав запрос на включение.
Если вы планируете внести какие-либо нетривиальные изменения, начните с малого и попросите договориться, прежде чем прикладывать к этому слишком много усилий. Запрос на включение может быть отклонен, если он не соответствует текущей дорожной карте продукта.
Чтобы принять ваш запрос на включение, нам нужно, чтобы вы подписали наше Лицензионное соглашение для участников (CLA). Вы увидите инструкции по этому поводу после отправки первого запроса на включение.
Если вы обнаружите какие-либо ошибки или у вас возникнут вопросы или другие отзывы, отправьте сообщение на портале Nordic DevZone. Обратите внимание, что отчеты об ошибках должны достаточно подробно описывать, как воспроизвести ошибку.
Подробности смотрите в файле лицензии.