第 3 回は リセット後のマイコンの動作です。

今回の場合、リセットベクタから jmp 命令で飛んできた 0x68 番地は次のような命令から始まっています。

昨日から始まった マイコン向けバイナリの動作を見ていこうシリーズ第 2 回は「割り込みベクタ」です。

まず始めに割り込みベクタと割り込みが何かを簡単に説明しておきます。一般にコンピュータは 演算装置と入力装置、出力装置、そしてそれらを制御する制御装置からなっていますが、割込とは CPU の命令とは非同期に発生する入出力の完了などを制御装置に知らせる仕組みです。例えばユーザがスイッチを押したのを伝えたり、A/D 変換が完了したことを伝えたり、タイマがタイムアウトしたことを伝えたりするのが主な用途ですが、一方でゼロ割りが行われたり、メモリの R/W に失敗したときなどエラー系の通知にも使われます。パソコンだと CPU の割り込みは OS で管理されているため我々にはあまり馴染みがないかもしれませんが、分かりやすいアナロジーをあげると、イベントドリブンプログラムにおけるリスナー登録でしょうか。

先日 Atmel 社のワンチップマイコン Atmega168 で Tumblr 新着件数表示ボードを作りソースを公開しましたが、このために統合開発環境 WinAVR で私が書いたコードは PC で作成するプログラムと同様に main 以降の関数と割込関数だけでした。

通常の PC や UNIX サーバでユーザプログラムをリンクすると通常は書いたプログラムにスタートアッププログラムがリンクされて実行バイナリができあがりますが、WinAVR で使っている AVR-gcc コンパイラでは自分が書いていないプログラムがどういうふうに組まれてマイコン上で動くバイナリが作成されているのかを調べてみました。

Schematic of Tumblr Unread Msgs Display

@ryo_katsuma が tumblr に post した結果、 50 近くの reblog に達したTumblr 新着件数表示ボードですが、PC 側の air アプリとマイコン側のソース一式を github で公開しました。

回路図エディタ BSch3V で作った回路図も元ファイルはテキストファイルなので github に up しています

開発環境は AVR Studio というチップメーカである Atmel 純正の IDE を使っているのですが、ビルド時にリンクされているはずのスタートアップルーチンがどうなっているのか、スタックや割り込みベクタがどう初期化されて、どういうデータがどういう感じでアドレス空間に配置されているのかなどなど余裕があれば説明していきたいと思っています。

昨日のことですが、第 1 回西日暮里フィレンツェボードゲーム会に行ってきました。会場の雰囲気はこんな感じ

プレイしたゲームはブロックス、ノイ、ドミニオン、キングスコート(のクローン、名前忘れました)、モンテゴベイ。プレイを眺めていたゲームはごきぶりポーカー、宝石商、ワードバスケットでした。西日暮里に縁のあるひと人、ゲーム好きの人などなど参加者の多くは初めましての方ばかりだったのですが、ゲームですぐに打ち解けられるのは自分でもビックリしたというか、なかなかの不思議空間でした。

ブロックスは相変わらず 2 位止まり。ノイは単純なのでアイスブレイクにはもってこいのゲームだと思いました。で、今回一番面白かったのは @mu_mu_ さんが持ってきてくださったドミニオン。遊戯王とかあのへんのトレカゲームの要素が入ったゲームでお金カードでアクションカードを買って自分のデッキを構築しつつ、得点カードを買って勝敗を競うゲームなのですが、「ずっと俺のターン」は一度は言ってみたいですよねとかって @mocosaka さんと盛り上がりつつ結果は同点 2 位。ルールが複雑なだけに、@mu_mu_ さんの丁寧な説明とレクチャーのおかげで楽しめたことに感謝です。初プレイでそのゲームが気に入るかどうかは第一印象が大事な事かもしれないですね。私はルールの説明が下手で毎回ヘコむのですが、もっとうまくならないといけません。

残念ながら今回はあやつり人形やバルバロッサなど箱を眺めるだけになってしまったゲームもありましたので、次回は是非新しいものをプレイしてみたいと思います。

モンテゴベイ

日曜日の話しですが浅草で行われていたゲームマーケットに行ってきました。ゲームマーケットとは企業や同人サークルがカードゲームやボードゲームなど電源を使わないいわゆる非電源ゲームを紹介・販売しているイベントで、今回初めて行ってみたのですが予想以上のもんでした。知らないゲームばかりでしたけど、子ども向けのを取り扱ってるブースもあったりして見て回るだけども楽しめました。

今回私が行った目的はカタン・ブロックスにつづく第 3 のゲームということだったのですが、結局メビウスゲームズさんのブースでモンテゴベイというボードゲームを買って帰りました。ドイツのゲームなのですが日本語のマニュアルを付けてくれているので安心して購入しました。

数あるゲームの中からこのモンテゴベイを選んだ理由は「ジャケ買い」です。会場ではテーブルが用意されており、そこで購入できるゲームのルール説明やテストプレイができたのですが、全部のゲームの説明を聞いてまわるわけにも行かず、結局はジャケ買い。

とはいってもです。ジャケ買いとは行ってもテレビゲームもそうなんですけど洋ゲーってどうしてこういうリアル系の絵ばっかりなんでしょうか?1つにはモンテゴベイがアブストラクトゲームではなく、テーマ設定のあるゲームということもあるでしょうが、それにしても...という想いはぬぐえません。ジャケ買いにしたって試されるスキルが高すぎます。早速妻と遊んでみたところかなり面白かったんで良かったんですけど、このパッケージを見て普通の日本人は面白いとはおもわんよなぁ。

で肝心のモンテゴベイのルールですけど、端的には港湾労働者であるプレイヤーがどれだけ多くの荷物を船に積むことができるかというルールです。船は何艘もあるのですがそれぞれに積載量とプレイヤーが獲得できるポイントが極められており、プレイヤーは効率よく荷物を積むために他のプレイヤーのコマの動きと、プレイヤーが荷物を積もうとしている船の 2 つを読むことがこのゲームの肝になります。ルールは比較的単純なのですぐに楽しめると思います。

ということでみなさま、モンテゴベイをやりに遊びに来てください(もしくは持って行くので遊んでください)

Board showing new arrival Items of Tumblr dashborad

ブラウザで Tumblr のダッシュボードを見ていると、新着件数がタイトルに表示されて1 分ごとに数字が更新されてますが、その部分だけを抜き出して LCD に表示するボードを作ってみました。ブラウザで見る場合と同じく一分ごとに更新されますし、ボード左側のスイッチを押すと、新着件数がリセットされます。これを使えば、PC の前にいなくてもどこでも Tumblr の新着件数を知ることができます、トイレの中に、台所のカウンターに、テレビの横に、玄関脇に置いておけばいつでも どこでも Tumblr と一緒です。

ボードの構成ですが、ストロベリーリナックスで購入した AVR の評価ボードと秋月電子で購入したシリアル USB 変換ボード FT232RL による構成です。評価ボードの構成は、マイコンが Atmel 社の Atmega196 で、LCD ユニットが SC1602BS です。 2列*16文字表示のよくあるヤツですね。

ケーブルが繋がった先の PC 側のアプリケーションは AIR アプリで Tumblr のダッシュボードを表示し新着件数を取得、ボードとの通信は XMLSocket とシリアル通信の proxy ソフト&ライブラリである Flash Net Comport Connector を利用しています。

もっとくわしい開発環境とかソースコードとかの話しはまたおいおい時間を見つけてやっていきたいと思います。1 つ言えることはマイコン開発、楽しいですね。

「時間封鎖」を読み終えました。オフィス最寄りの本屋さんにずっと置かれて、はじめは面陳されてポップもあったものがいつしか、周りの本の居場所を奪われて端っこに追いやられていたのがなぜかいたたまれず、当初から気にはなっていたタイトルだったので買って読んでみたのですが、大当たりでした。

