Arduino®ブートローダーとは何ですか?
Arduino®ブートローダーは、すべてのArduino®ボードのチップに焼き付けられた小さなソフトウェアです。 その目的は、簡単で迅速な再プログラミングを容易にすることです。 Arduino®ブートローダーはオープンソースです。つまり、自由にコピー、変更、再配布でき、Arduino®システムでのみ有用です。
ブートローダーは、コンピューターの電源を最初に入れたときに実行される小さなソフトウェアです。 ほとんどのデスクトップコンピューターはブートローダーを使用して、コンピューターのオペレーティングシステムをメモリにロードするか、ロードパスに沿ってオペレーティングシステムを起動します。 複数のオペレーティングシステムを起動するように構成されたマシンでは、ブートローダーは、使用するオペレーティングシステムを選択するようユーザーに求める役割も果たします。 比較的単純ですが、Arduino®デバイスは本質的に非常に小さな汎用コンピューターであり、電源を入れるとブートローダーが必要です。
デフォルトのArduino®ブートローダーはシーケンスを実行して、短期メモリにロードするソフトウェアを決定します。 ボードがUSBケーブル、Xbee®無線、またはシリアル接続によってコンピューターに接続されている場合、ブートローダーはコンピューターから新しいソフトウェアをダウンロードしようとします。 Arduino®プログラムは、Arduino®スケッチとも呼ばれます。 スケッチがダウンロードされると、長期メモリに書き込まれ、実行するために短期メモリにロードされます。 ボードがコンピューターに接続されていない場合、または新しいソフトウェアのダウンロードに失敗した場合、ボードは最新のプログラムを長期メモリーからロードします。
Arduino®ブートローダーは、類似のデバイス上のソフトウェアを変更するために通常必要とされる外部プログラミングデバイスの必要性を排除するため、特に便利です。 Arduino®の発明は通常、磁気記憶装置の利点なしに、ソフトウェアをチップから直接実行します。 このアプローチは、磁気ストレージを使用するよりも高速で安価です。 ブートローダーの主な欠点は、チップ上の限られたスペースを使い果たし、ソフトウェアで利用可能なスペースを最小限に抑えることです。
一部のユーザーは、Arduino®ブートローダーの制限に不満を感じており、外部プログラミングデバイスを使用してブートローダーを削除し、新しいプログラムを手動で追加することに頼っています。 この手法により、使用可能なスペースが増加し、ソフトウェアの実行速度が多少向上しますが、かなり時間がかかるため、ほとんどのユーザーには推奨されません。 他のユーザーは、代替のArduino®ブートローダーを作成しました。その一部はオープンソースであり、オンラインで無料で入手できます。