Thanks to Sergey for analysing the LST file.

So, having a MCU with Von Neumann architecture is a good thing here ;-)
No spezial handling needed to optimize for RAM usage.


2009/3/25 Sergey A. Borshch <[email protected]>:
> Kasun Hewage wrote:
>> It seems, this can not be done or no point of doing it in MSP430 MCUs
>> because they are Von Neumann architecture MCUs. Would you be able to
>> tell me that how can I gain an optimized RAM usage when dealing with
>> constant strings.
> Take a look at list file for simple example:
>
> __attribute__((noreturn))int main()
> {
>     WDTCTL = WDTPW;
>     send_string("Hello I am Kasun", 17);
>     for(;;);
> }
>
>                .text
>  143                   .LC0:
>  144 0000 4865 6C6C            .string "Hello I am Kasun"
>  144      6F20 4920
>  144      616D 204B
>  144      6173 756E
>  144      00
>  145                           .section        .text.main,"ax",@progbits
>  146                           .p2align 1,0
>  147                   .global main
>  149                   /***********************
>  150                    * Function `main'
>  151                    ***********************/
>  152                   main:
>  153                   .LFB4:
>  154                   .LSM10:
>  155                           /* prologue: frame size = 0 */
>  156                   .L__FrameSize_main=0x0
>  157                   .L__FrameOffset_main=0x4
>  158 0000 3140 0000            mov     #(__stack-0), r1
>  159 0004 0441                 mov     r1,r4
>  160                           /* prologue end (size=3) */
>  161
>  162                   .LSM11:
>  163 0006 B240 005A            mov     #llo(23040), &0x0120
>  163      2001
>  164                   .LSM12:
>  165 000c 3E40 1100            mov     #llo(17), r14
>  166 0010 3F40 0000            mov     #.LC0, r15             ; <--- here
>  167 0014 B012 0000            call    #send_string
>  168                   .LSM13:
>  169                   .L9:
>  170 0018 FF3F                 jmp     .L9
>  171                   .LSM14:
>  172
>  173                           /* epilogue: empty, noreturn function*/
>  174                   .LFE4:
>  176
>  177                   /********* End of function ******/
>
> As you can see, string located in .text region and send_string gets pointer
> directly to this location (; <--- here), with no intermediate copy to ram.
>
> --
> Regards,
>   Sergey A. Borshch            mailto: [email protected]
>     SB ELDI ltd. Riga, Latvia
>
>
> ------------------------------------------------------------------------------
> Apps built with the Adobe(R) Flex(R) framework and Flex Builder(TM) are
> powering Web 2.0 with engaging, cross-platform capabilities. Quickly and
> easily build your RIAs with Flex Builder, the Eclipse(TM)based development
> software that enables intelligent coding and step-through debugging.
> Download the free 60 day trial. http://p.sf.net/sfu/www-adobe-com
> _______________________________________________
> Mspgcc-users mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/mspgcc-users
>
>

Reply via email to