eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaPamięć at89c2051Re: Pamięć at89c2051
  • Data: 2017-03-24 08:02:53
    Temat: Re: Pamięć at89c2051
    Od: g...@s...invalid (Adam Wysocki) szukaj wiadomości tego autora
    [ pokaż wszystkie 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: