eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaPamięć at89c2051 › Re: Pamięć at89c2051
  • Path: news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!go
    blin2!goblin1!goblin.stu.neva.ru!newsfeed.neostrada.pl!unt-exc-01.news.neostrad
    a.pl!unt-spo-b-01.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail
    Subject: Re: Pamięć at89c2051
    Newsgroups: pl.misc.elektronika
    References: <58d0dfa8$0$651$65785112@news.neostrada.pl>
    From: MKi <e...@t...op.pl>
    Date: Tue, 21 Mar 2017 09:48:07 +0100
    User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:45.0) Gecko/20100101 Thunderbird/45.6.0
    MIME-Version: 1.0
    In-Reply-To: <58d0dfa8$0$651$65785112@news.neostrada.pl>
    Content-Type: text/plain; charset=utf-8; format=flowed
    Content-Transfer-Encoding: 8bit
    Lines: 64
    Message-ID: <58d0e8c7$0$5150$65785112@news.neostrada.pl>
    Organization: Telekomunikacja Polska
    NNTP-Posting-Host: 84.10.18.54
    X-Trace: 1490086087 unt-rea-a-01.news.neostrada.pl 5150 84.10.18.54:49499
    X-Complaints-To: a...@n...neostrada.pl
    Xref: news-archive.icm.edu.pl pl.misc.elektronika:715308
    [ ukryj nagłówki ]

    -- Wiadomość oryginalna (wysłana 21.03.2017 09:09) --
    > Ciąg dalszy eksperymentów z antycznymi mikrokontrolerami. :)
    >
    > Trafiłem na taką oto dziwną sytuację (zawartość pliku .mem wklejona na
    > końcu wiadomości). Z jakiegoś powodu kilkanaście bajtów na początku
    > pamięci zostało wyłączonych z użytku przez kompilator sdcc. Ktoś ma
    > pomysł dlaczego tak się stało i co mogę z tym zrobić?
    > Może mam coś źle ustawione w makefile albo powinienem deklarować zmienne
    > w jakiś specyficzny sposób?
    >
    > 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?
    >
    >
    > Internal RAM layout:
    > 0 1 2 3 4 5 6 7 8 9 A B C D E F
    > 0x00:|0|0|0|0|0|0|0|0|a|a|a|a|Q| | | |
    > 0x10:| | | | | | | | | | | | | | | | |
    > 0x20:|B|b|b|b|b|b|b|b|b|b|b|b|b|b|b|b|
    > 0x30:|b|b|b|b|b|b|b|b|b|b|b|b|b|b|b|b|
    > 0x40:|b|b|b|b|b|b|b|b|b|b|b|b|b|b|b|S|
    > 0x50:|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|
    > 0x60:|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|
    > 0x70:|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|
    > 0x80:| | | | | | | | | | | | | | | | |
    > 0x90:| | | | | | | | | | | | | | | | |
    > 0xa0:| | | | | | | | | | | | | | | | |
    > 0xb0:| | | | | | | | | | | | | | | | |
    > 0xc0:| | | | | | | | | | | | | | | | |
    > 0xd0:| | | | | | | | | | | | | | | | |
    > 0xe0:| | | | | | | | | | | | | | | | |
    > 0xf0:| | | | | | | | | | | | | | | | |
    > 0-3:Reg Banks, T:Bit regs, a-z:Data, B:Bits, Q:Overlay, I:iData,
    > S:Stack, A:Absolute
    >
    > Stack starts at: 0x4f (sp set to 0x4e) with 49 bytes available.
    >
    > Other memory:
    > Name Start End Size Max
    > ---------------- -------- -------- -------- --------
    > PAGED EXT. RAM 0 256
    > EXTERNAL RAM 0 1024
    > ROM/EPROM/FLASH 0x0000 0x0327 808 2048
    >

    Pamięć:
    Zapewne obszar zmiennych jednego modułu (jednego pliku .c)
    musi być ciągły, a obszar "bbbb" jest za duży, aby się
    zmieścił od 0x0D do 0x1F. Używasz też zmiennych bitowych,
    które zaczynają się zawsze od 0x20.
    Rozwiązanie: rozdziel zmienne modułu "bbbb" na dwa moduły.

    Dane we FLASH: Jak najbardziej, całe kombinowanie
    to dyrektywa const lub code.

    Pozdrowienia,
    MKi




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: