| 28 |
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE |
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE |
| 29 |
POSSIBILITY OF SUCH DAMAGE. */ |
POSSIBILITY OF SUCH DAMAGE. */ |
| 30 |
|
|
| 31 |
|
/* $Id$ */ |
| 32 |
|
|
| 33 |
#if (__GNUC__ < 3) || (__GNUC__ == 3 && __GNUC_MINOR__ < 3) |
#if (__GNUC__ < 3) || (__GNUC__ == 3 && __GNUC_MINOR__ < 3) |
| 34 |
#error "GCC version >= 3.3 required" |
#error "GCC version >= 3.3 required" |
| 35 |
#endif |
#endif |
| 153 |
ldi r16, hh8(__data_load_start) |
ldi r16, hh8(__data_load_start) |
| 154 |
#else |
#else |
| 155 |
ldi r16, hh8(__data_load_start - 0x10000) |
ldi r16, hh8(__data_load_start - 0x10000) |
| 156 |
.__do_copy_data_carry: |
.L__do_copy_data_carry: |
| 157 |
inc r16 |
inc r16 |
| 158 |
#endif |
#endif |
| 159 |
out _SFR_IO_ADDR(RAMPZ), r16 |
out _SFR_IO_ADDR(RAMPZ), r16 |
| 160 |
rjmp .__do_copy_data_start |
rjmp .L__do_copy_data_start |
| 161 |
.__do_copy_data_loop: |
.L__do_copy_data_loop: |
| 162 |
#ifdef __AVR_ENHANCED__ |
#ifdef __AVR_ENHANCED__ |
| 163 |
elpm r0, Z+ |
elpm r0, Z+ |
| 164 |
#else |
#else |
| 167 |
st X+, r0 |
st X+, r0 |
| 168 |
#ifndef __AVR_ENHANCED__ |
#ifndef __AVR_ENHANCED__ |
| 169 |
adiw r30, 1 |
adiw r30, 1 |
| 170 |
brcs .__do_copy_data_carry |
brcs .L__do_copy_data_carry |
| 171 |
#endif |
#endif |
| 172 |
.__do_copy_data_start: |
.L__do_copy_data_start: |
| 173 |
cpi r26, lo8(__data_end) |
cpi r26, lo8(__data_end) |
| 174 |
cpc r27, r17 |
cpc r27, r17 |
| 175 |
brne .__do_copy_data_loop |
brne .L__do_copy_data_loop |
| 176 |
#endif /* BIG_CODE */ |
#endif /* BIG_CODE */ |
| 177 |
|
|
| 178 |
.set __stack, RAMEND |
.set __stack, RAMEND |