AVR (3)

話が前後するがマイコンについて

メモリマップ

メモリ空間は3つに分かれている。

プログラムをRAMに載せて実行することはできない。

フラッシュ

内容 アドレス サイズ
応用プログラム用 0x0000 -
ブートプログラム用 - 0x1FFF or 0x3FFF 256 or 512 or 1024 or 2048

応用/ブートそれぞれに書き込み禁止などの設定が可能。

RAM

内容 アドレス サイズ
レジスタ 0x0000 - 0x001F 32
I/Oレジスタ 0x0020 - 0x005F 64
拡張I/Oレジスタ 0x0060 - 0x00FF 160
SRAM 0x0100 - 0x05FF or 0x0AFF 1280 or 2560

EEPROM

内容 アドレス サイズ
0x0000 - 0x01FF or 0x03FF 512 or 1024

ヒューズビット

拡張、上位、下位の3つのフューズビットがある。フラッシュメモリの消去、書き込みではアクセスできない。

間違った値を書いてデバッガからマイコンにアクセスできなくなった場合、パラレル通信で書込みを行うと修復できる。

ベクタテーブル

直接命令を書くタイプ。そのため基本的には rjmp 命令が並ぶ。