アプリケーションは、USB経由でシリアル通信を使用し、PCがHDDから起動するときに正常に動作します。LIVE USBブートによるUSB経由でのシリアル通信
私は動作中のOSのliveUSBイメージ(.iso)を作成しました。 .isoイメージを含むUSBドライブから同じPCを起動しました。
ここで、DUTが接続され、アプリケーションが実行されます。これは、ほとんどの場合、の行に「」という行があることを報告します。しかし、それはいくつかの試みで動作しますが、それは非常に矛盾しています。
ライブUSBのブートとHDDのブートがどのように違うのか分かりませんでした。
FYI、PCには4.0.4 LinuxカーネルのFedora Core 22があります。
シリアル通信:ボーレートは115200で、1ストップビットです。
ご迷惑をおかけして申し訳ありません。
おかげで、
シャハブ
編集
私はdmesg
をチェックし、ライブUSBブートに、
cdc_acm : failed to set dtr/rts
を違いを発見しました。それ以外の場合は見られません。これと同様にquestionがstackoverflowにあります。
また、デバイスが接続され、PCがLive USBスティックから起動すると、シリアル通信が正常に機能します。デバイスへのUSBケーブルが抜かれ、再度差し込まれた場合は、問題を報告します。
ライブUSBとHHDのMBRが異なります。これは、USBスティックがBIOSによってどのようにフォーマットされ、表示されるかにも依存します。一部のBIOSでは、HDD、FDDなどの選択が可能です。 –
@EugenKonkovコメントありがとうございます。しかし、どのようにMBRがシリアル通信を中断させるのか理解できませんでした。 – user3612463
アプリケーションはHDDのようなフォーマットのデータを期待していますが、別のフォーマット(ISO)で取得します。そのため、上記のエラーが表示されます。どちらの場合でも受け取ったバイト単位を比較することができますか?受信したデータをファイルにダンプし、ファイルからアプリケーションにリダイレクトします。ファイルからデータをリダイレクトするときにアプリケーションでエラーが発生しない場合は、問題があることを確認します。エラーが発生した場合は、問題がデータ内にあります。 –