[ECOS] R_ARM_PC24 cyg_tracemsg error

Andrew Lunn andrew@lunn.ch
Thu Apr 6 08:20:00 GMT 2006


On Thu, Apr 06, 2006 at 09:56:38AM +0200, thierry langlais wrote:
> Hi All,
> 
> I first enabled CYGPKG_INFRA_DEBUG in infra.cdl and CYGDBG_USE_TRACING
> in debug.cdl, then I added TRACE0(1,"msg") in flash_program_buf.c to get
> some traces.
> The compilation returns me:
> "packages/devs/flash/intel/strata/current/src/flash_program_buf.c:83:
> relocalisation tronqu??e pour concorder avec la taille: R_ARM_PC24
> cyg_tracemsg"
> Is someone aware of this kind or error ?

Sorry, my french is nearly none existent. But i guess it says
something like the address is out of range.

The functions in flash_program_buf.c will be in RAM, not flash. They
have to be, since you cannot program/erase the flash when runnig from
flash. You have tried to call a function in flash. The ARM
instrucution set has a way to call functions which are near by which
just uses one instruction. If it needs to call functions which are far
away, it has to use one instructions and a data word. By default the
compiler assumes all functions are near by and so uses the first
way. However your RAM and flash are too far away, so when the linker
tries to link your object if finds it is not possible and gives this
error.

However, this is all academic. If you call into flash inside these
functions your system is very likely to crash. You can only safely
access flash just before the flash operation starts, or after it has
finishes. I would suggest you add tracing to io/flash instead of the
device driver.

        Andrew

-- 
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss



More information about the Ecos-discuss mailing list