2013年10月12日土曜日

オペレーティング・システムのスケジューラを書く人の強い味方「レジスタ将棋」を考案しました

「青空の下でLPC800 Mini-KitとUOS-LPC800を楽しもう!」の説明資料を作っていて、レジスタの扱いについて面白く説明する方法はないかなぁ?と考えていました。

オペレーティング・システムを書くとなると、あのレジスタをこっちにやって、このレジスタをあっちにやって・・・とだんだん頭がわけわからなくなってきます。UOS-LPC800のスケジューラを書いている時も、Cortex-M0+の命令セットをどう使うのか頭を悩ませた気がします。もう忘れましたが。


で、それを他人に説明する時の面白い方法が欲しいと思いました。
で、考えたのが「レジスタ将棋」です。

どんなものになるのか自分でもよくわからなかったので試しに百円ショップで将棋セットを購入。


うーん。
この金将とか歩兵とか邪魔だな・・・。


「裏面を使えば良いか!」と考えていたが、よく考えたら彼らはシチュエーションによって色んな奴に化けるのを失念していました。おぉ、両面に文字がある。


「くそぉー」ということで、耐水ペーパーでゴシゴシ削ってレジスタ名を記入することに。
これで「レジスタ将棋」の完成です。


ちなみに、青い字はLow Registersで、Cortex-M0+のSTM、LDM命令でもアクセス可能なレジスタ。
赤い字はHigh Registersで、Cortex-M0+のSTM、LDM命令ではアクセスできないレジスタです。


「レジスタ将棋」の使い方は至って簡単。
スタックポインタを起点に積んでいくレジスタ駒を並べて行くだけ。


R13はMSPやPSP、R14はLR、R15はPCでもあるので、裏面にひっくり返すとPSP、LR、PCなどと書いてあります。


レジスタの退避、復旧、複写は、アドレス・インクリメント・モードが複数あったり、他人に説明する場合にややこしくなりがちです。駒を動かして一つずつ操作を理解する事で、楽しくレジスタ操作を把握できるという算段です。

この「レジスタ将棋」のアイデア、駒を動かしてゲーム感覚でレジスタ操作を整理できるので、我ながら気に入っています。みなさまもオペレーティング・システムのスケジューラを書く際の友として如何でしょうか?

「青空の下でLPC800 Mini-KitとUOS-LPC800を楽しもう!」を開催しました

訳のわからないタイトル「青空の下でLPC800 Mini-KitとUOS-LPC800を楽しもう!」で企画したLPC800 Mini-KitとUOS-LPC800を楽しむ会を開催しました。


基本的にユルユルな会と見せかけながら、実はリアルタイムシステムの評価手法に関するノウハウなども公開したりといった内容としました。


開催場所は横浜市営地下鉄のセンター北駅から徒歩10分ほどの閑静な住宅街の中にある公園。


私は到着早々、今朝思いついたばかりの「レジスタ将棋」の思案を開始。
その直後、落ち葉が降ってきて「おぉー、秋ですなぁ~。」と感じるなど。


基本的に公園の中でやる事ではないのですが、いつもと違う感じが気持ち良かったです。


振り返ればそこは池!
鴨みたいなのとか、そうじゃないやつとか沢山いました。


皆さん思い思いの環境でLPC800 Mini-KitとUOS-LPC800を楽しんで頂いて何より。


14:00から16:00の開催時間をとっくに過ぎて16:30に終了。
二次会の締めとして喫茶店で続きを・・・。


前回の茶室で楽しむKOZOS拡張基板に福島からいらしてくれた方からは、「こんな手軽な環境でデバッガが使えるなんて嬉しいです」とも。あぁ、やって良かった「青空の下でLPC800 Mini-KitとUOS-LPC800を楽しもう!」企画!タイトルが長い!