Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

WinARM i informacja na temat objętości kodu

PitersonX 01 Maj 2008 13:16 765 2
  • #1 01 Maj 2008 13:16
    PitersonX
    Poziom 12  

    Witam Wszystkich!

    Jako amator-programista ARMów udało mi się uruchomić równoległy algorytm genetyczny na 9 połączonych ze sobą LPC2106. Wszystko działa ładnie, ale cały czas rozbudowuję program i zastanawiam się, kiedy będzie za duży :) Chodzący program po kompilacji (WinARM) ma następujące rozmiary:

    Size after:
    GAONARM.elf :
    section size addr
    .text 32616 0
    .rodata 72 32616
    .rodata.str1.4 16 32688
    .data 1028 1073741824
    .bss 28672 1073742852
    .comment 486 0
    .debug_aranges 160 0
    .debug_info 575 0
    .debug_abbrev 100 0
    .debug_line 1473 0
    Total 65198

    Nie wiem, czy dobrze myślę, ale sekcje .text i .rodata zapisywane są we flashu, a .data i .bss w RAMie. Co z .comment i .debug (po adresach widzę, że chyba nigdzie nie są umieszczane)? Czy mając LPC2106 .text+.rodata może mieć max 120kB (flash), a .data+.bss max 64kB (RAM)?

    Bardzo proszę o kilka słów wyjaśnienia.

    0 2
  • Pomocny post
    #2 01 Maj 2008 17:08
    Freddie Chopin
    Specjalista - Mikrokontrolery

    nie mylisz sie, jednak do flasha laduje tez kopia sekcji data, ktora inicjalizowane sa zmienne po uruchomieniu procka.

    do flasha leci wiec:
    - text
    - rodata
    - data

    do ramu:
    - data
    - bss

    0x41 0x56 0x45!!

    0
  • #3 01 Maj 2008 21:01
    PitersonX
    Poziom 12  

    Bardzo dziękuję za wyjaśnienie.

    Pozdrawiam serdecznie

    Piotr

    0