avr-libc  2.0.0
Standard C library for AVR-GCC

AVR Libc Home Page

AVRs

AVR Libc Development Pages

Main Page

User Manual

Library Reference

FAQ

Example Projects

avrdudeプログラマの使い方

注釈
このセクションは、Brian Dean [ bsd@b.nosp@m.sdho.nosp@m.me.co.nosp@m.m ]より寄稿いただきました。
avrdudeは、以前avrprogと呼ばれていました。名称は、AtmelがAvrStudioと一緒に搭載されている avrprog プログラムと混乱を避けるため変更されました。

avrdude は、FreeBSD Unix上からAtmel AVRマイクロコントローラのフラッシュとEEPROMメモリの更新や読出しに使用するプログラムです。PCのparallel portを用いたAtmelシリアルプログラミングプロトコルをサポートし、RawバイナリファイルやIntel Hexフォーマットファイルをアップロードできます。そして、EPROMセルやヒューズビット、またロックビットの更新に対話モードを用いることができます。(これらのアクセスは、Atmelシリアルプログラミングプロトコルによってサポートされている場合です。) AVRのメインflashのインストラクションメモリを対話モードでプログラムすることができますが、1ビットをオフにできるだけのためあまり役に立ちません。フラッシュのビットをオンにする唯一の方法は、メモリ全体を削除することです。(avrdude-eオプションを使用します。)

avrdude は、FreeBSD portsシステムの一部です。インストールはシンプルに次のようにします。

# cd /usr/ports/devel/avrdude
# make install

インストールした後、avrdude は、コマンドラインで指定された.hexファイルの内容を用いてプロセッサにプログラミングできます。この例では、main.hex をフラッシュメモリに書き込みます。

# avrdude -p 2313 -e -m flash -i main.hex

avrdude: AVR device initialized and ready to accept instructions

avrdude: Device signature = 0x1e9101

avrdude: erasing chip
avrdude: done.
avrdude: reading input file "main.hex"
avrdude: input file main.hex auto detected as Intel Hex

avrdude: writing flash:
1749 0x00
avrdude: 1750 bytes of flash written
avrdude: verifying flash memory against main.hex:
avrdude: reading on-chip flash data:
1749  0x00
avrdude: verifying ...
avrdude: 1750 bytes of flash verified

avrdude done.  Thank you.

-p 2313 オプションは、AT90S2313チップ上で動作していることをavrdude に認識させます。このオプションで指定されたデバイスIDは、avrdudeのコンフィグレーションファイル ( /usr/local/etc/avrdude.conf )内の、同じIDのデバイスと比較されます。有効なパーツのリストを表示させるには、 -vオプションを指定してください。 -e オプションは、avrdude がプログラミングする前にチップ消去を実行するよう指示します。これは、フラッシュをプログラミングする前にだいたいの場合必要です。-m flashオプションは、 同時に-i main.hex で指定する入力ファイルを、フラッシュメモリへデータをアップロードしたいことを示しています。

EEPROMのアップロードも同様で、違うのは、-m flashの代わりに-m eepromを使うことです。

対話モードを使用するには、-tオプションを用います。

# avrdude -p 2313 -t
avrdude: AVR device initialized and ready to accept instructions
avrdude: Device signature = 0x1e9101
avrdude>

The '?' command displays a list of valid
commands:

avrdude> ?
>>> ?
Valid commands:

  dump   : dump memory  : dump <memtype> <addr> <N-Bytes>
  read   : alias for dump
  write  : write memory : write <memtype> <addr> <b1> <b2> ... <bN>
  erase  : perform a chip erase
  sig    : display device signature bytes
  part   : display the current part information
  send   : send a raw command : send <b1> <b2> <b3> <b4>
  help   : help
  ?      : help
  quit   : quit

Use the 'part' command to display valid memory types for use with the
'dump' and 'write' commands.

avrdude>