eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaPamięć RAM w armgccRe: Pamięć RAM w armgcc
  • Path: news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!.PO
    STED!not-for-mail
    From: Mario <m...@p...onet.pl>
    Newsgroups: pl.misc.elektronika
    Subject: Re: Pamięć RAM w armgcc
    Date: Wed, 30 Mar 2011 23:51:58 +0200
    Organization: http://onet.pl
    Lines: 59
    Message-ID: <in08m9$gmb$1@news.onet.pl>
    References: <imvljk$obv$1@news.onet.pl> <imvm0i$m91$1@news.onet.pl>
    NNTP-Posting-Host: 213-238-94-184.adsl.inetia.pl
    Mime-Version: 1.0
    Content-Type: text/plain; charset=ISO-8859-2; format=flowed
    Content-Transfer-Encoding: quoted-printable
    X-Trace: news.onet.pl 1301521929 17099 213.238.94.184 (30 Mar 2011 21:52:09 GMT)
    X-Complaints-To: n...@o...pl
    NNTP-Posting-Date: Wed, 30 Mar 2011 21:52:09 +0000 (UTC)
    User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.5) Gecko/20031007
    In-Reply-To: <imvm0i$m91$1@news.onet.pl>
    Xref: news-archive.icm.edu.pl pl.misc.elektronika:607741
    [ ukryj nagłówki ]

    W dniu 2011-03-30 18:33, mk pisze:
    > W dniu 2011-03-30 18:26, Mario pisze:
    >> Witam,
    >> jak sprawdzić ile pamięci w procku zużyją mi moje zmienne i system -
    >> Freertos.
    >> Kompilator codesourcery.
    >>
    >
    > arm-none-eabi-size
    >

    Dzięki.
    Znalazłem w makefile, że te polecenie ( w postaci ELFSIZE) jest
    wywoływane w:

    sizeafter:
    @if test -f $(TARGET).elf; then echo; echo $(MSG_SIZE_AFTER);
    $(ELFSIZE); \ 2>/dev/null; echo; fi

    dając na koniec kompilacji:

    Size after:
    text data bss dec hex filename
    30732 308 32074 63114 f68a MD1768_Main.elf

    Z tego co się zorientowałem segmenty data i bss stanowią obszar ram
    (data zainicjowane a bss niezainicjowane zmienne)

    No i pojawia mi się problem bo gdy dodam odrobinkę zmiennych to wywala
    mi się kompilacja z powodu nie mieszczenia się sekcji bss w regionie 'ram'.
    Zdziwiło mnie to trochę bo lpc1768 ma 64kb ram a wygląda, że nie można
    użyć więcej niż 32k.

    W pliku LPC17xx_Linker_Script.ld znalazłem wpis:
    MEMORY
    {
    rom (rx) : ORIGIN = 0x00000000, LENGTH = 512K
    ram (rwx) : ORIGIN = 0x10000000, LENGTH = 32K
    }

    To jest plik wzięty z przykładem FREERTOSa z ich strony. No i albo dali
    plik jakiegoś z innego cortexa mającego 32k ram albo ja czegos nie wiem
    i drugie 32k idzie na coś innego :(
    Oczywiście zaraz zmienię ten wpis ale nie jestem, pewien jak ustawić stos.
    w oryginale jest _StackTop = (0x10000000 + 0x8000) - 16;
    chyba zmienię 0x8000 na 0xf000

    --
    Pozdrawiam
    MD

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: