cyber205の日記: ipl+gの日本語解説めっけ。
よく調べたら、ipl+gやsh-liloや、sh-linuxに関しては
既にここ>(http://linuxsh.sourceforge.net/index.php3)のDocuments以下から
日本語で書かれた解説を読むことができるみたいだ。
A&Dの阿部さんが書いている奴だな。
そういや、以前に開発ツールを探してあそこのFTPサイトへお世話になったっけ。
この文章と実際のソースコードを参照しながら読んでみたのだが、
やはりshのipl+gには既にBIOSの機能も幾らか実装されているようだ。
基本入出力はこれにお任せでイケそうなので、さらにコメントを見ながら
ボチボチ拡張してやれば、面白いものができそう。
手元にある sh-ipl+g-2002-06-14cvs.tgz に実装されているのは、だいたいわかる範囲で書くと、
・基本シリアル入出力、
・補助記憶アクセス、
・フィーチャQuery
(マシンタイプ、HeartBeat LEDのサポート、シリアルポート形式の取得)
・メモリ実装サイズ取得
・I/Oベースアドレス取得
・キャッシュ制御
・Ethernetインタフェイスの送受信、ノードアドレス取得
・シャットダウン(将来的にはACPIのような電源制御も含めるらしい)
・RTC制御(一部だけの実装で、まだまだ未完成)
・シリアルポートがらみの1文字&文字列出力
:
・gdbモード変数へのQuery、gdbモードのdetach
といった感じになっている。
以前に私がHackすることに燃えていた、RTCのファンクションに関して言えば、
現状では TickのResetとGet、それにsleep128という機能だけが
実装されているようだ。
RTCの Stop、Set、Get、それにInitializeは未実装…うひひ(笑
もっともInitは「やることが決まってない」だけなので、
エラーにするまでもなく、機能呼び出しすること自体は可能となっている。
なお、この部分の実装をしているセクションには、以下のような文章が…。
> /* XXX: This will be hardware dependent... */
う~む、そうだよなぁ。SH3/SH4は確かにメインクロック以外に、
32.768kHzの水晶を積んで動かす内部RTCユニットがあるのだが、
実際には cat709 やCQ出版の開発ボード、さらには SolutionEngine (多分)のように、
外部に別のRTCユニットを積んで、そちらを利用しているケースも少なくない。
まぁ、cat68701は素直な設計で、ぶっちゃけ「余計な部品は何もついてない」から、
SH7708R(SH-3)チップに内蔵のRTCを使う以外に選択の余地はないんだけどね。
あ、でも、オンボードバッテリバックアップの512KBサイズSRAMだけは豪華装備だな。
これはいろいろ悪さをするにはヒジョーに便利(笑
とりあえず、リハビリを兼ねてりぬくす工房の sh-linux tips を参考にリモートgdbを動かしてみた。
breakpointを全部外してLEDを点滅させるのも出来た。
(止め方が分からないのだが…)
ふぅ、デバッガつないで動かすのなら、CAT709のほうがいいよなぁ…。
形式の新しい SH7709S(SH-3)を積んでいて、処理速度が速いというだけではない。
何と言ってもシリアルが3つもあるのがおいしい。
以前はPCでも、シリアルポート経由のリモートデバッグ+MDA+EGA/VGAという方法で
開発が行われていたのだ。(MS-DOS Ver.3~5の時代の話らしいが)
何通りも状況表示できるI/Oがあると、デバッグに便利なんだよな~。
ipl+gの日本語解説めっけ。 More ログイン