-
Data: 2009-10-14 10:23:26
Temat: Re: Dlaczego ATmega128 przekłamuje?
Od: "Darkac" <d...@w...pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]
Użytkownik "T.M.F." <t...@n...mp.pl> napisał w wiadomości
news:hb46v6$5vf$2@atlantis.news.neostrada.pl...
>> Tak podejrzewałem, ale redukcja zmiennych z 83% zajętości RAM do 52% nie
>> zmieniła nic w tym względzie. Ile może zajmować taki stos? ATmega128 ma
>> 4 KB RAM-u. Polowa pamięci na stos ? Trochę nieprawdopodobne.
>> Kilka wersji programu wcześniej, nie było tego złego zjawiska, a
>> zajętość RAM-u była ponad 80%. Było sporo drobnych zmian, które nie
>> powinny były znacząco wpływać na rozmiar stosu. Ale śledzenie tych zmian
>> to też partaninka.
>
> Zajetosc RAM, ktora ci pokazuje kompilator moze sie miec nijak do
> rzeczywistego zapotrzebowania na pamiec. Przeciez kompilator nie pokazuje
> ci miejsca zajetego przez zmienne alokowane dynamicznie oraz na stosie.
Dlatego też uważałem że potrzebny jest jakis margines bezpieczeństwa.
Dlatego zrobiłem próbę ze zredukowanym radykalnie zapotrzebowaniem na RAM.
Nie wiem w końcu jaką informację niesie pokazany przez kompilator stopień
użycia RAM. Czy jest tam tylko to, co zajmują zadeklarowane zmienne
globalne, czy też razem z maksymalną liczbą zmiennych lokalnych i stosem. Z
powyższych odpowiedzi nie wynika to jednoznacznie. Może ktoś wypowie się.
A tak przy okazji zajętości RAM-u, nie wiem jak rozwiązać następujący
problem:
W programie jest sporo komunikatów tekstowych zadeklarowanych jako stałe w
tablicach jednowymiarowych. Są one wyświetlane na LCD przez procedurę,
której parametrem jest nazwa tablicy. Mimo że deklaracja tablic zawiera
słowo "const", to stałe te niestety zajmują pamięć RAM. I to tyle bajtów ile
w sumie liczą. Jak zrobić żeby stałe te były pobierane z pamięci programu we
Flashu? Dlaczego powielane są do RAM-u? Czy słowo "const" oprócz
zabezpieczenia przed zmianą nie powinno decydować o lokalizacji tej
informacji?
Następne wpisy z tego wątku
- 14.10.09 10:28 DJ
- 14.10.09 10:30 DJ
- 14.10.09 11:16 Michał Lankosz
- 14.10.09 11:59 Darkac
- 14.10.09 12:11 DJ
- 14.10.09 12:36 Darkac
- 14.10.09 12:38 T.M.F.
- 14.10.09 12:39 T.M.F.
- 14.10.09 13:17 Konop
- 14.10.09 13:15 DJ
- 14.10.09 13:21 Konop
- 14.10.09 13:23 Darkac
- 14.10.09 13:41 T.M.F.
- 14.10.09 13:31 Darkac
- 14.10.09 13:52 Darkac
Najnowsze wątki z tej grupy
- Akumulatory VRLA
- ładowarka zmarła
- Podstawa bezpiecznikowa jako rozłącznik DC
- Napięcie akumulatora wyłączające UPS / jakie nowe akumulatory do UPS?
- nawigacja satelitarna
- SmartLife/Tuya i osuszanie -- mordowanie z zimną krwią...
- Głośnik piezoelektryczny
- Mala autonomiczna kamera monitoringu
- czas na emeryturę i EB
- Generowanie sumy kontrolnej z fragmentu pliku bin
- Re: Mala autonomiczna kamera monitoringu
- HDMI
- Re: Mala autonomiczna kamera monitoringu
- Kamera monitoringu z kartą SIM
- Re: Kamera monitoringu z kartą SIM
Najnowsze wątki
- 2024-07-02 Realme 7 Na co zmienić?
- 2024-06-27 Prywatny parking? Pierwsze 10 minut bezplatnie
- 2024-07-02 znalazłem samochód ;)
- 2024-07-02 Pierwszeństwo łamane
- 2024-07-02 zamek
- 2024-07-02 Akumulatory VRLA
- 2024-07-03 Białystok => Inżynier DevOps Conexa First (Kontraktor) <=
- 2024-07-03 MĂźnchen => Test Development Engineer (m/w/d) <=
- 2024-07-03 Warszawa => Full Stack web developer (obszar .Net Core, Angular6+) <=
- 2024-07-03 Warszawa => Programista Full Stack (.Net Core) <=
- 2024-07-02 Kraków => Spedytor międzynarodowy <=
- 2024-07-02 Poznań => Senior React Native Developer <=
- 2024-07-02 Rzeszów => Frontend Developer (React) <=
- 2024-07-02 Warszawa => Fullastack (Java) Developer <=
- 2024-07-02 reparacje