[Top][All Lists]

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

[avr-gcc-list] ATmega 2561 - compiler generates eicall

From: Dusan Ferbas
Subject: [avr-gcc-list] ATmega 2561 - compiler generates eicall
Date: Wed, 04 Jun 2008 01:36:23 +0200


I am using WinAVR-20071221, because none of the most recent toolchains produces a runnable code for our application.

Our bootloader starts at 0x3f800 (2kB).
In its code, we are using function[id](...) construction.
This is compiled with eicall instruction, but no EIND register is set.
Is there a way, how to tell the compiler, that code is linked in upper half of flash ?
In bootloader code we can live with EIND=1 at its init.

But when we have a call from our application, neither EIND is set, even address is not divided by 2 (WinAVR bug #1959227).
Probably some far attribute should be applied ?
When compiled for ATmega128 (with 0x1f806), it works ...

typedef void boot_loader_init(unsigned  char *);
#define boot_loader_data_init           ((boot_loader_init *)0x3F806)


reply via email to

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