2015/06/21

[nrf51]RTOSを載せるのはひどく面倒そうだ

お仕事で、uITRONを使いそうな気配がある。
私、OSありの仕事ってやったことがほとんどないのよね・・・。
ちょっとは慣れておいた方がよいだろうと思い、家でTOPPERSでお勉強をしようと思った。

ただ、どのプラットフォームでやるかが悩みどころだ。
どうせなら、nRF51822で動かせた方が面白いだろう、と思い、SSPの情報を探した。
https://dev.toppers.jp/trac_user/contrib/wiki/armv6_m_gcc
ここに、Cortex-M0+に移植したものがあるから、これをベースに持ってきてみよう。

と思って調べていたのだが、ネックが出てきた。
SVCだ。
OSだから、何かするときはSVCで飛ばすようになっている。
しかし、nRF51ではSoftDeviceがSVCを使っている。
やりたいなら、単に移植するだけじゃなくて、SVCハンドラをうまいことやってやらないとダメそうだ。
nRF51のリファレンスマニュアルを見ると、割込み優先度もひっくるめて設計してあるようなので、ハンドラを移植できたとしてもBLEが正しく動かせるかどうか心許ない。

 

OSを使ってる人がいないか検索すると、uCXpresso.NRFというものがあるらしい。
https://devzone.nordicsemi.com/blogs/344/now-ucxpressonrf-provides-the-free-evaluation-lice/
でも、他のモジュールで使うのは難しいらしく、インストール自体めんどくさいらしい。
Hobby Electronics: もう1つのNRF51822 オフラインコンパイラ(uCXpresso.NRFを試してみる:インストール編)

FreeRTOSってのもあるらしい。
https://github.com/nocko/FreeRTOS8.0.1-nrf51-softdevice
へー、nRF51ってSysTickがないんだ。

nRF51822は別によいのだけど、nRF52だと大きいプログラムを載せることもありそうだから、そろそろRTOSなんかがないとつらい気がしている。
SSP自体はSysTickもオプション扱いだから、SVCだけうまいことやれば移植できるのかな?
まあ、SVC自体よくわかってないので(SW割込というイメージだけど)、そこからですな。

0 件のコメント:

コメントを投稿

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