bootloader のアドレスとか

  • program memory は word 単位で命令ができている。
  • CPU の program memory の data bus 幅は 16 bit のようだ...
  • avr 自体の program memory は 16bit 幅で記載している
  • gcc のリンカはアドレスを 8bit 幅で出す

つまり、 gcc で出すダンプのアドレスが 0x2000 だった場合、 avr では 0x1000 になる。から、アセンブラだとこうなるかな。

        org     0x2000
hogehoge:
        ret                08 95
        call    hogehoge   0e 94 00 10

ここらへんが誤認の要素っぽい。データシートに書いてくれるとよかったのに!