eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaRóżnice między mikrokontrolerami › Re: Różnice między mikrokontrolerami
  • Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.
    atman.pl!goblin3!goblin1!goblin.stu.neva.ru!newsfeed.neostrada.pl!unt-exc-02.ne
    ws.neostrada.pl!unt-spo-a-01.news.neostrada.pl!news.neostrada.pl.POSTED!not-for
    -mail
    Date: Wed, 10 Feb 2016 19:14:10 +0100
    From: mk <reverse_lp.pw@myzskm>
    User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:24.0) Gecko/20100101 Thunderbird/24.6.0
    MIME-Version: 1.0
    Newsgroups: pl.misc.elektronika
    Subject: Re: Różnice między mikrokontrolerami
    References: <56b49564$0$642$65785112@news.neostrada.pl>
    <n92n98$u9o$1@node2.news.atman.pl>
    <56b50477$0$22831$65785112@news.neostrada.pl>
    <56b52b57$0$22826$65785112@news.neostrada.pl>
    In-Reply-To: <56b52b57$0$22826$65785112@news.neostrada.pl>
    Content-Type: text/plain; charset=UTF-8; format=flowed
    Content-Transfer-Encoding: 8bit
    Lines: 54
    Message-ID: <56bb7def$0$22833$65785112@news.neostrada.pl>
    Organization: Telekomunikacja Polska
    NNTP-Posting-Host: host-178-216-93-110.sta.tvknaszapraca.pl
    X-Trace: 1455128048 unt-rea-a-02.news.neostrada.pl 22833 178.216.93.110:2297
    X-Complaints-To: a...@n...neostrada.pl
    Xref: news-archive.icm.edu.pl pl.misc.elektronika:693949
    [ ukryj nagłówki ]

    W dniu 2016-02-06 00:08, Grzegorz Kurczyk pisze:
    > W dniu 05.02.2016 o 21:22, Atlantis pisze:
    >> W dniu 2016-02-05 o 18:47, Sebastian Biały pisze:
    >>
    >>> Przy czym zaznaczam że czasami harvardowatość jest ukryta przed kodem
    >>> usera. Mówimy o procesorach gdzie jest to widoczne, jak na przykład AVR.
    >>> Tam jezyk C z definicji bedzie musiał być wspierany w mało przenośny
    >>> sposób aby wydajnie programować.
    >>
    >> Hmm... O jakich aspektach kodu pod AVR tutaj mówimy?
    >>
    >
    > AVR ma oddzielną pamięć programu i danych co powoduje, że np do
    > odczytania bajtu z pamięci programu (która ma szynę 16-bitową) służy
    > inny rozkaz procesora niż do czytania bajtu z pamięci danych z szyną
    > 8-bitową. Czyli jeśli z poziomu języka wyższego poziomu chcesz np.
    > wyświetlić jakiś napis, to masz dwie różne definicje łańcucha
    > określające w jakiej pamięci ma być umieszczony i dwie różne procedury
    > do wyświetlania tego łańcucha w zależności gdzie był umieszczony. W
    > AVRGCC jest specjalny typ wskaźnikowy do stałych umieszczonych w pamięci
    > programu.

    Wstępnie zaznaczę, że nie znam kompletnie AVRGCC...

    Jeśli tak jest, że w AVRGCC *nie da się* zmienną wskaźnikową wskazać raz
    na obiekt w pamięci programu, a potem na obiekt w pamięci zmiennych, to
    jest to tylko ułomność owego AVRGCC. MCS-51 miał jeszcze bardziej
    porypany model pamięci i do każdej z nich trzeba było się odwoływać
    innymi instrukcjami maszynowymi. Niemniej kompilator Keila bez problemu
    sobie z tym radził i standardowe wskaźniki C były implementowane w taki
    sposób, że takim wskaźnikiem do woli można skakać pomiędzy różnymi
    rodzajami pamięci MCS-51. Standard C nie wymusza, że wskaźnik musi być
    li tylko adresem. Wskaźnik jak najbardziej może przechowywać dodatkowe
    informacje pozwalające na dobranie się do wskazywanego obiektu bez
    żadnych dwuznaczności.
    W kompilatorze Keila na MCS-51 wskaźnik zajmował trzy bajty -- jedno
    pole 8-bit typu pamięci + 16-bitowy adres. Oczywiście były też
    niestandardowe wskaźniki służące do pokazywania tylko w wybranym typie
    pamięci -- to dla tych co lubią/potrzebują optymalizować kod.

    > Przy architekturze von Neumanna nie ma rozdzielenia pamięci danych od
    > pamięci programu. O tym czy procesor widzi pamięć w danej chwili kostkę
    > RAM, EPROM czy rejestr jakiegoś I/O decyduje dekoder adresów. Procek
    > może wykonywać rozkazy umieszczone w dowolnym obszarze przestrzeni
    > adresowej. Z punktu widzenia języka wysokiego poziomu w rodzaku C taki
    > sam wskaźnik char* może wskazywać na jakiś fragment kodu programu, daną
    > czy rejestr układu I/O.

    Napomnę o Modified Harvard Architecture, współcześnie
    najpopularniejszej, łączącej wspólną przestrzeń adresową i korzyści
    posiadania dwóch (a może i jeszcze więcej) magistral.

    pzdr
    mk

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: