[Armadillo:04991] Re: [a500fx][ttymxc] 送っていない 0xff を連続受信するモードに陥る
Yasushi SHOJI
email@hidden
2010年 2月 23日 (火) 16:19:59 JST
詳細なレポートにもかかわらず、反応が非常に遅くてすみません。
overrunから抜けられないのかもしれないので、調べてみます。
以下、簡単なコメントです。
At Tue, 27 Oct 2009 17:01:17 +0900,
URATAN Shigenobu wrote:
>
[...]
> ・再現手順 [2] であればユーザープロセスにも CPU が回ることから、
> ハードウェアの「受信*中*ステートに中途半端に入って抜けない」問題か?
> (再現手順 [1] だと debug 出力で CPU/uart を食い尽くすようで)
送り手が12倍速だと、なにかあるのかもしれませんね。overrun が立つので、
そこの処理でしょうか。256回ごとに overrun のビットが落るのは、
static void mxcuart_rx_chars(uart_mxc_port * umxc)
{
struct tty_struct *tty = umxc->port.info->tty;
volatile unsigned int ch, sr2;
unsigned int status, flag, max_count = 256;
と、max_count == 256 だからかと。
RxのFIFOは、32文字分あります。途中で計算しているときに、32という数字
FIFOのサイズ以外で見たのですが、どこだか忘れてしまいました…。
> 余談
> ・kernel から見たレジスタアドレスが、iMX31 仕様書のアドレス値に対して
> オフセットされているのはなぜ?
ごめんなさい。どこの値ですか?
ioremap()しているからでしょうか?
> ・今回の問題とは(たぶん)まったく関係ないが、
> mxc_uart.c の この(patch参照) if() 文の記述、ボクはまずいと思います。
どれですか?
> ・cp /dev/xxx ... すると device file そのものがコピーされちゃうんですね !?
最近は普通です。:-) 昔の cp は、中身のコピーをしていたはずですが、新しい
POSIX では、deprecated な動作です。
--
yashi
armadillo メーリングリストの案内