Thanks for your answers.

The fact that the CALL instruction is not able to use relative
addressing is a pretty big issue. Thanks for that precision.

Thus, I will not open a feature request and use a dynamic linker instead.

Fred

2010/10/19 Chris Liechti <[email protected]>:
> Am 19.10.2010 12:14, schrieb JMGross:
>> Well, there IS an application where PIC is required (even if it can
>> be solved using non-PIC code as well): If you need to place
>> functions in RAM, but don't want to place them there permanently (by
>> putting them into the data segment and hoping they will be there
>> untouched ever after PUC). A prominent example is a flashing
>> function, which is copied from flash to ram when needed.
>
> in such cases, it's also a possibility to create a linker file and
> compile the function separately for a location in RAM. then embed the
> binary as byte array in the application.
>
>
> however if you plan to move code at runtime, you have to ensure a few
> other things than just position independent assembler for a function:
>
> - you probably can not use any global variables. at least moving them by
> the same offset as the code won't work. using absolute addresses would
> keep the variables working, but do you really need the same variables
> when the code runs from RAM and when it runs from Flash?
>
> - such a function also must not make calls to any other code that is not
> moved. this includes support code that the compiler adds (libc, libgcc).
> tha's important in the case of moving a function to RAM so that it can
> erase the Flash for a software upgrade. compiling separately and
> embedding as array like mentioned above helps in this case.
>
>
> you would not want to have the entire application in position
> independent code, as the MSP430 instruction set has no direct support to
> do this very efficient. one of the issues is the "call" instruction
> which takes the target address as absolute address in the form of an
> immediate value.
>
> chris
>
> ------------------------------------------------------------------------------
> Download new Adobe(R) Flash(R) Builder(TM) 4
> The new Adobe(R) Flex(R) 4 and Flash(R) Builder(TM) 4 (formerly
> Flex(R) Builder(TM)) enable the development of rich applications that run
> across multiple browsers and platforms. Download your free trials today!
> http://p.sf.net/sfu/adobe-dev2dev
> _______________________________________________
> Mspgcc-users mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/mspgcc-users
>

------------------------------------------------------------------------------
Download new Adobe(R) Flash(R) Builder(TM) 4
The new Adobe(R) Flex(R) 4 and Flash(R) Builder(TM) 4 (formerly 
Flex(R) Builder(TM)) enable the development of rich applications that run
across multiple browsers and platforms. Download your free trials today!
http://p.sf.net/sfu/adobe-dev2dev
_______________________________________________
Mspgcc-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mspgcc-users

Reply via email to