初期の質問
私はNXPチップSC16IS740を組み込みLinuxシステム(メインラインカーネルv4.8)の周辺機器として使用しています。ユースケースは非常に簡単です。継続的に送信されるuartライン(9600 8n1)は、チップドライバを介して読み取る必要があります。
これまでsc16is7xx
カーネルのビルドにドライバモジュールを含めて、デバイスを/dev/ttySC0
。
しかし、今はシリアルポートを読み取ることができず、正しい設定がありません。私は単に試した
cat /dev/ttySC0
そして
minicom -D /dev/ttySC0 -b 9600 -8
デバイスディレクトリ(/sys/class/tty/ttySC0/)には読み取り専用ファイルのみがあり、ドライバの使い方に関するドキュメントが見つからなかったため、アイデアがありません。
このドライバを設定する正しい方法は何ですか?
エディタ:設定、ロギング、測定
構成
次のようにカーネルレシピ設定にモジュールを含めました。
CONFIG_SERIAL_SC16IS7XX_CORE=m
CONFIG_SERIAL_SC16IS7XX=m
CONFIG_SERIAL_SC16IS7XX_I2C=y
モジュールをロード/アンロードするには(デバイスがロード/アンロードされるようにします/dev/ttySC0
)、次を使用します。
modprobe [-r] sc16is7xx
丸太
次のメッセージで結果を見つけますdmesg
。sc16is7
[ 5592.212905] [<c0379a14>] (uart_get_baud_rate) from [<bf07cf84>] (sc16is7xx_set_termios+0x1c4/0x374 [sc16is7xx])
[ 5592.213045] [<bf07cdc0>] (sc16is7xx_set_termios [sc16is7xx]) from [<c0379f04>] (uart_change_speed+0x5c/0x124)
これら2つのメッセージは、次の操作を行うたびに正確に記録されます。
/dev/ttySC0
minicom
接続の使用、開く、または閉じるcat
- ボーレートまたはその他のシリアルポート設定の変更
minicom
測定
オシロスコープを使用して測定(基本論理分析を含む)を実行すると、次の操作を実行するとチップと通信するI2Cラインが表示されます。
/dev/ttySC0
次の接続を開閉します。minicom
- ボーレートまたはその他のシリアルポート設定の変更
minicom
そうしないと、回線でまったく通信が行われません。現在送信されているバイトを分析し、データテーブルを使用して確認しようとしています。つまり、どういうわけかドライバをデバッグしようとしています。