Yahoo Groups archive

AVR-Chat

Index last updated: 2026-04-28 22:41 UTC

Message

Re: Re: [AVR-Chat] Errors in manuals ...

2005-09-01 by David Kelly

On Thu, Sep 01, 2005 at 09:03:53AM -0500, Thomas Keller wrote:
> 
>   Now, perhaps itmight be argued that thery could have considered
> modifying the I/O addressing instructiosn to also access this extended
> I/O space, but if I read the data sheet correctly, this would have
> involved making them take longer to execute (having to read an
> additional byte to obtain the longer addresses).

To do so Atmel would have had to modify the instruction set. An opcode
on the AVR is 16 bits. The "argument" is embedded within those 16 bits
for SFR codes.

Its not just a matter of an additional byte, all instructions are
multiples of 16 bits. Flash is actually 16 bits wide (page 16 of
ATmega64), but byte addressable. The program counter counts 16 bit
words, not bytes. If you look at a disassembly such as generated by
avr-objdump byte addresses are listed. But look into the opcodes and one
has to double the value to find the disassembled listed value.

The 64 address range for SFRs is more heavily ingrained than you
suspected.

-- 
David Kelly N4HHE, dkelly@HiWAAY.net
========================================================================
Whom computers would destroy, they must first drive mad.

Attachments

Move to quarantaine

This moves the raw source file on disk only. The archive index is not changed automatically, so you still need to run a manual refresh afterward.