eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaDane w pamięci flash ARM7 w gcc
Ilość wypowiedzi w tym wątku: 4

  • 1. Data: 2009-11-13 22:27:22
    Temat: Dane w pamięci flash ARM7 w gcc
    Od: Sebastian Biały <h...@p...onet.pl>

    Witam.

    Chcę tablicę charów umiescić na stale w pamięci flash.

    Czy aktualnie poprawna metodą jest:

    __attribute__ ((section (".text"))) char t[1000];

    i wpis w skrypcie linkera wysylający to do sekcji flash ?

    Oglądając wynikowy listing w asm wydaje mi się ze robi co powinno, ale
    może to zła metoda. Może ktoś podpowiedzieć?


  • 2. Data: 2009-11-13 22:51:35
    Temat: Re: Dane w pamięci flash ARM7 w gcc
    Od: Konop <k...@g...pl>

    > Chcę tablicę charów umiescić na stale w pamięci flash.
    >
    > Czy aktualnie poprawna metodą jest:
    >
    > __attribute__ ((section (".text"))) char t[1000];
    >
    > i wpis w skrypcie linkera wysylający to do sekcji flash ?
    >
    > Oglądając wynikowy listing w asm wydaje mi się ze robi co powinno, ale
    > może to zła metoda. Może ktoś podpowiedzieć?

    Jeśli jest OK, to o co chodzi? Ja to robiłem w prostszy sposób:
    const char t[1000] = ... ;

    W moim przypadku GCC wrzucał to do Flasha ;)... ale czy to zachowanie
    domyślne, czy wynika z jakiś ustawień GCC, to nie wiem (makefile wziąłem
    z FreeRTOS'a ;)). Generalnie w prockach ARM7 nie ma z tym problemu, bo
    dostęp jest taki sam jeśli idzie o sposób dostępu (do RAM i do Flash
    jest taki sam). Jedyna różnica to szybkość w działaniu.

    Generalnie warto by było żyć określenia const. Bez tego możesz
    przypadkowo skompilować kod typu t[0]++ albo coś. Kompilator to puści,
    linker nie będzie się wgryzać w szczegóły, a procek się zawiesi (wejdzie
    w Abort), bo będziesz próbował zapisać nie tam gdzie trzeba...

    Pozdrawiam
    Konop


  • 3. Data: 2009-11-13 23:23:50
    Temat: Re: Dane w pamięci flash ARM7 w gcc
    Od: Sebastian Biały <h...@p...onet.pl>

    Konop wrote:
    > Jeśli jest OK, to o co chodzi?

    :D. To niestety niewystarczający powód żeby zamknąć temat. moze być OK
    tylko u mnie, na jakiejś wersji kompilatora, bądzi istnieje inny,
    oficjalny sposób.

    > Ja to robiłem w prostszy sposób:
    > const char t[1000] = ... ;

    Nie wiem czy napewno wyląduje to tam gdzie chcę.

    > Generalnie w prockach ARM7 nie ma z tym problemu, bo
    > dostęp jest taki sam jeśli idzie o sposób dostępu (do RAM i do Flash
    > jest taki sam).

    Jest problem, bo dane mogę zostac niepotrzebnie przeniesione z Flash do
    RAM na inicie programu i chce tego uniknąć możliwie w pewny sposób.

    > Generalnie warto by było żyć określenia const.

    Na codzień robie developing czegoś bardzo dużego, gdzie consty sa
    powszechne. Więc mam to we krwi i stosuje gdzie się da. Ale czy z const
    wynika od razu ladowanie się do flash, to pewny nie jestem, dlatego
    pytam jaka jest poprawna metoda.


  • 4. Data: 2009-11-14 06:54:19
    Temat: Re: Dane w pamięci flash ARM7 w gcc
    Od: Paweł <p...@n...pl>


    > Na codzień robie developing czegoś bardzo dużego, gdzie consty sa
    > powszechne. Więc mam to we krwi i stosuje gdzie się da. Ale czy z const
    > wynika od razu ladowanie się do flash, to pewny nie jestem, dlatego
    > pytam jaka jest poprawna metoda.

    Ja robiłem to zawsze przez const i dane były umieszczane w pamięci Flash.

    Paweł

strony : [ 1 ]


Szukaj w grupach

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: