2

組み込み Linux の UART で 9 ビット プロトコルを強制しようとしています。現在、am335x_evm ボードでこれをテストしています。スティックパリティを使用してこれを行う予定です。理想的には、omap-serial.c ドライバーのコードを実際に変更する必要がないことを望んでいました。

9 ビット プロトコルの理由は、それを使用する一部のレガシー ハードウェアをサポートするためです。パリティ ビットは、メッセージのアドレス部分では 1、データ部分では 0、そして終端バイトでは再び 1 である必要があります。

標準のシステム コール (open、write、read、ioctl、tcsetattr など) を介して UART とやり取りするプロセスをユーザー空間で実行することを計画していました。UART を構成してパリティを有効にし、スティック パリティを設定します。次に、パリティを偶数に設定し、write() を呼び出してアドレス データを送信します。次に、パリティを 0 に設定してデータを送信します。私の懸念は、パリティを 1 から 0 に変更した場合、それはいつ有効になりますか? UART がすべてのアドレス データの送信を完了していない場合、パリティの変更は未送信のデータに適用されますか?

4

2 に答える 2

2

自分の 9 ビット uart ドライバーを作成することになりました。最も簡単で効率的なソリューションでした。

于 2014-12-17T18:29:04.527 に答える
1

適切な方法はcs9、ハードウェアとドライバーがこれをサポートしている場合、シリアル ポートに設定することです (おそらくパリティなし)。

私はあなたのためのリンクを検索します...

于 2014-11-12T13:00:56.443 に答える