未だに、"Zephyr"の綴りを見ながらじゃないと書けない。。。
さて、QEMUでHello Worldだけは動いたので、もう少し本体のことを見ておこう。
まず、BLE部分。
Nordic Blog(2016/12/22)によると、Link Layer + HCIを移植したそうだ。
ソースファイルを見てみると、Nordicの名前が入っている。
もう少し上のディレクトリになると、NordicだけでなくIntelの名前も入っていた。
shellやmeshなんかはIntelのようだ。
今のところこの部分はNordicだけしか入っていないので、Nordicで使いやすくポーティングされているのだろう。highly optimizedと書いているのは、そういった理由からだろうか。
いや、nRF5x SDKで作っていたコードを移植しやすいということか。"you can clone, build and run"ってのがよくわかってない。が、まあ、ZepherがサポートするIPv6 over BLEなんかの機能と組み合わせられるとか恩恵を受けるとか、そんなことをいいたいんじゃなかろうか。
あるいは、git cloneとかで好きかって改造したらいいやん、みたいなところもあるのか・・・。
考えても分からんので、そのうち考えよう。
Blogの手順を見ると、beaconを動かす手順が書かれていた。
3年前の記事だから、手順が多少違うかもしれない。
なんとなくZephyr SDKを展開したものの、これっていらないんじゃなかろうか・・・。
zephyr-sdk-0.10.2/arm-zephyr-eabi/bin$ ./arm-zephyr-eabi-gcc --version
arm-zephyr-eabi-gcc (crosstool-NG 1.24.0-rc2-dirty) 8.3.0
Copyright (C) 2018 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
$ arm-none-eabi-gcc --version
arm-none-eabi-gcc (GNU Tools for Arm Embedded Processors 8-2019-q3-update) 8.3.1 20190703 (release) [gcc-8-branch revision 273027]
Copyright (C) 2018 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
うーん?
ZEPHYR_SDK_INSTALL_DIRを設定しなければいいだけのような気もするが、そういえばdtcのバージョンがあったな。。。
dtcのソースコードを取ってきてビルドしよう。
https://git.kernel.org/pub/scm/utils/dtc/dtc.git
$ sudo apt install flex bison
$ make
$ make install
うーん、/home/xxxx/bin/dtcにインストールされたようだ。
$ sudo make PREFIX=/usr install
無理やりな感じもするが、これでパスが通るところに最新dtcが置かれた。
$ west build -b qemu_x86 samples/hello_world
...
ZEPHYR_SDK_INSTALL_DIR must be set
ああ、ZEPHYR_TOOLCHAIN_VARIANT=zephyrが設定されていたままだった。
しかし、未設定にするとZEPHYR_TOOLCHAIN_VARIANTの設定を要求された。
GCCのprefixみたいなイメージだったのだが、何を指定すれば良いのだろうか。。。
どうも、zephyrproject/zephyr/cmake/toolchainの下にあるディレクトリ名として使っているようだ。
host、でいいのかな?
$ file build/zephyr/zephyr.elf
build/zephyr/zephyr.elf: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), statically linked, with debug_info, not stripped
まあ、いいのかな。
しかし、 west build -t runは動かなかった。
/bin/sh: 1: QEMU-NOTFOUND: not found
FAILED: zephyr/CMakeFiles/run
QEMUがインストールされていないのか?
$ sudo apt install qemu-system-x86
ダメか。
どうも、CMakeCache.txtに載ってるらしい。
https://github.com/zephyrproject-rtos/zephyr/issues/6911#issuecomment-378770605
確かに、QEMUはnotfoundだった。
//Path to a program.
QEMU:FILEPATH=QEMU-NOTFOUND
CMakeCache.txtの更新方法が分からんかったので、build/ごと削除してwest buildからやり直した。
そしたら、動いた。
qemuって、動いたらCtrl+Cでは止められないのね。。。
というわけで、SDKディレクトリは削除をしてよいだろう。
数GBあって、うちのSSDの空き容量を圧迫していたのよねぇ。
0 件のコメント:
コメントを投稿
コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。
注: コメントを投稿できるのは、このブログのメンバーだけです。