1

アプリケーションは USB 経由のシリアル通信を使用し、PC が HDD から起動するときに正常に動作します。

動作中の OS の liveUSB イメージ (.iso) を作成しました。.iso イメージを含む USB ドライブから同じ PC を起動しました。

ここで、DUT が接続され、アプリケーションが実行されます。これは、ほとんどの場合、ライン上にガベージがあることを報告します。ただし、いくつかの試行では機能しますが、非常に一貫性がありません。

Live USB からの起動が HDD 起動とどう違うのか理解できませんでした。

参考までに、PC には 4.0.4 Linux カーネルを搭載した Fedora Core 22 があります。

シリアル通信: ボーレートは 115200 で 1 ストップ ビットです。

どんな助けでも大歓迎です。

ありがとう、

シャハブ

編集

調べdmesgてみたら違いがありました

cdc_acm : failed to set dtr/rtsライブ USB ブートで。それ以外の場合は見られません。スタックオーバーフローに関するこの質問に似ています。

別の観察では、デバイスが接続され、PC がライブ USB スティックから起動すると、シリアル通信は正常に機能します。デバイスへの USB ケーブルを抜き差しすると、問題が報告されます。

4

1 に答える 1

0

USB ケーブルを再接続すると、おそらくシリアル ポート番号が増加し、/dev/ttyUSB0 が無効になり、おそらく新しく機能する /dev/ttyUSBX が作成されます。アプリケーションが /dev/ttyUSB0 を開いたままにしているため、アプリを再起動するまで削除されません。古い ttyUSB0 を読み続けると、ガベージが得られます。2 つ目のヒントは、ライブから起動するときにおそらく読み取り専用のファイルシステムを使用しているため、/dev フォルダーに新しいものを作成できないため、新しいデバイスが表示されないことです。

于 2016-11-01T11:40:47.047 に答える