On 8/30/11 01:23, "Mario" <marbar...@gmail.com> wrote:

>Just as described at section 3.6.
>I have managed to make it work partially, for example, I can decide
>the address in the RAM of variables only when they are globally
>defined.

How could you define the address of a local variable? Conceptually
it is in the stack and the address varies from invocation to
invocation. 
> 



>But I had to find out about this by myself, because the
>manual did not mention this.

Well in view of what I wrote to me that is obvious.

>
>The way I had to do it:
>    unsigned char __data  myChar;

Isn't that what was in the manual?

>
>But if I place the __data __at 0x30 part before the unsigned char
>part, it will work anyway. The manual does not mention about this
>either.

So? It is the nature of C that the order everything in definitions
is not fixed and does not always follow human logic. I don't think
the manual needs to spell out all the variations. I guess you could
write that as 'unsigned __at 0x30 char __data myChar'?


>I tried this example literally from the manual:
>    __code __at (0x7ff0) char Id[5] = ²SDCC²;
>
>But when compiling it throws:
>    error 9: FATAL Compiler Internal Error in file 'glue.c' line
>number '937' : !"Initialized char-arrays are not yet supported, assign
>at runtime instead."
>    Contact Author with source code

This a limitation of the (current) compiler implementation, maybe could
have been mentioned in the manual, on the otherhand this maybe specific
to the backend/processor you are targeting and the error pretty
much spells out the situation and the remedy. Good enough for me.


>What I want to do now is to make a function start exactly at a certain
>address in code memory but I find no way how to do it.

Zafi showed you a workaround. Again this I do not see this as a
documentation issue, if the compiler does not support some non standard
feature I do not see that needs to be documented. There are endless
number of non standard features the compiler does not support.

In a rare occasion this (placing a function at a fixed address) is
a legitime and reasonable requirement but no compiler (documentation)
(writer) can fore see all the corner cases.

>I tried also to create a *var = "with-text", with its data located in
>RAM memory, but no luck, it is always stored somehow at code memory.

Makes sense to me as ANSI C defines string literals as unmodifiable.
Why would you want them to be in RAM (which typically is more scarce
than ROM in small processors and placing them in the RAM would
still require a copy in ROM)?

br Kusti


>
>On Mon, Aug 29, 2011 at 3:10 AM, Kustaa Nyholm
><kustaa.nyh...@planmeca.com> wrote:
>> On 8/29/11 00:00, "Mario" <marbar...@gmail.com> wrote:
>>>Is this a currently working feature? can someone provide me some piece
>>>of code where absolute addressing actually works?
>>
>> I'm not sure what you re talking about with 'absolute addressing',
>> please show some code...
>>
>> br Kusti
>>
>>
>> 
>>-------------------------------------------------------------------------
>>-----
>> EMC VNX: the world's simplest storage, starting under $10K
>> The only unified storage solution that offers unified management
>> Up to 160% more powerful than alternatives and 25% more efficient.
>> Guaranteed. http://p.sf.net/sfu/emc-vnx-dev2dev
>> _______________________________________________
>> Sdcc-user mailing list
>> Sdcc-user@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/sdcc-user
>>
>
>--------------------------------------------------------------------------
>----
>Special Offer -- Download ArcSight Logger for FREE!
>Finally, a world-class log management solution at an even better
>price-free! And you'll get a free "Love Thy Logs" t-shirt when you
>download Logger. Secure your free ArcSight Logger TODAY!
>http://p.sf.net/sfu/arcsisghtdev2dev
>_______________________________________________
>Sdcc-user mailing list
>Sdcc-user@lists.sourceforge.net
>https://lists.sourceforge.net/lists/listinfo/sdcc-user
>


--
Kustaa Nyholm
Research Manager, Software
Research and Technology Division
PLANMECA OY
Asentajankatu 6
00880 HELSINKI
FINLAND

Please note our new telephone and fax numbers!
Tel: +358 20 7795 572 (direct)
Fax: +358 20 7795 676
GSM: +358 40 580 5193
e-mail: kustaa.nyh...@planmeca.com






------------------------------------------------------------------------------
Special Offer -- Download ArcSight Logger for FREE!
Finally, a world-class log management solution at an even better 
price-free! And you'll get a free "Love Thy Logs" t-shirt when you
download Logger. Secure your free ArcSight Logger TODAY!
http://p.sf.net/sfu/arcsisghtdev2dev
_______________________________________________
Sdcc-user mailing list
Sdcc-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sdcc-user

Reply via email to