eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaZelety architektury Von Neumannna w uC ARM?Re: Zelety architektury Von Neumannna w uC ARM?
  • Path: news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!new
    s.nask.pl!news.nask.org.pl!news.internetia.pl!newsfeed.neostrada.pl!atlantis.ne
    ws.neostrada.pl!news.neostrada.pl!not-for-mail
    From: "T.M.F." <t...@n...mp.pl>
    Newsgroups: pl.misc.elektronika
    Subject: Re: Zelety architektury Von Neumannna w uC ARM?
    Date: Sun, 08 Nov 2009 11:15:34 +0100
    Organization: TP - http://www.tp.pl/
    Lines: 30
    Message-ID: <hd65se$pan$1@atlantis.news.neostrada.pl>
    References: <9...@z...googlegroups.com>
    <hd4slt$tv5$1@news.onet.pl>
    Reply-To: t...@n...mp.pl
    NNTP-Posting-Host: dtx234.neoplus.adsl.tpnet.pl
    Mime-Version: 1.0
    Content-Type: text/plain; charset=ISO-8859-2; format=flowed
    Content-Transfer-Encoding: 8bit
    X-Trace: atlantis.news.neostrada.pl 1257675470 25943 83.22.5.234 (8 Nov 2009 10:17:50
    GMT)
    X-Complaints-To: u...@n...neostrada.pl
    NNTP-Posting-Date: Sun, 8 Nov 2009 10:17:50 +0000 (UTC)
    User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.4pre) Gecko/20091014
    Fedora/3.0-2.8.b4.fc11 Thunderbird/3.0b4
    In-Reply-To: <hd4slt$tv5$1@news.onet.pl>
    Xref: news-archive.icm.edu.pl pl.misc.elektronika:575116
    [ ukryj nagłówki ]

    > Druga sprawa to dostęp do danych - np. w funkcji printf podajesz jako
    > pierwszy parametr adres ciągu znaków do wypisania. No i w ARMach adres
    > to adres - może sobie być w obszarze programu (np. w pamięci Flash),
    > może być w danych. A w AVRach to dopiero jest jazda - wymagane są
    > oddzielne funkcje pobierające ten ciąg z pamięci danych (printf) oraz z
    > pamięci programu (printf_P) i specjalne makra nakazujące umieszczenie
    > ciągu znaków w pamięci programu.

    Wiele tych niedogownosci jest gcc-specyficznych, bo gcc nie obsluguje
    segmentow pamieci - ale ma sie to wkrotce zmienic. Ale ma to tez zalety
    - w AVR mozesz miec 64kB FLASH i 64kB SRAM i ciagle adresowac je za
    pomoca 16-bitowych wskaznikow, co daje istotne zyski, a przy madrze
    napisanym programie korzystanie z oddzielnych funkcji nie jest az tak
    uciazliwe. Inaczej musialbys miec wskazniki co najmniej 17 bitowe, czyli
    w praktyce 24 bitowe, niezly overkill dla procesora, ktory wlasciwie nie
    ma instrukcji operujacych nawet na 16 bitach.
    Funkcje tez mozna napisac uniwersalne - ja np. w jednym z programow
    zdefiniowalem sobie makra, ktore powoduja, ze najstarszy bit adresu
    interpretowany jest jako wskaznik rodzaju pamieci - jak jest 1 to FLASH,
    0 - SRAM, oczywiscie zaweza mi to ilosc obslugiwanej pamieci do 2x32kB,
    ale mi to wystarczylo. W C++ mozna to zrobic jeszcze bardziej elegancko
    i transparentnie dla programu.



    --
    Inteligentny dom - http://idom.wizzard.one.pl
    http://idom.sourceforge.net/
    Teraz takze forum dyskusyjne
    Zobacz, wyslij uwagi, dolacz do projektu.

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: