読者です 読者をやめる 読者になる 読者になる

Armadilloのシリアルドライバ 8250.o vs serial.o

ArmadilloでHT3010(マルチI/O)のシリアル(16550A)を使っている。

今まで8250.oを自分で改造して使っていたが、アットマークテクノのサイトにserial.oがupされていたので、それに切り替えて使っていた。

serial.oならばPCM-3648のような8CHシリアルボードもIRQを共有して使えるから便利なのだ。

しかし、serial.oだと、ごくたまにシリアル受信の取りこぼしがある。

これは問題です。

とりあえず8250.oに変えてみたところ、取りこぼしは無くなった。

本当はserial.oで行きたいが、取りこぼしを何とかしないと使えない。

16550には受信FIFOが16byteあるので、9600bpsの場合、受信割り込みがかかってから約16msecの余裕があるはず。

FIFO 1バイト受信したら割り込みがかかるようにしているので16msecである。

しかし、これを取りこぼすということは16msec以上の割り込み禁止期間がある?

または、serial.oに別の問題があるのか?

追求したいが今は時間がない。