avrdude-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [avrdude-dev] Load Extended Address command and word/byte programmin


From: Hannes Weisbach
Subject: Re: [avrdude-dev] Load Extended Address command and word/byte programming issues
Date: Thu, 29 Mar 2012 15:07:44 +0200

> 
>> 1) Does avrdude take care of issuing a load extended address
>> command? Because page programming is now done page-by-page avrdude
>> "knows" when the 128k boundary is crossed and could issue a load
>> extended address command. is this the case?
> 
> Depends on the programmer in use.  If you look into the code for
> STK500v2, you'll find things like:
> 
I'm afraid that didn't clear things up.
My understanding so far is, that the load extended address command has to be 
issued when a page with an address >= 128kiB has to be programmed and the page 
programmed before had an address <128kiB. Is this correct?

>    /*
>     * If bit 31 is set, this indicates that the following read/write
>     * operation will be performed on a memory that is larger than
>     * 64KBytes. This is an indication to STK500 that a load extended
>     * address must be executed.
>     */
>    if (m->op[AVR_OP_LOAD_EXT_ADDR] != NULL) {
>      use_ext_addr = (1U << 31);
>    }
> ...
>    if((last_addr==UINT_MAX)||(last_addr+block_size != addr)){
>      if (stk500v2_loadaddr(pgm, use_ext_addr | (addr >> addrshift)) < 0)
>        return -1;
>    }
The STK500v2 initialises last_addr to UINT_MAX, so it seems to me, it is 
signaled to the programmer to issue the load extended address command, before 
the first page is programmed.
So, can a load extended address command be issued on all page accesses on 
devices which support that command (and have a memory > 128kiB)?

Best regards,
Hannes


reply via email to

[Prev in Thread] Current Thread [Next in Thread]