ある日突然地球の周りが膜のような球体に覆われて、地球の時間の速度が 1 億分の 1 になって...という話しです。地球からみると外の世界が 1 億倍のスピードで時間が過ぎていくわけですから、このままでは直に地球は巨大化した太陽に飲まれてしまう。そこで、この話の登場人物はこの問題にどう向き合っていくか、という話しです。

ダイアンとジェイスンの姉弟、2 人の幼なじみで主人公のタイラー、姉弟の父親の E.D.、E.D.の妻キャロルが主な登場人物です。物語はタイラーの回顧的な視点でスピンと呼ばれるその膜が覆い始めた過去の話しと現在の話しが交互に挟まれながら、最終的にはその 2 つのすじが合わさっていく流れです。

スピンの正体はなんなのか、膜によって「時間封鎖」を行った存在はなんなのか。それに取り組む科学者のジェイスン、終末思想的な宗教にのめり込んでしまうダイアン、その間のタイラー、成功によって権力を持った E.D.、舞台設定の謎解きに加えて登場人物を始め地球に住む人々の描写がものすごくうまい、そこに読みでを感じる物語でした。

この物語は上下巻の 2 冊からなりますが、実は 3 部作の第 1 部でこのあとまだ 2 部、3 部と続くらしいです。上巻だけでも充分楽しめますが、私はそのまま一気に下巻も読み終えてしまいました。2 部ももうすぐ邦訳が出るそうなので楽しみです。

地球を球体が囲むと言う点ではイーガンの「宇宙消失」にも似ていますが似て非なる物語です。それよりはソウヤーの「ホミニッド」の方が似ているかも?


カイワレ大根

先日挿し木用にと根の出たスイートバジルをいただいたので、近くのダイエーにプランターと土を買いに行ったついでに買ってきたカイワレ大根の栽培セットがうまく育ったので、今日収穫しました。

買った品には種と一緒に軽石のような土代わりのモノが付いてきていたので、それをペットボトルの底に敷いて栽培していました。種を蒔いてから収穫までは10日 で 9 日は水を切らさないことだけ気をつけて台所の戸棚の中の暗所に入れておいて、最後の一日(つまり今日ですね)は太陽の光に当てて葉を緑色にするという簡単な栽培方法です。

昨日までは葉が黄色でもやしのような感じで、本当に一日で緑色になるんかいなと思ってましたが、ビックリです。午後からの 4 時間ぐらいしか出していなかったのですが綺麗な緑色になりました。

収穫した後は傷んだ葉や種の皮を取り去って、半分はマヨネーズを付けて、半分は「おろしカイワレわかめきしめん」を作って食べました。普段カイワレを食べる機会はなかなかないですが、おいしですね。辛さの刺激がたまらないです。実はまだ種が半分残っているので次回もまたレポートしたいと思います。あとバジルの話しも追々。

たこ島の海鮮丼

@ryo_katsuma, @kawataso, @deepneko と雨の中、江ノ島に「しらすオフ」と称して遊びに行ってきました。

目的はとびっちょだったのですが大勢並んでいたため、江ノ島神社へお参りした後、姉妹店のたこ島へ。写真はそこで食べた海鮮丼。美味しかったです。お腹いっぱいになりました。

帰りの横須賀線では @kawataso に JR Hacks をいろいろ教えてもらいました。ほとんど忘れちゃいましたが。

最近の画像

Tumblr 新着件数表示ボードのソースを公開しました
ボードゲーム、モンテゴベイ(MONTEGO BAY)をジャケ買い
「Tumblr 新着件数」が気になって仕方がないあなたに
「時間封鎖」 - 地球!封鎖できません?! -
カイワレ大根
たこ島の海鮮丼
花見まとめ
花見まとめ
花見まとめ
圧力鍋始めました
1*3*3 のフロッピーキューブ

私の本棚

 

自転車走行距離

自転車走行距離

Flickr Photos

FlickrPhotos

なかのひと

Y!ログール

このサイトについて

2009年6月

  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30        

アーカイブ

My Update

  • Loading...

その他

あわせて読みたいブログパーツ