2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Windows10(WSL)でSpresense SDKを使用する (令和元年5月版)

Last updated at Posted at 2019-05-29

#このページについて
Windows10上で Spresense SDK を使用した開発を行うための環境を構築する手順です。

#Spresense SDKについて
ソニーが提供しているチュートリアルのページ にかかれている通り、Spresense SDK は 64bit Linux Ubuntu でしか動作しません。
しかし、Windows10 には Windows Subsystem for Linux (通称WSL) が使用でき、Windows10上でUbuntuを動作させることが可能です。
今回は、このWSL上でSpresense SDKを動かします。

と、えらそうに書いていますが...

これ以降に書くことは、ソニーが提供しているヘルプページを参考にしつつ、先人たちの知恵を最新化しただけです。先人の方々には感謝いたします。

なお、以下の先人たちの知恵を 丸パクリ 参考にいたしました。

Windows 10 on Spresense SDK の環境構築手順

WSLをインストールする

WSLがインストールされていない方は、以下ページを参考にWSLをインストールしてください。
WSL(Windows Subsystem for Linux)を使ってみた

WSLが使えるようになると、Windowsメニューに Ubuntu が追加されます。
ubuntu_menu.png

念の為アップデート

Ubuntuを起動して、コンソールから以下を入力し、OSを最新化しておきましょう。

$ sudo apt-get update
$ sudo apt-get upgrade

Spresense メインボードをPCに接続する

Spresense メインボードをUSBケーブルでPCに接続します。
おそらくドライバは自動的にインストールされると思います。

接続後、デバイスマネージャーを開いて、シリアルポートの番号をメモっておきます。
devicemanager.png

Spresense SDKの開発環境のインストール

あとは、Spresense SDKのチュートリアル のページに書かれている通りの手順で進められます。

WSLで動かすための注意点としては、

  • Spresenseのシリアルポートが COM55 として認識されている場合は、Ubuntu上では /dev/ttyS55 として使用できます。
  • コマンドから ttySXX を使う場合は、頭に sudo をつけてコマンドを実行してください。WSLでは root でないとシリアルポートが使えないようです。(※私の環境だけかも???)

##手順
以下、ほぼ Spresense SDKのチュートリアル のコピペですが、以下の手順で進められると思います。

必要なパッケージのインストール

$ sudo apt-get install git gperf libncurses5-dev flex bison gcc-arm-none-eabi genromfs pkg-config autoconf automake cmake --install-recommends

kconfig-frontends を取得し、インストール

$ git clone https://bitbucket.org/nuttx/tools.git
$ cd tools/kconfig-frontends/
$ ./configure --disable-shared
$ make
$ sudo make install

Spresense SDK リポジトリからソースコードをダウンロード

$ git clone --recursive https://github.com/sonydevworld/spresense.git

サンプルアプリケーション "Hello, World!" のビルド

$ cd spresense/sdk
$ tools/config.py --kernel release
$ tools/config.py examples/hello

ここまで実行すると、以下のような表示がされると思います。

WARNING: New loader v1.X.X is required, please download and install.
         Download URL   : https://developer.sony.com/file/download/download-spresense-firmware-v1-X-XXX
         Install command:
                          1. Extract loader archive into host PC.
                             ./tools/flash.sh -e <download zip file>
                          2. Flash loader into Board.
                             ./tools/flash.sh -l /home/hoge/spresense/firmware/spresense -c <port>

一旦 この表示をメモしておきつつ (ここ重要) 、ビルドを続けます。

$ make buildkernel
$ make

ブートローダーのインストール

先程メモした表示のとおりの手順を実行します。

  1. ダウンロードURLからファームウェアファイルをダウンロードします。
    なお github からダウンロードした SDKのバージョンと、必要なファームウェアのバージョンはリンクしていますので、必ず表示されたURLのファイルをダウンロードします。
  2. 以下の通りコマンドを実行します
$ ./tools/flash.sh -e /home/hoge/spresense-binaries-vX.X.X.zip (←ダウンロードしたファームウェアファイルのフルパス)
$ sudo ./tools/flash.sh -l /home/hoge/spresense/firmware/spresense -c /dev/ttySXX (←パス・シリアルポートの番号を自分の環境に合わせる)

なお、先人の知恵 では、ここで flash_writer.exe を使用したWindows独自のゴニョゴニョな方法を行っていますが、現(令和元年5月)時点ではそのようなゴニョゴニョの方法は必要なく、ソニーのチュートリアル通りの方法で進められます。

Spresense メインボードにサンプルをインストール

$ sudo tools/flash.sh -c /dev/ttySXX nuttx.spk (←シリアルポートの番号を自分の環境に合わせる)

正しくインストール出来た場合、Spresenseメインボードが自動的に再起動します。

動作確認

minicomをインストール

minicom をインストールしていない場合は、パッケージを追加します。

$ sudo apt-get install minicom

Spresense メインボードのコンソールに接続する

$ sudo minicom -D /dev/ttySXX -b 115200 -s  (←シリアルポートの番号を自分の環境に合わせる)

configuration のメニューが表示されますので、Serial port setup を選択し、Hardware Flow ControlNo にします。
続いて、 Enter Esc キーの順に入力し次のように表示されれば正常に起動されています。

nsh>

サンプルを実行してみます。

nsh> hello
Hello, World!

#まとめ
ということで、Windows 環境でも Spresense SDK が簡単に利用できます。
とっても便利。

#最後に
あらためて、先人の知恵達に感謝いたします。

##参考にしたページ

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?