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だ。
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というものがでてきた。
Zephyrという文字も出てきているので、これを使っているのだろう。
が、これはライブラリであって、ツールではないよな。。
ああ・・・westなのか。
west build –t menuconfig
で出てきた。
あとは、ここからじわじわ眺めていくか。
とりあえず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 件のコメント:
コメントを投稿
コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。
注: コメントを投稿できるのは、このブログのメンバーだけです。