1

デバイスと通信するためのドライバーを開発しようとしています。私のドライバーはsysfsを使用してユーザー空間と通信し、rs232を使用してexternデバイスから情報を送受信します。ボードと他のデバイスは rs232 を介して通信しますが、rx、tx、cts/rts を使用してドライバーでこの通信を初期化する方法がわかりません。tty に関する多くの情報が表示されます。しかし、rs232 通信に GPIO を直接使用することについては何もありません。

構造

ユーザー -> ボード

|-----rx------|
|-----tx------|
|-----cts-----|

デバイス

誰かがアイデアを持っているなら:)

ありがとうございます

4

2 に答える 2

1

@Makit、1) まず、プロセッサのテクニカル リファレンス マニュアル (TRM)を参照してください。外部デバイスが接続されている UART ポートを構成する方法を理解します。一部の uart レジスタを構成するファームウェア (OS に依存しないコード) を作成/開発する必要があります。たとえば、ライン制御レジスタ (LCR)で、開始、パリティ、停止ビット (8N1) を構成し、構成する必要があります。 TRM の式に従ってボーレートし、適切な値をDLL および DLHレジスタに割り当てます。この後---> 2) 一般的なファイル操作 (オープン、クローズ、読み取り、書き込み) を持つキャラクター デバイス ドライバーの開発から始めます。その後、「ioremap_nocacheを使用して特定された uart ポート レジスタをマップする必要があります。" カーネル api を使用し、戻り値 (ポインター値) を使用して、ioread[8|16|32]/iowrite[8|16|32]を使用して外部デバイスの読み取り/書き込みを行います。UART デバイス ドライバーは、uart レジスターを構成するために開発されたファームウェア コードを使用し、読み取り外部デバイスに書き込みます.フィードバックをお気軽に:-)。

于 2013-07-20T15:48:50.350 に答える