Tuesday, 31 July 2007

テレビ & PS3 Linux spu-gdb



いつのまにか、40inchが15万円台に.... 相変わらずソニーは安売りしているのね。もはや、安売りのソニーというブランドが定着しつつあるね。もっとも、その15万円を捻出するのは難しいが...



ようやっと、PS3 で、SPE/PPE を一緒に gdb にかける方法を見付けました。SPE単体ではspu-gdb出来るんだけど、それでは意味ない... embedspu でSPE/PPEを一つのELF a.outにすると良いらしい。もちろん、gdb で起動しては意味がないので、PPEを起動した後、

  spu-gdb spe.out 5555

みたいな形で、attach してやります。無限ループかなんかで待たせておかないとattachできない。普通にgdb出来るようになるみたいな話も去年聞いた気がするが...



SPE/PPE 側が同じ仮想記憶になるようにする部分は、Linux kernel内部にあるらしく、こちらからいじれない。なので、一つのa.outにする必要があるらしいです。



どちらかと言うと、SPE単体で動作させて、mmap でPPE側とDMAするって方がsimpleで、いいんだけど、それが動くかどうかは試してません。speInfo とかも、/spu/hoge をopen するとかの方が簡単な気がする。でも、どうしても、関数呼び出し風に動かしたいっていう人がいたんだろうな... Unix ってよりは Windows っぽい感じ。



thread で動かすとspu-gdbがattachできない。これは、まぁ、バグなんでしょう。もっとも複数のSPEを使う場合には、gdb なんかは、ほとんど役に立たないけどね。

No comments: