これは、Ubuntu Online、Fedora Online、Windowsオンラインエミュレーター、MACOSオンラインエミュレーターなどの複数の無料オンラインワークステーションのXNUMXつを使用してOnWorks無料ホスティングプロバイダーで実行できるコマンドavrdudeです。
プログラム:
NAME
アヴェルデ —「シンプルな」AtmelAVRMCUプログラマー用のドライバープログラム
SYNOPSIS
アヴェルデ -p パルトノ [-b ボーレート] [-B ビットクロック] [-c プログラマーID] [-C 設定ファイル] [-D] [-e]
[-E 出口仕様[,出口仕様]][-F] [-i 遅らせる] [-n -ログファイル] [-n] [-O] [-P ポート] [-q] [-s]
[-t] [-u] [-U memtype:op:filename:filefmt] [-v] [-x extended_param] [-V]
DESCRIPTION
アヴルデュード AtmelAVRマイクロコントローラーにコードとデータをダウンロードするためのプログラムです。 アヴルデュード
AtmelのSTK500プログラマー、AtmelのAVRISPおよびAVRISP mkIIデバイス、AtmelのSTK600をサポートします。
AtmelのJTAGICE(mkI、mkII、3、後者のXNUMXつもISPモード)、プログラマーは準拠
AppNote AVR910およびAVR109(Butterflyを含む)、および単純な有線接続
に直接接続されたプログラマー PPI(4)または パーポート(4)パラレルポート、または標準
シリアルポート。 最も単純なケースでは、ハードウェアは、
パラレルポートへのそれぞれのAVR信号線。
MCUはでプログラムされています シリアル プログラミング モード、そう、 PPI(4)ベースのプログラマー、
MCU信号「/RESET」、「SCK」、「MISO」、「MOSI」をパラレルポートに接続する必要があります。
オプションで、パラレルポートの未使用の出力ピンを使用して電源を供給することができます。
MCU部分に電力を供給するため、パッシブスタンドアロンを構築することも可能です
プログラミング装置。 の現在の動作状態を示すいくつかのステータスLED
プログラマーを接続でき、バッファー/ドライバーIC74LS367を制御するための信号を利用できます。
(または74HCT367)。 後者は、パラレルポートをMCUから切り離すのに役立ちます。
システムプログラミングが使用されます。
シリアルポートに接続する同様に単純なビットバンプログラミングアダプタの数は次のとおりです。
人気のあるPonyprogシリアルアダプター、DASAおよびDASA3などもサポートされています
以前はによってサポートされていたアダプタ ウイスプ(1)。 これらのアダプタは次のようになっていることに注意してください
物理シリアルポートに接続されています。 USB上でエミュレートされたシリアルポートへの接続は
まったく機能しないか、非常に遅く動作する可能性があります。
少なくとも4つのハードウェアGPIOが利用可能なLinuxシステムがある場合(ほぼ
すべての組み込みLinuxボード)追加のハードウェアなしで実行できます-それらを接続するだけです
AVRのMOSI、MISO、RESET、SCKピンで、linuxgpioプログラマータイプを使用します。 それ
LinuxsysfsGPIOインターフェースを使用して回線をビットバンします。 もちろん、注意が必要です
電圧レベルの互換性について。 また、厳密には必要ありませんが、強く必要です。
何らかの方法で過電流状態からGPIOピンを保護することをお勧めします。 もっとも単純な
いくつかの抵抗を直列に配置するか、それでも次のようなトライステートバッファドライバを使用することです。
74HC244。 見て http://kolev.info/avrdude-linuxgpio より詳細なチュートリアルについては
このプログラマータイプの使用について。
AtmelのSTK500プログラマーもサポートされており、シリアルポートに接続します。 両方、ファームウェア
バージョン1.xおよび2.xは処理できますが、異なるプログラマータイプの仕様が必要です
(今では)。 ファームウェアバージョン2を使用して、高電圧プログラミングもサポートされています。
パラレルおよびシリアル(プログラマータイプstk500ppおよびstk500hvsp)。
STK500 V2.xプロトコルを利用して配線ボードがサポートされていますが、単純なDTR/RTSトグルは
ボードをプログラミングモードに設定するために使用されます。 プログラマーのタイプは「配線」です。
Arduino(STK500 1.xに非常に似ています)は、独自のプログラマーを介してサポートされています
タイプ仕様「arduino」。
BusPirateは、AVRプログラマーとしても使用できる多用途のツールです。 独身者
BusPirateは、最大3つの独立したAVRに接続できます。 上のセクションを参照してください で
パラメータ 詳細は以下をご覧ください。
AtmelのSTK600プログラマーは、ISPおよび高電圧プログラミングモードでサポートされており、
USB経由で接続します。 ATxmegaデバイスの場合、STK600はPDIモードでサポートされます。 にとって
ATtiny4 / 5/9/10デバイス、STK600およびAVRISPmkIIはTPIモードでサポートされています。
AtmelのアプリケーションノートAVR910で説明されている単純なシリアルプログラマー、および
AtmelのアプリケーションノートAVR109(AVRでも使用されています)に記載されているブートローダー
バタフライ評価ボード)、シリアルポートでサポートされています。
AtmelのJTAGICE(mkI、mkII、および3)は、メモリ領域をアップまたはダウンロードするためにもサポートされています
AVRターゲットから/へ(オンチップデバッグのサポートなし)。 JTAG ICE mkII、JTAGの場合、
debugWireおよびISPモードは、少なくとも4.14のファームウェアリビジョンがある場合にサポートされます。
(3進数)。 JTAGICEXNUMXは、JTAG、debugWIRE、およびISPモードのすべてもサポートします。 以下を参照してください
debugWireの制限。 ATxmegaデバイスの場合、JTAGICEmkIIはPDIモードでサポートされています。
リビジョン1のハードウェアとファームウェアのバージョンが5.37(XNUMX進数)以上の場合。 にとって
ATxmegaデバイス、JTAGICE3はPDIモードでサポートされています。
Atmel-ICE(ARM / AVR)は、すべてのモード(JTAG、Xmega用のPDI、debugWIRE、ISP)でサポートされています。
EDBGプロトコル(CMSIS-DAP互換)を使用したAtmelのXplainedProボードがサポートされています
「jtag3」プログラマータイプを使用します。
AVR Dragonは、すべてのモード(ISP、JTAG、HVSP、PP、debugWire)でサポートされています。 で使用する場合
JTAGおよびdebugWireモードでは、AVRDragonはJTAGICE mkIIと同様に動作するため、すべてのデバイス-
そのデバイスに関する特定のコメントも適用されます。 ISPモードで使用する場合、AVRドラゴン
AVRISP mkII(またはISPモードのJTAG ICE mkII)と同様に動作するため、すべてのデバイス固有
コメントがそこに適用されます。 特に、ドラゴンはかなり速いISPから始まります
クロック周波数なので、 -B ビットクロック 安定したISPを実現するにはオプションが必要になる場合があります
コミュニケーション。 ATxmegaデバイスの場合、AVRDragonはPDIモードでサポートされます。
少なくとも6.11(XNUMX進数)のファームウェアバージョンがあります。
avrftdi、USBasp ISP、およびUSBtinyISPアダプターもサポートされています。 アヴェルデ 持っています
libusbをサポートしてコンパイルされました。 USBaspISPとUSBtinyISPはどちらもシンプルなファームウェアを備えています-
それぞれATmega8(またはATmega88)またはATtiny2313で実行されるUSB実装のみ。
libftdiがコンパイルされている場合 アヴェルデ、avrftdiデバイスは多くのサポートを追加します
FTDIの2232C/D / Hおよび4232HパーツをMPSSEモードで実行しているプログラマーは、ハードコーディングします
(チップ内)SCKをビット1に、MOSIをビット2に、MISOをビット3に。リセットは通常ビット4です。
Atmel DFUブートローダーは、FLIPプロトコルバージョン1(AT90USB*と
ATmega * U *デバイス)、およびバージョン2(Xmegaデバイス)。 に関するいくつかのヒントについては、以下を参照してください
FLIPバージョン1プロトコルの動作。
入力ファイルを提供でき、出力ファイルは次のようなさまざまなファイル形式で書き込むことができます。
チップにダウンロードするデータ、Intel hex形式、または
MotorolaS-recordフォーマット。 これらのファイルを作成するために利用できるツールはたくさんありますが、
ような オリジナル(1)スタンドアロンアセンブラとして、または avr-objcopy(1)GNUの最終段階
AVRマイクロコントローラー用のツールチェーン。
提供 自由(3)コンパイル時に存在していました アヴェルデ、入力ファイルも最終的なものにすることができます
リンカによって生成されたELFファイル。 適切なELFセクションが調べられます。
書き込むメモリ領域に応じて。
アヴルデュード サポートされているAVR部品のEEPROMおよびフラッシュROMメモリセルをプログラムできます。 どこ
シリアル命令セットでサポートされているため、ヒューズビットとロックビットもプログラムできます。
これらは内に実装されています アヴェルデ 個別のメモリタイプとして、を使用してプログラムできます
ファイルからのデータ( -m オプション)またはターミナルモードから( ダンプ 書きます
コマンド)。 チップを読み取ることも可能です(コードで保護されていない場合)
以前はもちろん)、データをファイルに保存します。 最後に、「ターミナル」モードは
MCUとインタラクティブに通信し、表示または
個々のメモリセルをプログラムします。 STK500およびSTK600プログラマーでは、いくつかの運用
パラメータ(ターゲット供給電圧、ターゲットAref電圧、マスタークロック)を調べて、
ターミナルモード内からも変更されました。
オプション
すべての異なる操作modiを制御するには、いくつかのオプションが必要です。
に指定 アヴェルデ.
-p パルトノ
これは、のすべての呼び出しに必須の唯一のオプションです。 アヴェルデ。 それ
プログラマーに接続されているMCUのタイプを指定します。 これらは読まれます
設定ファイルから。 現在サポートされているMCUタイプには、?を使用します。 パートノとして、これ
ターミナルにpartnoidと公式パーツ名のリストを出力します。 (両方
-pオプションと一緒に使用できます。)
次の部分には特別な注意が必要です。
AT90S1200 AT90S1200のISPプログラミングプロトコルは、微妙に異なります
他のAVRのそれからの方法。 したがって、すべてのプログラマーがサポートしているわけではありません
この装置。 動作することが知られているのは、すべて直接ビットバンプログラマーです。
そして、STK500v2プロトコルを話しているすべてのプログラマー。
AT90S2343AT90S2323とATtiny22は同じアルゴリズムを使用します。
ATmega2560、ATmega2561
128 KBを超えるフラッシュアドレス指定は、すべてのプログラミングでサポートされているわけではありません
ハードウェア。 動作することが知られているのは、jtag2、stk500v2、およびbit-bangです。
プログラマ。
ATtiny11 ATtiny11は、高電圧シリアルモードでのみプログラムできます。
-b ボーレート
それぞれで指定されているRS-232接続ボーレートを上書きします
プログラマーによる構成ファイルのエントリー。
-B ビットクロック
JTAGインターフェイスまたはISPクロック(JTAG ICE)のビットクロック周期を指定します
それだけ)。 値はマイクロ秒単位の浮動小数点数です。 または、
指定するために、値の末尾に「Hz」、「kHz」、または「MHz」を付けることができます。
周期ではなく、ビットクロック周波数。 JTAGのデフォルト値
ICEは、ターゲットMCUに適した約1マイクロ秒のビットクロック周期になります。
4MHz以上のクロックで動作します。 STK500の特定のパラメーターとは異なり、
JTAG ICEは、プログラミング時にすべてのパラメータをデフォルト値にリセットします
ソフトウェアはICEからサインオフするため、より低いクロック速度で実行されているMCUの場合、
このパラメーターは、コマンドラインで指定する必要があります。 あなたは使用することができます
あなたの'default_bitclock'キーワード ${HOME}/。avrduderc デフォルトを割り当てるファイル
呼び出しごとにこのオプションを指定する必要がないようにする値。
-c プログラマーID
引数で指定されたプログラマーを使用してください。 プログラマーとそのピン
構成は構成ファイルから読み取られます( -C オプション)。 新しいピン
構成は、構成を使用して簡単に追加または変更できます
作成するファイル アヴェルデ プログラマーがいる限り、さまざまなプログラマーと協力する
AtmelAVRシリアルプログラム方式をサポートします。 あなたは使用することができます
あなたの'default_programmer'キーワード ${HOME}/。avrduderc 割り当てるファイル
毎回このオプションを指定する必要がないようにするデフォルトのプログラマー
呼び出し。 サポートされているすべてのプログラマーの完全なリストがに出力されます
?を使用して端末プログラマーIDとして。
-C 設定ファイル
指定された構成ファイルを使用して、構成データをロードします。 このファイルには
すべてのプログラマーと部品の定義 アヴェルデ 知っています。 あなたが持っている場合
プログラマーまたはその一部 アヴェルデ について知らない、あなたはそれをに追加することができます
設定ファイル(必ずパッチを作成者に送信して、次のようにできるようにしてください)
次のバージョンに組み込まれます)。 次の場所にある構成ファイルを参照してください。
/etc/avrdude.conf、フォーマットの説明が含まれています。
If 設定ファイル として書かれています +ファイル名 次に、このファイルはシステムの後に読み取られます
ワイドおよびユーザー構成ファイル。 これを使用して、エントリをに追加できます。
システム全体の構成ファイルにパッチを適用せずに構成します。 かもね
数回使用すると、ファイルはコマンドで指定されたのと同じ順序で読み取られます
ライン。
-D フラッシュの自動消去を無効にします。 いつ -U フラッシュメモリのオプションは
指定、 アヴェルデ いずれかを開始する前にチップ消去を実行します
フラッシュをプログラムするのは一般的に間違いなので、プログラミング操作
最初に消去を実行せずに。 このオプションはそれを無効にします。 自動消去は
ATxmegaデバイスは以前にページ消去を使用できるため、これらのデバイスには使用されません
明示的なチップ消去が不要になるように各ページを書き込みます。 ただし、注意してください
現在の操作の影響を受けていないページは、以前の操作を保持します
内容。
-e チップ消去を実行します。 これにより、フラッシュの内容がリセットされます
ROMとEEPROMを値「0xff」に設定し、すべてのロックビットをクリアします。 を除いて
ページ消去を使用できるATxmegaデバイス、それは基本的に前提条件です
フラッシュROMを再プログラムする前にコマンドを実行します。 唯一の例外
新しいコンテンツによってビットが排他的にプログラムされる場合
値「1」から「0」まで。 EERPOMセルを再プログラムするために、
MCUは自動消去を提供するため、明示的な事前チップ消去が必要です
その場合は、セルをプログラミングする前にサイクルしてください。
-E 出口仕様[,出口仕様]
デフォルトでは、 アヴェルデ パラレルポートを出口で同じ状態のままにします
起動時に見つかりました。 このオプションは、「/RESET」および「/RESET」の状態を変更します。
「Vcc」は、パラレルポートが残されているラインです。 出口仕様 引数
次のように提供されます。
リセット '/ RESET'信号は、プログラム終了時にアクティブ化されたままになります。
開催されます 低いです、MCUをリセット状態に保つため
その後。 特に、のプログラミングアルゴリズムに注意してください。
AT90S1200デバイスは、「/RESET」信号がアクティブであることを要求します
MCUの電源を入れるので、外部電源が
このMCUタイプに使用され、以前の呼び出し アヴェルデ これとともに
指定されたオプションは、これを保証するための可能な方法のXNUMXつです。
条件。
ノーセット '/ RESET'行はプログラムの終了時に非アクティブ化されるため、
プログラミングハードウェアが残っている間に実行するMCUターゲットプログラム
接続されています。
vcc このオプションは、これらのパラレルポートピンをアクティブのままにします(つまり、 高いです)
これは、MCUに「Vcc」電力を供給するために使用できます。
ノヴク このオプションは、パラレルポートの「Vcc」ピンをでプルダウンします。
プログラム終了。
d_高 このオプションは、パラレルポートの8つのデータピンをアクティブのままにします。
(NS 高いです)
d_low このオプションは、パラレルポートの8つのデータピンを非アクティブのままにします。
(NS 低いです)
複数 出口仕様 引数はコンマで区切ることができます。
-F 通常は、 アヴェルデ デバイスの署名がパーツから読み取られたことを確認しようとします
続行する前に合理的です。 それは時々起こる可能性があるので
デバイスのデバイス署名が壊れている(消去または上書きされている)が、それ以外の場合
正常に動作している場合、このオプションはチェックをオーバーライドするために提供されています。 また、
ローカルでパラメータを調整できるAtmelSTK500やSTK600のようなプログラマー
プログラミングツールへ(ターゲットへの実際の接続とは無関係)
コントローラ)、このオプションはと一緒に使用できます -t ターミナルで続行するには
モード。
-i 遅らせる
ビットバンタイプのプログラマーの場合、約 遅らせる マイクロ秒
各ビット状態の変化の間。 ホストシステムが非常に高速な場合、またはターゲット
遅いクロックで動作します(32 kHzクリスタル、または128kHz内部RCなど)
発振器)、これはISPの要件を満たすために必要になる可能性があります
クロック周波数は、CPUクロック周波数の1/4を超えてはなりません。 これ
非常に短い遅延でも可能にするために、スピンループ遅延として実装されます。 の上
Unixスタイルのオペレーティングシステムでは、スピンループは最初に
システムタイマーなので、マイクロ秒数はかなり現実的かもしれませんが、
一定のシステム負荷を想定している間 アヴェルデ が走っています。 Win32の動作時
システムでは、マイクロ秒あたりの事前設定されたサイクル数は次のように想定されます。
非常に高速または非常に低速のマシンでは、少しずれている可能性があります。
-l ログファイル
ログファイル ではなく stderr 診断出力用。 イニシャルに注意してください
診断メッセージ(オプションの解析中)は引き続き書き込まれます stderr
とにかく。
-n No-write-実際にMCUにデータを書き込むことを無効にします(デバッグに役立ちます)
アヴェルデ ).
-O Atmelアプリケーションに従ってRC発振器の実行時キャリブレーションを実行します
AVR053に注意してください。 これは、STK500v2、AVRISP mkII、およびJTAGでのみサポートされます。
ICEmkIIハードウェア。 結果はのEEPROMセルに保存されることに注意してください。
アドレス0。
-P ポート
ポート プログラマーが接続されているデバイスを識別するため。 に
デフォルトでは / dev / ppi0 ポートが使用されますが、プログラマーが通常どおりに入力する場合
シリアルポートに接続し、 / dev / cuaa0 ポートがデフォルトです。 必要な場合
別のパラレルまたはシリアルポートを使用するには、このオプションを使用して
代替ポート名。
Win32オペレーティングシステムでは、パラレルポートはlpt1〜
lpt3、それぞれアドレス0x378、0x278、および0x3BCを参照します。 もしも
パラレルポートには、別のアドレス、このアドレスを介してアクセスできます
一般的なC言語表記を使用して直接指定できます(つまり、
0進値の接頭辞は「XNUMXx」です)。
JTAG ICE mkIIおよびJTAGICE3の場合、 アヴェルデ libusbで構成されています
サポート、 ポート または、次のように指定できます USB[:シリアル番号]。 この意志
原因となる アヴェルデ USBでプログラマーを検索します。 もしも シリアル番号 も指定され、
見つかったJTAGICEmkIIから読み取られたシリアル番号と照合されます
USBで。 一致は、指定されたものから既存のコロンを削除した後に行われます。
シリアル番号、および右から左、したがって、からの最下位バイトのみ
シリアル番号を指定する必要があります。
AVRISP mkIIデバイスはUSB経由でのみ通信できるため、まったく同じ方法です
ポートを指定する必要があります。
HIDモードで実行されているUSBプログラマー「AVR-Doper」の場合、ポートは
として指定 avrdoper。 LibusbのサポートはUnixでは必要ですが、Windowsでは必要ありません。
AVR-Doperの詳細については、を参照してください。
http://www.obdev.at/avrusb/avrdoper.html.
シリアルを実装していない単純なデバイスであるUSBtinyISPの場合
番号、複数のデバイスは、USB内の場所によって区別できます
階層。 それぞれを参照してください トラブルシューティング 詳細のエントリ
例のドキュメント。
ある種のより高いレベルを使用してシリアルポートに接続するプログラマー向け
プロトコル(ビットバンスタイルのプログラマーとは対照的に)、 ポート 次のように指定できます
net:host:ポート。 この場合、ローカルデバイスを開こうとする代わりに、TCP
(TCP)へのネットワーク接続 ポート on host 確立されています。 リモートエンドポイント
ネットワークストリームを接続するターミナルサーバーまたはコンソールサーバーであると見なされます
実際のプログラマーが接続されているローカルシリアルポートに接続します。 The
ポートは、たとえば透過的なものを使用して適切に構成されていると見なされます
STK8の115200ボーでのパリティなしの500ビットデータ接続。
-q 読み取りまたは書き込み中のプログレスバーの出力を無効(またはクエル)します
端末。 さらに静かな動作のために、もう一度指定してください。
-s セーフモードプロンプトを無効にします。 セーフモードがXNUMXつ以上のヒューズを検出したとき
ビットが意図せずに変更された場合、に関する確認を求められます
ヒューズビットの回復を試みるかどうか。 これを指定する
フラグはプロンプトを無効にし、ヒューズビットを回復する必要があると想定します
最初に確認を求めずに。
-t 告げる アヴェルデ up-またはの代わりにインタラクティブな「ターミナル」モードに入る
ファイルのダウンロード。 ターミナルモードの詳細については、以下を参照してください。
-u セーフモードヒューズビットチェックを無効にします。 セーフモードはデフォルトで有効になっており、
意図しないヒューズビットの変更を防ぐことを目的としています。 有効にすると、セーフモード
プログラムでヒューズビットが異なることが判明した場合、警告を発行します
当時よりも終了 アヴェルデ 呼び出されました。 セーフモードはヒューズビットを変更しません
それ自体ではなく、端末が非
インタラクティブ。この場合、セーフモードは無効になります。 を参照してください -s 無効にするオプション
セーフモードプロンプト。
構成ファイルのXNUMXつに行がある場合
default_safemode = いいえ;
セーフモードはデフォルトで無効になっています。 ザ -u オプションの効果はその中で否定されます
ケース、すなわちそれ 可能 セーフモード。
セーフモードは、AVR32、Xmega、およびTPIデバイスでは常に無効になっています。
-U memtype:op:filename[:形式でアーカイブしたプロジェクトを保存します.]
示されているようにメモリ操作を実行します。 ザ メモリタイプ フィールドは
操作するメモリタイプ。 使用可能なメモリタイプはデバイスによって異なります。
実際の構成は、 部 ターミナルモードでのコマンド。
通常、デバイスのメモリ構成には、少なくともメモリタイプが含まれています
フラッシュ EEPROM。 現在知られているすべてのメモリタイプは次のとおりです。
キャリブレーションXNUMXバイト以上のRC発振器キャリブレーションデータ。
eepromデバイスのEEPROM。
efuse拡張ヒューズバイト。
flashデバイスのフラッシュROM。
ヒューズヒューズバイトがXNUMXつしかないデバイスのヒューズバイト。
hfuse上位ヒューズバイト。
lfuse低ヒューズバイト。
lockロックバイト。
シグニチャXNUMXつのデバイスシグニチャバイト(デバイスID)。
ヒューズN ATxmegaデバイスのヒューズバイト、 N の整数です
デバイスでサポートされている各ヒューズ。
アプリケーションATxmegaデバイスのアプリケーションフラッシュエリア。
apptableATxmegaデバイスのアプリケーションテーブルフラッシュエリア。
bootATxmegaデバイスのブートフラッシュ領域。
prodsig ATxmegaデバイスの生産署名(キャリブレーション)領域。
usersigATxmegaデバイスのユーザー署名領域。
当学校区の op フィールドは、実行する操作を指定します。
r デバイスメモリを読み取り、指定されたファイルに書き込みます
w 指定されたファイルからデータを読み取り、デバイスメモリに書き込みます
v デバイスと指定されたファイルの両方からデータを読み取り、
確認する
当学校区の ファイル名 フィールドは、読み取りまたは書き込みするファイルの名前を示します。 ザ
形式でアーカイブしたプロジェクトを保存します. フィールドはオプションであり、読み取りまたは書き込みするファイルの形式が含まれます。
フォーマット 次のいずれかになります。
i インテル XNUMX 進数
s モトローラSレコード
r 生のバイナリ; フラッシュROMデータの場合、リトルエンディアンのバイトオーダー
e ELF(Executable and Linkable Format)
m すぐに; コマンドラインで指定された実際のバイト値。
カンマまたはスペース。 これは、ヒューズバイトを持たずにプログラミングするのに適しています
シングルバイトファイルを作成するか、ターミナルモードに入ります。
a 自動検出; 入力にのみ有効で、入力が提供されていない場合にのみ有効です
at stdin.
d XNUMX進数; これと次の形式は出力でのみ有効です。 彼ら
それぞれのメモリセクションに対してXNUMX行の出力を生成し、
値のコンマ区切りリスト。 これは特に便利です
ヒューズビット設定などの後続処理。
h XNUMX進数; 各値は文字列を取得します 0x 付加されます。
o XNUMX進数; 各値は 0 8インチ未満でない限り先頭に追加
その場合、プレフィックスは取得されません。
b バイナリ; 各値は文字列を取得します 0b 付加されます。
デフォルトでは、入力ファイルの自動検出と生のバイナリ形式を使用します
出力ファイル用。 次の場合に注意してください ファイル名 コロンが含まれています 形式でアーカイブしたプロジェクトを保存します. 分野は
コロンに続くファイル名の部分がそうでない場合、オプションではなくなりました
と誤解される 形式でアーカイブしたプロジェクトを保存します..
あらゆる種類のフラッシュメモリ領域(のさまざまなサブ領域を含む)を読み取る場合
Xmegaデバイス)、結果の出力ファイルは含まれないように切り捨てられます
プログラムされていない(消去された)メモリを示す末尾の0xFFバイト。 したがって、
メモリ全体がプログラムされていないため、出力ファイルには
内容は全部。
略語として、フォーム -U ファイル名 指定するのと同じです -U
flash:w:filename:a。 これは次の場合にのみ機能します ファイル名 コロンがありません
ボーマンは
-v 詳細出力を有効にします。 もっと -v オプションは冗長性レベルを上げます。
-V データをアップロードするときに自動検証チェックを無効にします。
-x extended_param
合格 extended_param 拡張として選択されたプログラマーの実装に
パラメータ。 拡張パラメータの解釈は、
プログラマー自身。 拡張を受け入れるプログラマーのリストについては、以下を参照してください
パラメーター。
ターミナル モード
このモードでは、 アヴェルデ MCUとの通信を初期化するだけで、ユーザーを待ちます
標準入力のコマンド。 コマンドとパラメータは最短に省略できます
明確な形。 ターミナルモードは、を使用してコマンド履歴を提供します 読み込まれた行(3)なので、以前は
入力したコマンドラインを呼び出して編集することができます。 次のコマンドは現在
実装:
ダンプ メモリタイプ addr nバイト
読む nバイト 指定されたメモリ領域からのバイト、およびそれらをに表示します
通常のXNUMX進数およびASCII形式。
ダンプ 別のメモリの内容をダンプし続けます nバイト 前の場所
ダンプ コマンドは中断しました。
書きます メモリタイプ addr バイト1 ... バイトN
アドレスから始めて、それぞれのメモリセルを手動でプログラムします addr、使用して
その価値 バイト1 バイトN。 この機能は銀行には実装されていません-
ATMegaデバイスのフラッシュメモリなどのアドレス指定されたメモリ。
消去 チップ消去を実行します。
送信 b1 b2 b3 b4
生の命令コードをAVRデバイスに送信します。 機能にアクセスする必要がある場合
によって直接サポートされていないAVR部品の アヴェルデ、このコマンドで許可
あなたはそれを使用しますが アヴェルデ コマンドを実装していません。 使用する場合
ダイレクトSPIモードでは、最大3バイトを省略できます。
SIG デバイス署名バイトを表示します。
SPI ダイレクトSPIモードに入ります。 ザ プログラムされた ピンはスレーブ選択として機能します。 のみ 。
on パラレル ビットバン プログラマ。
部 現在の部品設定とパラメータを表示します。 チップ固有のものが含まれています
デバイスでサポートされているすべてのメモリタイプ、読み取り/書き込みを含む情報
タイミングなど
pgm プログラミングモードに戻ります(ダイレクトSPIモードから)。
vtarg 電圧
ターゲットの供給電圧をに設定します 電圧 ボルト。 のみ 。 on
STK500 STK600 プログラマー。
ヴァレフ [チャンネル] 電圧
調整可能な電圧源をに設定します 電圧 ボルト。 この電圧は通常
ターゲットを駆動するために使用されます アーレフ STK500への入力。 Atmel STK600では、XNUMXつ
オプションで選択できる基準電圧が利用可能です
チャンネル 引数(0または1のいずれか)。 のみ 。 on STK500 STK600
プログラマー。
フォスク 周波数[M | k]
マスターオシレーターを 周波数 Hz。 オプションの末尾の文字 M
末尾の文字である1E6を掛けます k 1E3による。 のみ 。 on STK500
STK600 プログラマー。
フォスク OFF
マスターオシレーターをオフにします。 のみ 。 on STK500 STK600
プログラマー。
SCK 期間
STK500 STK600 プログラマ のみ: SCKクロック周期をに設定します 期間
マイクロ秒。
JTAG ICE のみ: JTAGICEビットクロック周期をに設定します 期間 マイクロ秒。 ノート
STK500設定とは異なり、この設定はデフォルトに戻されます
プログラミングソフトウェアがサインオフしたときの値(約1マイクロ秒)
JTAGICEから。 このパラメータは、JTAGICEmkIIでも使用できます。
JTAGICE3、およびAtmel-ICEは、ICEの操作時にISPクロック周期を指定します
ISPモードで。
パームス STK500 STK600 プログラマ のみ: 現在の電圧とマスターを表示します
オシレーターパラメーター。
JTAG ICE のみ: 現在の目標供給電圧とJTAGビットクロックを表示します
レート/期間。
詳細 [レベル]
変更( レベル が提供されます)、または詳細レベルを表示します。 初期
詳細レベルは、次の数によって制御されます。 -v に与えられたオプション
コマンドライン。
?
助けます 利用可能なコマンドの短いオンライン要約を提供します。
やめます ターミナルモードを終了し、したがって アヴェルデ.
デフォルト 並列シミュレーションの設定 ポート ピン の構築
(これらは変更できます。 -c オプション)
ピン留め 数 演算
2-5 Vcc(MCUへのオプションの電源)
7 / RESET(MCUへ)
8 SCK(MCUへ)
9 MOSI(MCUへ)
10 MISO(MCUから)
18-25 グランド
デバッグワイヤー 制限
debugWireプロトコルは、Atmel独自の単線(およびアース)プロトコルであり、
'/RESET'ラインを使用した小型AVRデバイスのインサーキットエミュレーション。 DebugWireモードは
「DWEN」ヒューズをアクティブにしてから、ターゲットの電源を入れ直すことによって開始されます。 このモードの間
主にデバッグ/エミュレーションを目的としていますが、限られたプログラミング機能も提供します。
事実上、このモードで読み取ったりプログラムしたりできるメモリ領域はフラッシュROMだけです。
およびEEPROM。 署名を読み取ることも可能です。 他のすべてのメモリ領域はできません
アクセスされます。 ありません チップ 消去 debugWireモードの機能。 代わりに、
フラッシュROMを再プログラミングすると、各フラッシュROMページは更新の直前に消去されます。 これ
JTAG ICE mkII(またはAVR Dragon)によって透過的に実行されます。 から戻る唯一の方法
debugWireモードは、JTAG ICE mkII(またはAVR)へのコマンドの特別なシーケンスを開始することです。
Dragon)、したがって、debugWireモードは一時的に無効になり、ターゲットにアクセスできます
通常のISPプログラミングを使用します。 このシーケンスは、JTAGを使用して自動的に開始されます
ISPモードに入ることができないことを検出した場合のISPモードのICEmkIIまたはAVRDragon。
FLIP バージョン 1 特異性
FLIPプロトコルバージョン1を使用するブートローダーは、いくつかの非常に特殊な動作を経験します。
これらのブートローダーには、フラッシュとEEPROM以外のメモリ領域にアクセスするオプションがありません。
ブートローダーが起動すると、 セキュリティ モード 唯一の許容可能なアクセス
デバイス構成パラメーター(AVRの署名に使用される)を照会することです
デバイス)。 このモードを終了する唯一の方法は、 チップ 消去。 チップ消去は通常です
によって暗示される -U フラッシュを再プログラミングするときのオプション、この特異性はあまりないかもしれません
すぐにわかります。
場合によっては、セキュリティモードがすでに無効になっているブートローダーが応答しなくなったように見えることがあります
賢明な構成データですが、すべてのクエリで0xFFのみです。 これらのクエリは
署名に相当するものを取得し、 アヴェルデ 強制することによってのみその状況で続けることができます
署名チェックは、 -F オプションを選択します。
A チップ 消去 少なくとも一部のバージョンのブートローダーでは、EEPROMが消去されないままになる可能性があります。
プログラマ 受諾 で パラメータ
JTAG ICE mkⅡ
JTAGICE3
アトメル-ICE
AVR Dragon
JTAG ICE mkII、JTAGICE3、Atmel-ICE、またはAVR DragonをJTAGモードで使用する場合、
次の拡張パラメータが受け入れられます。
jtagchain = UB、UA、BB、BA
のJTAGスキャンチェーンを設定します UB 前のユニット、 UA 後のユニット、
BB 前のビット、および BA それぞれ、ターゲットAVRの後のビット。
チェーン内の各AVRユニットは4ビットずつシフトします。 その他のJTAG
ユニットには、異なるビットシフトカウントが必要な場合があります。
AVR910
devcode = VALUE
を使用してデバイスコードの選択を上書きします VALUE デバイスとして
コード。 プログラマーは、サポートされているリストについて照会されません
デバイスコード、および指定された VALUE 検証されていませんが使用されています
プログラマーに送信される「T」コマンド内で直接。 VALUE
Cの従来の数値表記を使用して指定できます
プログラミング言語。
no_blockmode
ブロック転送機能のデフォルトのチェックを無効にします。
no_blockmode あなたの場合のみ AVR910 プログラマーがエラーを作成する
初期シーケンス中。
バス海賊
reset = {cs、aux、aux2}
デフォルトの設定では、BusPirateのCS出力ピンを想定しています
AVR側のRESETピンに接続されています。 ただし、それは可能です
MISO、MOSIを使用して複数のAVRを同じBPに接続する
そしてそれらすべてに共通のSCKライン。 そのような場合、XNUMXつのAVR
RESETをBusPirateに接続する必要があります CS ピン、XNUMX番目
BusPirateに接続されたAVRのRESET AUX ピンとあなたの場合
BusPirateには AUX2 ピン(BusPirateバージョンでのみ使用可能)
ファームウェア1以降のv3.0a)これを使用してRESETをアクティブにします
XNUMX番目のAVR。
BusPirateとAVRを分離するのは良い考えかもしれません
トライステートバスバッファを使用して相互にSPIバス。 にとって
例74HC125または74HC244は、
適切なリセットピン(cs、aux、またはaux2)によって駆動されるラッチ。
そうしないと、XNUMXつのアクティブな回線のSPIトラフィックが干渉する可能性があります
他の設計でAVRをプログラミングします。
spifreq = <0..7>
バスパイレーツのバイナリSPIモードのSPI速度:
0 .. 30 kHz(デフォルト)
1~125kHz
2~250kHz
3..1MHz
4..2MHz
5..2.6MHz
6..4MHz
7..8MHz
rawfreq = <0..3>
SPI速度を設定し、バスパイレーツのバイナリ「raw-wire」を使用します
モード:
0~5kHz
1~50kHz
2 .. 100 kHz(ファームウェアv4.2 +のみ)
3 .. 400 kHz(v4.2 +)
「raw-wire」モードの唯一の利点は、異なるSPIです。
利用可能な周波数。 ページ書き込みはこれでは実装されていません
モード。
アスキー ファームウェアがサポートしている場合でもASCIIモードを使用してみてください
BinMode(バイナリモード)。 BinModeはファームウェア2.7および
新しい、古いFWにはBinModeがないか、BinModeがあります
バギー。 ASCIIモードは遅く、上記のようになります リセット=, spifreq =
rawfreq = パラメータは使用できません。 ASCIIモードは
新しいファームウェアバージョンでの動作は保証されておらず、
古いファームウェアとの互換性を維持するためにのみ保持されます
バージョン。
nopagedwrite
ファームウェアバージョン5.10以降はバイナリモードSPIをサポートします
ページ全体をAVRフラッシュに書き込むことができるコマンド
一度にメモリを使用できるため、書き込み速度が大幅に向上します。
このモードの使用が何らかの理由で望ましくない場合、これは
オプションはそれを無効にします。
ノページドレッド
新しいファームウェアバージョンは、バイナリモードでのSPIコマンドの一部をサポートしています
AVR拡張コマンド。 「フラッシュから読み取ったバルクメモリ」を使用する
その結果、読み取り速度が大幅に向上します。 これを使用する場合
モードは何らかの理由で望ましくありません。このオプションはそれを無効にします。
cpufreq = <125..4000>
これにより、AUXピンが次の周波数を出力するように設定されます。 n kHz。 接続する
MCUのXTAL1ピンへのAUXピン、あなたはそれに提供することができます
クロック、たとえば、次の理由で外部クロックが必要な場合
ヒューズの設定が間違っています。 CPU周波数が少なくとも
SPI周波数のXNUMX倍。
serial_recv_timeout = <1 ...>
これにより、シリアル受信タイムアウトが指定された値に設定されます。 ザ
avrdudeがBusPirateを待機するたびにタイムアウトが発生します
促す。 特にASCIIモードでは、これは非常に頻繁に発生するため、
小さい値を設定すると、プログラミングを大幅に高速化できます。 The
デフォルト値は100msです。 ほとんどの場合、10msを使用すると機能する可能性があります。
配線 配線プログラマータイプを使用する場合、以下のオプションの拡張
パラメータが受け入れられます:
snooze = <0..32767>
ポートオープンフェーズを実行した後、AVRDUDEは待機/スヌーズします
の 居眠り プロトコル同期を続行する前のミリ秒
段階。 次の場合、DTR/RTSの切り替えは実行されません。 居眠り より大きい
0より。
PICキット2
PICkit2プログラマーへの接続:
(AVR)(PICkit2)
RST-VPP / MCLR(1)
VDD-VDDターゲット(2)-AVRセルフパワーの場合はオプションの可能性があります
GND-GND(3)
MISO-PGD(4)
SCLK-PDC(5)
MOSI-AUX(6)
拡張コマンドラインパラメータ:
clockrate =
SPIクロッキングレートをHz単位で設定します(デフォルトは100kHz)。
または、-Bまたは-iオプションを使用して期間を設定することもできます。
タイムアウト=
USBの読み取りと書き込みのタイムアウトをミリ秒単位で設定します
(デフォルトは1500ミリ秒です)。
onworks.netサービスを使用してオンラインでavrdudeを使用する
