[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[pbsd-mg2] Re: First test



たけむらです。

 >  > 制御をうばいきれてないのでしょうか?
 > 
 > そういえば、pbsdboot.exeはどのような動作をしているのでしょうか? > たけむらさん

先週の pbsdboot.exe では、R300 の制御を奪えていませんでした。
(「奪い切れていない」のではなく、奪えていなかったとおもいます)
画面の上の方が黒くなったのは、CE のアプリケーション内で
frame buffer を 0x00 で fill していたためです。

interrupt vector (virtual address 0x80000000) のあたりを
CE の user 空間に map したのち、命令を書き換えるのですが、
この間、割り込みが禁止されていないので、2命令以上の書き換えは
危険です。(書換え中に割り込まれると大抵の場合、暴走します)

最初の pbsdboot.exe では、interrupt vector の 3 命令目の JR を
NOP に書き換えてその後ろのコードを実行するようにしていたいのですが、
どうも、FreeStyle 以外では 3 命令目は JR ではないようです。
(これはベンダー依存です)

3命令目を JR で置き換える方法をやめ、1命令目を J で置き換える
ようにしてみました。
佐藤さんから借りた MC-R300 では FreeStyle と同じように起動できる
ようになりました。

R300 を用意した人は以下の場所にあるやつで試してみることができます。
(GUI などバグっているのであまりいじらないで下さい(^^;)

  http://www02.u-page.so-net.or.jp/ca2/takemura/tmp

新しいプログラムは CE 2.0 でしかコンパイルしていません。
CE 1.01 でコンパイルしたところ、swscanf がないといわれて link できません
でした。この件はこれから調査します。

R500, R510 はカラーなので、別途 Frame Buffer の構造を調べる
必要がありますが、とりあえずこのバージョンで起動できるかどうか
試してみてください。

 > VC++の代わりになる物がないかなと探していたら、
 > <http://hyperion.clc.cc.il.us/~arty/>
 >  GCC Target for mips-based windows(R) CE handhelds
 > を見付けました。
 > しかし、まだ実行できるものを生成できないみたいです。残念。

将来的には移行できるかも知れませんね。

たけむら