1

この質問は、Arduino IDE を介して仮想シリアル ポートに Arduino コードをアップロードするに関連しています。主な問題は、Arduino を使用する代わりに仮想 COM ポートにコードをアップロードできることです。そのため、バイナリ コードの出力を取得して、他のアプリケーションで使用することができます。これに関する問題は、アップロードのプロセスが Arduino のブートローダーにも関連しているため、アップロード プロセスが 100% に達しないことです。提案された解決策は、アプリケーションにブートローダーを実装するか、既に存在するものを使用することでした。

私の質問は、Arduino IDE のさまざまなプログラマー モードを利用して、ブートローダーをバイパスして、アップロード プロセスが 100% に達し、コードが実際に仮想 COM ポートに到達するようにすることはできますか?

どんな助けでも大歓迎です。ありがとう

4

1 に答える 1

0

仮想シリアル ポート ドライバがタイムアウトまたはバッファで動かなくなっているようです。IDE は、AVR にロードされた Arduino のブートローダーに組み込まれているものと一致する特定のプロトコルで avrdude を呼び出します。他にもブートローダがあり (実際には多く、言及するには多すぎます)、タイミングが異なるものもありますが、それらを使用することは基本的に Arduino ではなくなります。可能性を確認するには.\avrdude.exe -c.

シリアルポートを介して何が起こっているかのダンプを取得しようとしているだけの場合。Virtual Serial Ports Emulatorを使用しました。モジュール式で、必要なものを構築できるという点で非常に用途が広いです。

また、これについて他のスレッドから言及されているように、シリアル ポート上のデータはSTK500 プロトコルの上にフォーマットされていることに注意してください。また、他のスレッドで、別のツールを使用してデータを取得したくないことにも言及しています。一方、別のプロトコルを使用するには、ソースの compiler.java を変更し、新しいプロトコルで avrdude を呼び出すようにプロジェクトを再構築する必要があります。したがって、別のツールで取得することもできます。以下を参照してください。

avrdude に供給されているものから生のバイナリを取得できます。最初は明らかではないかもしれません。avrdude として、BIN ではなく ELF を取得します。Arduino IDE には、avr-gcc とそのツールがすべて含まれています。.\Arduino\hardware\tools\avr\bin にある avr-objcopy は、avrdude に集められた IDE の出力を、おそらく必要なバイナリに変換できます。シリアル ポート ストリームをスコープする必要はありません。

これを手動で行うには、IDE の詳細なコンパイル出力を有効にして、IDE の一時作業ディレクトリを見つける必要があります。また、 avr-objcopy をパスに入れる可能性があります。次に、以下の例のように呼び出して、スケッチのファイル名を私のものに置き換えます。

C:\Users\mflaga\AppData\Local\Temp\build6135656488044319492.tmp>avr-objcopy -I ihex FilePlayer.cpp.hex -O binary FilePlayer.cpp.bin

avrdude.exe を avrdude と avr-objcopy の両方を呼び出して自動化するバッチファイルに置き換えることができる場合

于 2013-04-09T03:18:13.290 に答える