Arduinoブートローダー


9

私は組み込みの世界に非常に新しいです。今までS / Wのみで作業していた

Arduinoブートローダーの使い方を誰か教えていただけますか?Arduinoに、チップに追加する必要があるいくつかの追加コンポーネントを使用して簡単な数学を実行してもらいたい。

必ずブートローダーが必要ですか?

回答:


10

Arduinoは、基本的にはAtmel AVRマイクロコントローラーであり、動作させるのに十分なサポート電子機器を備えています。AVRには内蔵のフラッシュがあり、電源を切ってもプログラムを維持できますが、AVRチップを直接プログラムするには、STK-500のようなツールが必要です。Arduinoは、ボード上に小さなUSBインターフェイスを備え、Arduinoブートローダーコードをすでにチップに搭載することで、これを克服しています。これにより、PC側のアプリケーションがプログラムをデバイスに転送し、本質的にそれをフラッシュさせることができます。

つまり、Arduinoを入手した場合、ブートローダーはすでにそこにあり、その仕事は自​​動的に行われます。PCでプログラムをコーディングし、IDEの「アップロード」ボタンを押すと、数分以内にプログラムがArduinoで実行されます。ブートローダーはその仕事を完全に透過的に行います。

fwiw、私はArduino 2009 STK-500 を個人的に所有しており、AVRでオンザメタルプログラミングを実行できますが、Arduinoのブートローダーをバイパスする必要はありません。


Arduinoを使用してAVRをプログラミングする方法の詳細を参照してください。
グレッグ


@Greg実際には、duemilanoveがブートローダーを裸のatmega328にフラッシュするためのarduinoでサポートされたスケッチがあります。明らかに、この機能を拡張して、あらゆるプログラムを裸のatmega328にフラッシュすることができます。ISPコネクタは必要ありません。基本的に、arduinoマイクロをISPに変換します。
NickHalden 2011年

5

Arduinoでは、シリアル/ USB経由でスケッチをプログラムするためにブートローダーが必要です。それがなければ、AVRチップのフラッシュメモリを直接プログラムするためのAVRインシステムプログラマー(ISP)が必要です。

Arduinoを購入すると、すでにAVRチップに焼き付けられたブートローダーが付属しています。あなた自身のボードを構築している場合にのみ、それについて心配する必要があります。

これは役立つはずです: Arduinoのコンセプトがわかりません


4

もう少し理論的な答えを挙げます。他の答えは実用的な観点からはかなり良いです。ブートローダーは、フラッシュメモリの特別なセグメントに常駐するコードです。そのセグメントに常駐するコードは、セルフプログラミング命令の実行が許可されているため、STK500などの従来のプログラマー(つまり、インシステムプログラミングISPまたは高電圧プログラミングHVP)なしでフラッシュメモリ(つまり、ユーザーコードが常駐する場所)を変更できます。またはAVRISP mkII。

原則として、UART受信データ割り込みサービスルーチン(ISR)は、ブートローダーコードに関数呼び出しを行い、シリアルに送信されるプログラムイメージをフラッシュメモリのユーザープログラム空間にコピーします。起動時に、チップ上にあるすべてのプログラムが実行を開始しますが、適切に形成されたシリアルデータが早い段階で受信されると、AVRは一種の自己プログラミングモードに入ります。UART ISRには、起動時の短い期間のみブートローダーコードに依存するロジックがあります。詳細はそれより少し複雑ですが、それが基本的な考え方です。

これの利点は、Arduinoを購入するだけで、無料の統合開発環境(IDE)をダウンロードし、Arduinoスケッチ(プログラム)の作成を開始して、USB経由でそのままAVRにダウンロードできることです。 Arduinoボードに統合された豪華な小さなFTDI ICチップに。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.