シリアルポート速度調整ソースコード

シリアルポート速度調整ソースコード

/dev/ttyS0基本速度9600bpsのシリアルデバイスがあるとします。

.NETを使用して速度を4800bpsに変更するとしますcfsetospeed

これで書き込みラインが遅くなるはずです。

これを行うソースコードはどこにありますか?オペレーティングシステムのどの部分がこの速度を制御しますか?カスタムドライバ、ttyドライバ、または何?クロック速度やレイテンシを設定してそれを渡すには?

ドライバーにある可能性がありますが見つかりません。たとえば、誰が私にこの場所について教えてもらえますか?ロケットポートドライバー?

私も見つけることができません。端末 ドライバー

ベストアンサー1

シリアルポート速度は通常、ハードウェア自体によって処理され、ハードウェアドライバによって設定されます。

したがって、従うべきチェーンはを呼び出すTCSETSioctl呼び出しです。そのチェーンに従うと、RocketPortドライバはを呼び出します。 tty_set_termios()tty_ioctl.crp_set_termios()configure_r_port()

これは、RocketPortチップに送信された構成設定(除数設定など)のいくつかの計算を実行し、最終的にチップにバイトを出力する呼び出しsSetBaud(定義済み)を実行します。rocket_int.h

したがって、コア自体は、伝送速度を決定するためにシリアルラインで「ビットタッピング」を実行しない。 UARTチップはすべての難しい作業を行います。チップをプログラミングするだけです。

おすすめ記事