PCソフトウェアなしの自動ブートローダ

AVRをリセットすると、PC上でプログラムを実行せずにシリアルポートであるPCからHEXファイルを受信するようにAVR ATMEGA16でブートローダを設計したい たとえば、AVRをリセットすると、シリアルポートで特定のパスからFlashへの.hexファイルがロードされます。 可能ですか?そしてどうやって? ありがとう

0
ru de
いいえ、PC上のソフトウェアを連携させずにこれを行うことはできません。
追加された 著者 Andrew Walker,
シリアルポート:いいえ。 hexファイルが意図したファイルであり、壊れていないことをどのようにして認証しますか?メディアやインスタンス化に関係なく、どのようにしてロードポイントをPCに「固定」しますか?あなたはネットワークインターフェースを通してそれをすることができました、しかし私が知っているUSBのないPCを通してさえもデバイスターゲットとして使われることを許します。他の場所からファイルを列挙するためにネットワーク共有フォルダ以外のものを使用できることを私は知っている方法はありません。それはセキュリティの問題です。とにかくあなたがそれをしたくないとは思わない。
追加された 著者 Asmyldof,

4 答え

あなたの概念は意味がありません。もちろん、シリアルポートを介して通信するためには、プログラムはPC上で実行する必要があります。このコードがオペレーティングシステムの一部であるかどうか、またはユーザーモードで実行されるものであっても、シリアルポートを使用するためにコードが必要なことは変わりません。前者の場合、「プログラム」はオペレーティングシステムの一部にすぎませんが、それが実装しているどんなプロトコルでも動けなくなるでしょう。 HEXファイルからデータを取得するだけでは、これはあまり便利ではないでしょう。

2
追加された

PCがLinuxを実行していてAVRがコンソールとして設定されているシリアルポートに接続されている場合、AVRはシリアルポートを介してコマンドを送信してホストPC上のHEXファイルを読み取ることができます。たとえば、必要なファイルが /media/flash/avr.hex にあることがわかっていれば、ブートローダは次のコマンドを送信できます。

cat /media/flash/avr.hex

...シリアルポートに接続してからシリアルポートからファイルを読み戻し、AVRのプログラムメモリにプログラムします。

1
追加された
(1)実行可能ファイルを実行する必要なく、(1)実行可能ファイルを実行する必要なく、プログラムからどこかの場所にある16進ファイルをユーザーがブートローダにダウンロードできるようにすること、ユーザーの操作なしでシリアルポートを介して接続されたWindows PCからあなたのデバイスに密かに新しい画像をダウンロードさせることはできませんか?
追加された 著者 chews,
ありがとう。それはWindows上で可能ですか?この操作についていくつかの参照を推奨できますか?
追加された 著者 Skyler,

PCがWindowsを実行している場合は、シリアルポートをコンソールポートとして使用するように設定することができます。この質問を参照してください: Windowsシリアルコンソール

あなたのAVR フ​​゙ートローダはこのコンソール ポートにログインしそれからそれを使用してPCのファイル システムからファイルを読むことができます。

1
追加された

Arduinoの USBキーボードとマウスドライバをご覧ください。それらは、一部のモデルがUSBキーボードまたはマウスとして機能することを可能にします。

USBキーボードのように動作したら、Windows-R、iexplore.exeを入力し、Webサイトをロードし、新しいhexファイルとプログラマを自己解凍型アーカイブとしてダウンロードし、すべてのセキュリティプロンプトに同意して実行します。それから、そのソフトウェアは通常の方法でArduinoをフラッシュすることができます。

それがすべて起こっているのを見るのはユーザーにとって恐ろしいことでしょう…

編集:あなたはシリアルポートを言った。まあ。気にしないで。

0
追加された