gnupic: A possible bug with udata
Subject:
Re: A possible bug with udata
From:
Craig Franklin ####@####.####
Date:
6 Sep 2004 05:21:19 +0100
Message-Id: <413AF695.1070207@users.sourceforge.net>
That linker script defines the 16f871 data memory as all sharebank.
SHAREBANK NAME=gprnobnk0 START=0x20 END=0x6F
SHAREBANK NAME=gprnobnk0 START=0x120 END=0x16F
SHAREBANK NAME=gprnobnk1 START=0xA0 END=0xBF
SHAREBANK NAME=gprnobnk1 START=0x1A0 END=0x1BF
There are no unprotected databank definitions. Here is an example from
the 16f877:
DATABANK NAME=gpr0 START=0x20 END=0x6F
The linker has a udata section to relocate, but no data sections are
defined, so it reports no memory is available.
If you change the directive from udata to udata_shr, it will work.
I tested mplink and it behaves the same way.
1. I really could generate a better error message in this case. Maybe
I should distinguish between running out of memory and not having any to
begin with. I will put it on my list.
2. I have considered relocating udata sections to shared memory, when
you run out of unshared memory. I really never fully considered the
consequences. I will take another look at it.
Julian Green wrote:
>I have constructed a small project that reproduces the problem.
>
>I hope .tgz file attachments get through
>
>Julian
>
>On Sat, 4 Sep 2004, Craig Franklin wrote:
>
>
>
>>This can happen if you have used all available data memory or if the
>>size of the section exceeds the size of one bank on the target device.
>>
>>If you send me your code, I can figure out what happened.
>>
>>If you can't send me your code, link the project with the "--debug"
>>flag. This will print many messages about the internal operation of the
>>linker. You might be able to figure out what is happening. Send me the
>>debug message, I can help.
>>
>>Julian Green wrote:
>>
>>
>>
>>>I am using gputils-0.12.3.
>>>
>>>I have a project consisting of a library and a main module from which I
>>>call library code. However I am getting a linker error:
>>>
>>> error: no target memory available for section "fbw_u"
>>>
>>>If I add an address to the udata declararion I can make the error go away,
>>>but that defeats the purpose of relocatable modules.
>>>
>>> fbw_u udata 0x21
>>>
>>>Julian
>>>
>>>
>>>---------------------------------------------------------------------
>>>To unsubscribe, e-mail: ####@####.####
>>>For additional commands, e-mail: ####@####.####
>>>
>>>
>>>
>>>
>>>
>>>
>>---------------------------------------------------------------------
>>To unsubscribe, e-mail: ####@####.####
>>For additional commands, e-mail: ####@####.####
>>
>>
>>
>>------------------------------------------------------------------------
>>
>>---------------------------------------------------------------------
>>To unsubscribe, e-mail: ####@####.####
>>For additional commands, e-mail: ####@####.####
>>