-
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
Następne wpisy z tego wątku
- 21.03.17 10:00 Miller Artur
- 21.03.17 11:16 J.F.
- 21.03.17 11:36 MKi
- 21.03.17 11:52 Marek
- 21.03.17 17:20 niepełnosprawny intelektualnie 'POPIS/EU
- 21.03.17 20:28 Atlantis
- 22.03.17 18:39 Alojzy
- 22.03.17 21:55 Atlantis
- 23.03.17 00:38 J.F.
- 23.03.17 06:14 J.F.
- 24.03.17 08:02 Adam Wysocki
- 24.03.17 08:04 Adam Wysocki
- 24.03.17 08:05 Adam Wysocki
- 24.03.17 09:43 Marek
- 24.03.17 11:14 Adam Wysocki
Najnowsze wątki z tej grupy
- Schemat automatyki
- Teoretyczne zagadnienie - ogrzewanie budynku
- Zagadka radiowa
- Prostownik
- Nowy akumulator Donut Lab
- Pilot do zamka/bramy
- Jaka myjka ultradźwiękowa?
- Retro organizer ale współcześnie
- Skąd diody LED 1,5V?
- Apollo Comm
- PICkit3 mnie pokonał
- LEDy na choinkę zdechły
- Wtopa LED
- Miało być zniesienie abonamentu RTV, a jest podwyżka!!!
- Microsoft, C/C++ na Rust - news
Najnowsze wątki
- 2026-01-14 Do Kongresu SZAP/USONA Złożono Proj. ,,Ustawy o aneksji i statusie stanowym Grenlandii"
- 2026-01-13 STREFA CZYSTEGO TRANSPORTU. O tym nie mówią nam WŁADZE
- 2026-01-13 To nie koniec
- 2026-01-13 Warszawa => Recruiter 360 <=
- 2026-01-13 Katowice => Key Account Manager <=
- 2026-01-13 Warszawa => Senior Backend Java Developer <=
- 2026-01-13 Wrocław => ERP Implementation Consultant <=
- 2026-01-13 Elektryk a otwieranie drzwi :-)
- 2026-01-12 Schemat automatyki
- 2026-01-12 Xiaomi [Chiny - przyp. JMJ] produkuje w całkowitych ciemnościach i bez ludzi
- 2026-01-12 Polska Grupa Zbrojeniowa (85% udziałów) Likwiduje Stomil-Poznań - Zakład Działał Od 1928r.
- 2026-01-12 Teoretyczne zagadnienie - ogrzewanie budynku
- 2026-01-12 Xiaomi [Chiny - przyp. JMJ] produkuje w całkowitych ciemnościach i bez ludzi
- 2026-01-12 Xiaomi [Chiny - przyp. JMJ] produkuje w całkowitych ciemnościach i bez ludzi
- 2026-01-12 Polska Grupa Zbrojeniowa (85% udziałów) Likwiduje Stomil-Poznań - Zakład Działał Od 1928r.




5 Najlepszych Programów do Księgowości w Chmurze - Ranking i Porównanie [2025]