[lang:ja] FOTAのビルド環境構築(Linux編)
とりあえずメモ帳状態。
LinuxにDS-5をインストールして、mbed SDKをビルドできるようにしたのでメモ。
必要なツール
- CentOS 6.5 64bit
- DS-5
- git
- cmake
- srec_cat
必要なコード
- dfu-bootloader
- mbed SDK
- mbed lib BLE_API Rev.122
- mbed lib nRF51822 Rev.68
- Nordic nrf51822-sdk-v6.1.0(nRF51-SDK-zip)
CentOS
VMware Fusionに、「Linux簡易インストール」でインストール。そんだけ。
たしか、ユーザーがsudoerに追加されていなかったので追加した。
日本語が扱えないので、sudo yum -y groupinstall "Japanese Support"してインストール。
DS-5
インストーラーを落としてきて、解凍。install_x86_64.shを実行してインストール。
DS-5は依存ライブラリが必要なので、Missing DS-5 Linux dependenciesからインストールスクリプトを手に入れて実行。CentOS x64なので、ds-deps-rh6_64.shを使った。
github
gitが入っていなかったので、sudo yum install gitでインストール。
CMake
FOTAのビルドには、CMakeの2.8以上が必要らしい。CentOS 6.5のrpmでは、古くてダメだったので、新しいのをビルドする。
sudo yum install ncurses-devel sudo yum install gcc-c++ wget http://dl.atrpms.net/el6-x86_64/atrpms/testing/cmake-2.8.8-4.el6.x86_64.rpm tar xvzf cmake-2.8.12.2.tar.gz cd cmake-2.8.12.2 ./configure gmake sudo gmake install
srec_cat
HEXファイルの操作をするツールらしい。
wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm sudo rpm -Uvh epel-release-6-8.noarch.rpm sudo yum install srecord-devel
mbed SDK
SoftDeviceのバージョンが今のオンラインコンパイラと異なるので、前提になっているリリースに巻き戻した。
git checkout refs/tags/mbed_lib_rev89
mbed SDKのビルドの確認
最初に、workspace_toolsディレクトリの中に"private_settings.py"とファイルを作り、次の様な内容の設定を書きます。
from os.path import join, abspath, dirname armcc = "ds-5" # "keil", or "standalone", or "ds-5" if armcc == "ds-5": ARM_PATH = "/usr/local/DS-5" ARM_BIN = join(ARM_PATH, "bin") ARM_INC = join(ARM_PATH, "include") ARM_LIB = join(ARM_PATH, "lib") BUILD_OPTIONS = ["debug-info"]
mbedライブラリをビルドするには、
workspace_tools\build.py -m LPC812 -t uARM
などとしてやります。
-mでターゲットのアーキを指定、-tで使用するtoolchainを指定しています。
-mと-tは指定してやらないと割と面倒なことになるので、指定しましょう。
無事にmbed SDKのビルドができればOK。
コードの準備
適当なディレクトリに、次の様になるよう、コードを置いておく。
. |-- BLE_API |-- Nordic | `-- nrf51822-sdk-v6.1.0 <- NordicのSDKをunzipしてフォルダ名を変えた | |-- Documentation | |-- nrf51422 | `-- nrf51822 |-- dfu-bootloader |-- mbed `-- nRF51822 <- mbedのライブラリ
これにあわせたCMakeLists.txtは、僕のリポジトリに。
ビルド
dfu-bootloaderの中で、
$ mkdir Build $ cd Build/ $ cmake .. $ make -j all
Please log in to post comments.