[Suzaku:00146] Re: UARTでデータ転送がつまづきます
kyosuke yoshizu
email@hidden
2004年 11月 17日 (水) 16:19:50 JST
yoshizuです
>At Wed, 17 Nov 2004 15:02:28 +0900,
>kyosuke yoshizu wrote:
>[...]
>> パターン3)失敗
>>
>> UART_A <------UART_B
>> ------->
>>
>> UART_Aで受信待ちしてUART_Bから”BBBBBBBB"を送信します
>>
>> UART_Aでは”BBBBBBBB"を正しく受信できました
>>
>> UART_Bで受信待ちしてUART_Aから”AAAAAAAA"送信します
>>
>> UART_Bでは”BBBBBBBB"を受信してしまいます。(ここでは”
AAAAAAAA"
>> を期待しています)
>これだけでは、わからないのでほぼ勘ですが、UART_Aが "BBBBBBBBB"を受信し
>たときにはすでに、UART_Bでも "BBBBBBBBB"を受信していませんか?
受信していました
UART_Aが受信を実行すると UART_Bも受信するようです
>UART_A
>が "AAAAAAA"を書くまえに UART_Bから read()するとどうなります?
BBBBBBBBをreadしてしまいます
または、
>UART_Bの Rx interrupt数は増えてませんか?
UART_Bの送信後に UART_BがBBBBBBBBを受信したときの割り込み数は
以下のようにUART_Bの Rx interrupt数は113個も増えています
せいぜい10個以内ではないでしょうか?
実行前
0: port:ffff2000 irq=1 baud:0 tx:7573 rx:378
1: port:ffff8000 irq=3 baud:0 tx:2687 rx:1723 (UART_A)
2: port:ffff8200 irq=4 baud:0 tx:2851 rx:1606 (UART_B)
UART_B BBBBBBBB送信してBBBBBBBB受信後
Microblaze UARTlite serial driver version 1.00
0: port:ffff2000 irq=1 baud:0 tx:7784 rx:382
1: port:ffff8000 irq=3 baud:0 tx:2814 rx:1837 (UART_A)
2: port:ffff8200 irq=4 baud:0 tx:2965 rx:1719 (UART_B)
>同じ Cのコードを 2つの serial portがある linux pcで試すと、どうなりま
>す?
これはすぐにできそうもありません
>--
yashi
suzaku メーリングリストの案内