2.6.32OMAPベースのLinuxカーネルを使用しています。高速データレート(シリアルポートを460800ボーレートに設定)では、シリアルポートのHWFIFOオーバーフローが発生することを確認しました。
シリアルポートは、rxとtxの両方向で8バイトごとに割り込みを生成するように構成されています(つまり、シリアルポートHW fifoが8バイトの場合、シリアルポートからデータを一度に読み取る完全なシリアル割り込みが生成されます)。
114バイトのパケットを継続的に送信しています(シリアルドライバーはパケットモードについての手がかりがなく、rawモードでデータを受信します)。計算に基づいて、
460800ビット/秒=>460800/10= 46080バイト/秒(1つのストップビットと1つのスタートビット)なので、最悪の場合46080/114=>404.21パケットを問題なく送信できます。
ただし、シリアルポートは1秒あたり少なくとも1000パケットを処理することを期待しています。そのため、8バイトごとに割り込みを生成するようにシリアルドライバーを構成しました。
Windows XPを使用して同じことを試しましたが、最大600パケット/秒を読み取ることができます。
上記の状況下で、これはLinuxで実行可能だと思いますか?または私は何かが欠けていますか?コメントを教えてください。
誰かが.configファイルで構成する必要があるいくつかの重要な構成設定を送信することもできます。それ以外の場合は.configファイルを添付できません。共有できます。