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
命令が並ぶ。