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

Re: xircom cf ethernet



鈴木(康)です。
<200002280648.PAA15892@shin1.sm.sony.co.jp>の記事において
takemura@netbsd.orgさんは書きました。

  | 
  | モロに私の作成した箇所なので、取り急ぎコメントしますが、
  | 
  |  >   |   | ところで、タッチパネルのキャリブレーションってできるんですか?
  |  >   | 
  |  >   | MGL の demos にある tap.c をベースに作ろうと思っています。
  |  > 
  |  > 作ろうと思ってやってみたんですが、WSMOUSEIO_SCALIBCOORDS をすると
  |  > システムが止まってしまいます。
  | 
  |  > __assert+80 (0,0,8035ce70,0) ra 800310fc sz 32
  |  > mips3_KernIntr+84 (c003c014,100000,10,c003c000) ra 8016d584 sz 120
  |  > mra_Y_AX1_BX2_C+284 (c003c014,10,10,100000) ra 10 sz 168
  |  > PC 0x10: not in kernel space
  |  > _DYNAMIC_LINK+10 (c003c014,10,10,100000) ra 0 sz 0
  |  > User-level: pid 152
  |  > db> 
  | 
  | mra_Y_AX1_BX2_C という関数は、重回帰分析をしています。
  | Z=aX +bY + c の a, b, c を求める、二次の最小二乗法です。
  | で、上記の例外は、浮動小数点ではなく、整数の算術例外では
  | ないでしょうか。

止まった命令に f って入っていたんで、
浮動小数点とばかりおもっていました。

mflo    v0

ってどういう命令なんだろ?

  | カーネルがブッ飛んでいるのに偉そうなことは言えないのですが、
  | もしかして、解けないサンプルを入力しているのかも知れません。
  | (解ける条件は?と聞かれると困ってしまうのですが...)

取って来たものに対して、rawx,rawy を それぞれ+1 しただけなんで、
変なサンプルってことはないと思うんですが...

patch 添付したんで、変なことしているか確認してもらえませんでしょうか。
ちなみに、printf で get したのは、正しそうな値でした。

ついでですので教えて欲しいんですが、
キャリブレーションは次のようにすれば良いのでしょうか?

1) WSMOUSEIO_GCALIBCOORDS してデータをセーブ。
2) x = rawx , y = rawy にしたデータでWSMOUSEIO_SCALIBCOORDS する。
3) tap.c の動作で 5 点の座標を取って来る。
4) 採取した座標を rawx ,rawy にしたデータでWSMOUSEIO_SCALIBCOORDS する。

err) 失敗したら、セーブしたデータで、WSMOUSEIO_SCALIBCOORDS する。

  | この関数は、デバイスドライバ初期化時に 1 回呼ばれているはず
  | なので、全く動作しないということはないと思います...(弱気)

一回は動いているのは確かですね。
なにか条件が違うのかな。

--
					鈴木 康司 @NEC
					suz@hpc.bs1.fc.nec.co.jp
					TEL 0423-33-5381