[Uclinux-h8-devel] Re: シリアルデータ受信

Back to archive index

Yoshinori Sato ysato****@users*****
2005年 5月 25日 (水) 12:05:31 JST


At Wed, 25 May 2005 09:42:38 +0900,
Masakatsu Suzuki wrote:
> 
> 鈴木です。
> 
> strawberry-linuxのホームページからダウンロードした環境をベースにして作業しています。
> シリアルインターフェースを使用したいのですが、シリアルドライバ(sh-sciドライバ)の動作が
> とても不安定です。
> 
> シリアルドライバをopen()/read()関数で制御しようとするとメモリ不足(?)で 
> 
> リブートもしくはハングしてしまいます。
> 
> 電源ON時、screen shotがコンソールに流れているときにオーバーランが発生して
> カーネルパニックになったりもしました。(原因不明−解析難航中)。 
> 仕方がないので、割り込みハンドラを自作したいのですが、
> 割り込みハンドラをどのように作成すればよいのか調査中ですが、現在のところ
> 見当がつかなくて困っています。
> ユーザプログラムで割り込みベクタ、割り込みハンドラを使用する方法をご教授願います。
> 
> よろしくお願いします。
> 

起動時のメッセージに "virtual vector at 〜" という行があると思いますが、そこ
に出てくるアドレスに割り込みをフックするためのテーブルがあります。

割り込みベクタテーブルをダンプするとわかると思いますが、割り込みが発生すると、
一旦このテーブルを経由して本来の割り込み処理へ飛ぶようになっています。
ということで、ここを書き換えてしまえば kernel を経由しないで割り込みを受ける
ことが出来ます。

自分の方に向けるのであれば、
jmp @int_handler
に書き換えてしまうのがいちばん簡単でしょう。

-- 
Yoshinori Sato
<ysato****@users*****>



Uclinux-h8-devel メーリングリストの案内
Back to archive index