eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaDane w pamięci flash ARM7 w gccRe: Dane w pamięci flash ARM7 w gcc
  • Path: news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail
    From: Konop <k...@g...pl>
    Newsgroups: pl.misc.elektronika
    Subject: Re: Dane w pamięci flash ARM7 w gcc
    Date: Fri, 13 Nov 2009 23:51:35 +0100
    Organization: "Portal Gazeta.pl -> http://www.gazeta.pl"
    Lines: 27
    Message-ID: <hdknth$qkm$1@inews.gazeta.pl>
    References: <hdkmgi$n5l$1@achot.icm.edu.pl>
    NNTP-Posting-Host: apc206.internetdsl.tpnet.pl
    Mime-Version: 1.0
    Content-Type: text/plain; charset=UTF-8; format=flowed
    Content-Transfer-Encoding: 8bit
    X-Trace: inews.gazeta.pl 1258152689 27286 83.17.136.206 (13 Nov 2009 22:51:29 GMT)
    X-Complaints-To: u...@a...pl
    NNTP-Posting-Date: Fri, 13 Nov 2009 22:51:29 +0000 (UTC)
    X-User: konoppo
    X-Antivirus: avast! (VPS 091113-0, 2009-11-13), Outbound message
    In-Reply-To: <hdkmgi$n5l$1@achot.icm.edu.pl>
    X-Antivirus-Status: Clean
    User-Agent: Thunderbird 2.0.0.23 (Windows/20090812)
    Xref: news-archive.icm.edu.pl pl.misc.elektronika:575595
    [ ukryj nagłówki ]

    > 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

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: