u-blox 公開技術コンテンツ

はじめに

NINA-B1のnRF52832を採用しています。です。NORDICのSDKを用いての開発が可能となっています。ここでは、GCCを用いて環境を構築し、EVK-NINA-B1への書き込み、動作確認まで行います。実施アイテムは下記となります。内容はNINA-B1のシステム・インテグレーション・マニュアルに載っているコンテンツをまとめたものです。

1. ツールのインストール、SDKの展開

2. サンプルコート等々の修正

2.1 ツールを動作させるため修正

2.2 EVK-NINA-B1に対応させる為の修正

3. 実際のBuildと書き込み

4. iPhone/Android と接続しての動作確認


1.ツールのインストール、SDKの展開

ツールのインストールは下記を参考にしました。

https://devzone.nordicsemi.com/tutorials/7/

必要なツールは下記になります。

■ "GNU ARM Embedded Toolchain" のインストール

下記のURLからダンロードしインストールします。今回はVer 6-2017-q2-updateを用いました。

https://developer.arm.com/open-source/gnu-toolchain/gnu-rm/downloads

■ make 等々ツール のインストール

下記のURLからダウンロードし、PATHを通します。今回はgnuarmeclipse-build-tools-win64-2.6-201507152002-setup.exeを用いました。

https://sourceforge.net/projects/gnuarmeclipse/files/Build%20Tools/

■ SDKの入手と展開

下記のURLのからSDKを入手します。今回は nRF5-SDK-zip(Ver 14.0.0) を用いました。

https://www.nordicsemi.com/eng/Products/Bluetooth-low-energy/nRF5-SDK

なるべく浅い場所に展開します。(SDK自体が深いディレクトリなので)今回は C:\L\src に展開しました。

最低限の試行はこれで可能です。


2.サンプルコート等々の修正

2.1 ツールを動作させるため修正

■ BINツールのPATHを下記で設定します。

C:\L\src\nRF5_SDK_14.0.0_3bcc1f7\components\toolchain\gcc\Makefile.windows を下記のように修正しました。

GNU_INSTALL_ROOT := C:/Program Files (x86)\GNU Tools ARM Embedded/6 2017-q2-update

GNU_VERSION := 6.3.1

GNU_PREFIX := arm-none-eabi

2.2 EVK-NINA-B1に対応させる為の修正

サンプルコードは、Nordicの評価ボードを対象に作られていますので、UART/LED/ボタン の配置が異なります。その為に、EVK-NINA-B1に対応させるためにはソースコードを追加します。

1.custom_board.hファイルの作成

具体的には、下記を新規作成します。

C:\L\src\nRF52_Eclipse\nRF5_SDK_13.1.0_7ca7556\components\boards\custom_board.h

2.Makefile.hファイルの修正

ここでは、ble_app_uart をコンパイルします。pca10040 のフォルダーをそのままコピーした EVK_NINA_B1 フォルダーで作業します。examples\ble_peripheral\ble_app_uart\EVK_NINA_B1\s132\armgcの下のMakeFile の下記の部分を修正します。

ASMFLAGS += -DBOARD_PCA10040 ASMFLAGS += -DBOARD_CUSTOM

3.実際のBuildと書き込み

ここでは、コンパイルから書き込みを行います。EVK-NINA-B1 の接続と、ドライバーのインストールを済ませておいてください。作業ディレクトリは examples\ble_peripheral\ble_app_uart\EVK_NINA_B1\s132\armgc になります。上記の修正の後、下記コマンドを連続で入力することで、デバイスの書き込みまで行われます。

  • make:コンパイル①
  • make erace:デバイスの Flash ROM の消去。②
  • make flash:コンパイルしたファイルの書き込み。③
  • make flash_softdevice:Nordic のソフトデバイスの書き込み。④

ログを下記に示します。

C:\nRF5_SDK_13.1.0_7ca7556\examples\ble_peripheral\ble_app_uart\EVK_NINA_B1\s132\armgcc>make← Build する。①

mkdir _build

Compiling file: nrf_log_backend_serial.c

Compiling file: nrf_log_frontend.c

Compiling file: app_button.c

Compiling file: app_error.c

Compiling file: app_error_weak.c

Compiling file: app_fifo.c

Compiling file: app_scheduler.c

Compiling file: app_timer.c

Compiling file: app_uart_fifo.c

Compiling file: app_util_platform.c

Compiling file: fstorage.c

Compiling file: hardfault_implementation.c

Compiling file: nrf_assert.c

Compiling file: nrf_strerror.c

Compiling file: retarget.c

Compiling file: boards.c

Compiling file: nrf_drv_clock.c

Compiling file: nrf_drv_common.c

Compiling file: nrf_drv_gpiote.c

Compiling file: nrf_drv_uart.c

Compiling file: bsp.c

Compiling file: bsp_btn_ble.c

Compiling file: bsp_nfc.c

Compiling file: main.c

Compiling file: RTT_Syscalls_GCC.c

Compiling file: SEGGER_RTT.c

Compiling file: SEGGER_RTT_printf.c

Compiling file: ble_advdata.c

Compiling file: ble_advertising.c

Compiling file: ble_conn_params.c

Compiling file: ble_srv_common.c

Compiling file: nrf_ble_gatt.c

Assembling file: gcc_startup_nrf52.S

Compiling file: system_nrf52.c

Compiling file: ble_nus.c

Compiling file: softdevice_handler.c

Linking target: _build/nrf52832_xxaa.outtext data bss dec hex filename

29216 140 2776 32132 7d84 _build/nrf52832_xxaa.outPreparing: _build/nrf52832_xxaa.hex

Preparing: _build/nrf52832_xxaa.binC:\nRF5_SDK_13.1.0_7ca7556\examples\ble_peripheral\ble_app_uart\EVK_NINA_B1\s132\armgcc>make erase   ← Flash の内容を消去②

nrfjprog --eraseall -f nrf52

Erasing code and UICR flash areas.

Applying system reset.C:\nRF5_SDK_13.1.0_7ca7556\examples\ble_peripheral\ble_app_uart\EVK_NINA_B1\s132\armgcc>make flash ← Build結果を書き込③

Flashing: _build/nrf52832_xxaa.hex

nrfjprog --program _build/nrf52832_xxaa.hex -f nrf52 --sectorerase

Parsing hex file.

Erasing page at address 0x1F000.

Erasing page at address 0x20000.

Erasing page at address 0x21000.

Erasing page at address 0x22000.

Erasing page at address 0x23000.

Erasing page at address 0x24000.

Erasing page at address 0x25000.

Erasing page at address 0x26000.

Applying system reset.

Checking that the area to write is not protected.

Programing device.

nrfjprog --reset -f nrf52

Applying system reset.

Run.C:\nRF5_SDK_13.1.0_7ca7556\examples\ble_peripheral\ble_app_uart\EVK_NINA_B1\s132\armgcc>make flash_softdevice ← softdeviceを書き込む④

Flashing: s132_nrf52_4.0.2_softdevice.hex

nrfjprog --program ../../../../../../components/softdevice/s132/hex/s132_nrf52_4.0.2_softdevice.hex -f nrf52 --sectorerase

Parsing hex file.

Erasing page at address 0x0.

Erasing page at address 0x1000.

Erasing page at address 0x2000.

Erasing page at address 0x3000.

Erasing page at address 0x4000.

Erasing page at address 0x5000.

Erasing page at address 0x6000.

Erasing page at address 0x7000.

Erasing page at address 0x8000.

Erasing page at address 0x9000.

Erasing page at address 0xA000.

Erasing page at address 0xB000.

Erasing page at address 0xC000.

Erasing page at address 0xD000.

Erasing page at address 0xE000.

Erasing page at address 0xF000.

Erasing page at address 0x10000.

Erasing page at address 0x11000.

Erasing page at address 0x12000.

Erasing page at address 0x13000.

Erasing page at address 0x14000.

Erasing page at address 0x15000.

Erasing page at address 0x16000.

Erasing page at address 0x17000.

Erasing page at address 0x18000.

Erasing page at address 0x19000.

Erasing page at address 0x1A000.

Erasing page at address 0x1B000.

Erasing page at address 0x1C000.

Erasing page at address 0x1D000.

Erasing page at address 0x1E000.

Applying system reset.

Checking that the area to write is not protected.

Programing device.

nrfjprog --reset -f nrf52

Applying system reset.

Run.C:\L\src\nRF52_Eclipse\nRF5_SDK_13.1.0_7ca7556\examples\ble_peripheral\ble_app_uart\EVK_NINA_B1\s132\armgcc>

4.iPhone/Android と接続しての動作確認

ここでは、iPhoneでの接続テストの実際を紹介います。iPhone のツールとして NORICの"nRF Toolbox "をインストールしておきます。ツールを立ち上げて、UARTを選択します。CONNECTから "Nordic_UART"を選択します。ボタンの設定は適宜お願いします。私は■に"STOP"を▲に"START"を設定しました。PC側で、ターミナルを立ち上げて( 115200 8N )接続しておけば、ボタンを押すたびに、start/stop が表示されます。(androidにも同様のツールが有りますのでお試しください。)

本文書の内容、不明点を持って、該当ハードウエア、ソフトウエアの部門への質問はお控えください。富士エレクトロニクスとしては、こちらで、お問い合わせを承っております。気軽にご利用ください。

取り扱いメーカー

お問い合わせ