-
Data: 2017-03-21 09:48:07
Temat: Re: Pamięć at89c2051
Od: MKi <e...@t...op.pl> szukaj wiadomości tego autora
[ pokaż wszystkie 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
- Gniazdo + wtyk
- Aliexpress zaczął oszukiwać na bezczelnego.
- OpenPnP
- taka skrzynka do kablowki
- e-paper
- 60 mA dużo czy spoko?
- Dziwne zachowanie magistrali adresowej w 8085
- Współczesne mierniki zniekształceń nieliniowych THD audio, produkują jakieś?
- Jaki silikon lub może klej?
- Smar do video
- Litowe baterie AA Li/FeS2 a alkaliczne
- "ogrodowa linia napowietrzna"
- jaki zasilacz laboratoryjny
- jaki zasilacz laboratoryjny
- Puszka w ziemię
Najnowsze wątki
- 2025-02-25 Tak wiem.... To oczywiste ale jak oni dzisiaj dziadują na materiale
- 2025-02-25 rozliczenia policji
- 2025-02-25 Echhhhhh. Marzy mi się SWAP Audi A2 z 1.8 T ;-)
- 2025-02-25 Warszawa => Analityk Biznesowo-Systemowy <=
- 2025-02-25 Warszawa => SQL Developer <=
- 2025-02-25 Zbigniew Ziobro śmie sugerować "niedostatki niezawisłości" sędzi (wątpliwości co do bezstronności)
- 2025-02-25 Kraków => DevOps Engineer (Junior/Regular) <=
- 2025-02-25 Kraków => Front-end Developer <=
- 2025-02-25 Szpital
- 2025-02-24 Gniazdo + wtyk
- 2025-02-24 Dyrektor Toyoty miał rację. Elektryki to ślepa uliczka
- 2025-02-24 Białystok => System Architect (Java background) <=
- 2025-02-24 Białystok => System Architect (background deweloperski w Java) <=
- 2025-02-24 Białystok => Solution Architect (Java background) <=
- 2025-02-24 Warszawa => Data Engineer (Tech Leader) <=