2019/08/20

[zephyr][ble]serviceを作る (1)

nRF51822(FLASH: 256kB, SRAM: 16kB)に、Zephyr OSを載せて、BLEのPeripheral serviceを作って動かしたい。

もちろん、characteristicなんかも作るが、とにかくZephyrでBLEを動かしたいのだ。


師匠(?)の記事を読もう。

Zephyr RTOS Programming - Qiita
https://qiita.com/deden/items/c7e6fddf7dffb3af5f06#mpu6050

最初は、LEDをON/OFFするだけのserviceでよいだろう。
service類の作り方が分かれば、あとはデバイスを動かすだけになるはず。

 

ソースコードの前に、prj.confだ。

https://github.com/github-deden/zephyr_ble_mpu6050/blob/a97351f3165452286fb4b4a265eb879906db57ae/peripheral_mpu6050/prj.conf

CONFIGの種類が分からないと、削れるかどうかも分からんな。

Configuration Options — Zephyr Project Documentation
https://docs.zephyrproject.org/latest/reference/kconfig/index.html

やめてー! おおすぎー!

 

・・・まずは、新規プロジェクトを作るところからやろう。


適当なところに作業ディレクトリを作り、CMakeLists.txtとかmain.cとかを置いていけば良いらしい。

https://docs.zephyrproject.org/latest/application/index.html#overview

RustだとHello Worldを自動的に作ってくれるが、そこまではやってくれないらしい。
なので、ここはsamplesのhello_worldをコピーする。
ビルドも確認。

Memory region         Used Size  Region Size  %age Used
            FLASH:       10756 B       256 KB      4.10%
             SRAM:        2356 B        16 KB     14.38%
         IDT_LIST:          56 B         2 KB      2.73%

むう、これだけで15%消費するのか。。。まあ、ほぼOSのみと思っておこう。


では、あきらめてCONFIGを見ようかと思ったが、そういえばLinux Kernelならmenuconfigがあった。
似たようなものがあるんじゃなかろうか?

Zephyr News, 14 May 2018 | Foundries.io
https://foundries.io/insights/2018/05/14/zephyr-news-20180514/

pip3でscripts/requirements.txtをインストールすると使えるのか?

やってみたのだが、hub==2.0がないとかでエラーになってしまった。。。
masterにはhubがなかったので、v2.0.0-rc1で入っていただけなのか。
その行を削除するとインストールは正常に終わった。

 

だが、menuconfig的なものが無い。
”python menuconfig”で探すと、kconfiglibというものがでてきた。

https://pypi.org/project/kconfiglib/

Zephyrという文字も出てきているので、これを使っているのだろう。
が、これはライブラリであって、ツールではないよな。。

https://docs.zephyrproject.org/latest/application/index.html?highlight=menuconfig#overriding-the-default-configuration

ああ・・・westなのか。

west build –t menuconfig

で出てきた。

image

あとは、ここからじわじわ眺めていくか。

とりあえずBluetoothだけ有効にしてビルドした。

Memory region         Used Size  Region Size  %age Used
           FLASH:       33632 B       256 KB     12.83%
            SRAM:        9496 B        16 KB     57.96%
        IDT_LIST:         136 B         2 KB      6.64%

ははは、もう半分以上使われてしまった。
でも、まだ余裕があるな。
リンクも何もしていないので、これからということか。

0 件のコメント:

コメントを投稿

コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。