eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaPamięć at89c2051 › Re: Pamięć at89c2051
  • Path: news-archive.icm.edu.pl!news.icm.edu.pl!news.chmurka.net!.POSTED.xt.v.chmurka.n
    et!not-for-mail
    From: g...@s...invalid (Adam Wysocki)
    Newsgroups: pl.misc.elektronika
    Subject: Re: Pamięć at89c2051
    Date: Fri, 24 Mar 2017 07:02:53 +0000 (UTC)
    Organization: news.chmurka.net
    Message-ID: <bTdc54laI9c8Nv8%gof@news.chmurka.net>
    References: <58d0dfa8$0$651$65785112@news.neostrada.pl>
    Mime-Version: 1.0
    Content-Type: text/plain; charset=ISO-8859-2
    Content-Transfer-Encoding: 8bit
    Injection-Date: Fri, 24 Mar 2017 07:02:53 +0000 (UTC)
    Injection-Info: news.chmurka.net; posting-account="gof";
    posting-host="xt.v.chmurka.net:172.24.44.4"; logging-data="17971";
    mail-complaints-to="abuse-news.(at).chmurka.net"
    User-Agent: tin/2.3.3-20160327 ("Kinloch") (UNIX) (Linux/3.16.0-4-amd64 (x86_64))
    DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/simple; d=chmurka.net; s=news;
    t=1490338970; bh=xo7FwMnIiO4ml54+f4zxzU+72g0=;
    h=From:Subject:Newsgroups:References:Message-ID:Cancel-Lock:
    User-Agent:MIME-Version:Content-Type:Content-Transfer-Encoding;
    b=cIGeMYIXzzEQ53iQB1kwTdk3e88qtiAuDaw9UsvGWS6gIAjlggT0R/MDz+lUe8kJC
    hkFB8GhcnqK3BVSi8c/xtAfblboBgwJNKz6rvjj0vO/Tfx8epV99ZJNpuLPTtFwc+B
    TQ4ceGuZQDfxvsKyBKbgw5S+LmPZc3VYIQzGmgoo=Gmgoo=
    Cancel-Lock: sha1:Mf2J9sNwdoH71pCGy2d8w/3s68M=
    Xref: news-archive.icm.edu.pl pl.misc.elektronika:715536
    [ ukryj nagłówki ]

    Atlantis <m...@w...pl> wrote:

    > Druga sprawa: wykonałem kilka eksperymentów i z tego co widzę
    > umieszczenie w kodzie tablicy znaków zdefiniowanej jako const char[] nie
    > powoduje zwiększenia zużycia RAM-u. Mam rozumieć, że 8051/sdcc potrafi
    > odwoływać się do danych umieszczonych w pamięci programu bezpośrednio,
    > bez potrzeby kombinowania z jakimś odpowiednikiem AVR-owskiego pgmspace.h?

    Bardzo bym się zdziwił. To, co jest w const char[], musi być w RAM-ie nie
    bez powodu - te adresy muszą być dostępne dla funkcji, które operują na
    RAM-ie. Przykładowo jak wywołasz memcpy(), to ona zakłada, że dostała
    adres do RAM-u i używa instrukcji czytających z RAM-u.

    8051, tak jak AVR, jest architekturą Harvardzką, co znaczy, że pamięć
    programu i operacyjna to dwie osobne pamięci. To, że te architektury mają
    instrukcje umożliwiające czytanie pamięci programu, to tzw. zmodyfikowana
    architektura Harvardzka.

    Dla AVR to odpowiednio instrukcje LD i LPM, dla 8051 - MOV i MOVC. Funkcje
    operujące na pamięci muszą wiedzieć, z których instrukcji korzystać dla
    danego adresu.

    Co do reszty - nie pomogę, dla 8051 pisałem coś ostatnio 15 lat temu :(

    --
    http://www.chmurka.net/

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: