logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[ATMega16][C/C++] jak sprawdzić zajętość pamięci SRAM [solv]

Tomkiewicz 01 Mar 2009 21:15 1451 0
REKLAMA
  • #1 6223525
    Tomkiewicz
    Poziom 13  
    nie znalazłem gotowej funkcji w gcc do odczytania wolnej / zajętej pamięci, więc próbowałem napisać własną - w tym problem jednak, że malloc(10000) radośnie działa, mimo, że proc ma 1kB ramu, sprawdzanie adresu też niewiele daje: w pętli alokuje po 100 bajtów mallokiem i za każdym razem sprawdzam, czy mogę do zaalokowanego adresu coś zapisać i czy przy odczycie się zgadza - tu też są kwiatki, bo bez problemu się alokują fragmenty pamięci o adresach trochę powyżej 1024, które w dodatku dają się zapisywać i odczytywać (przy wyjściu "troche dalej" pojawiają się krzaki na lcd)...

    Czy jest może jakiś skuteczny sposób odczytania ilości wolnej pamięci w danym momencie działania programu?

    EDIT:

    przestudiowałem trochę dokładniej struktutę pamięci atmegi i okazało się, że adresowanie SRAM zaczyna się od 96, a na końcu pamięci jest zaalokowany stos - wszystko się zaczyna więc zgadzać... Napisałem program, który alokuje całą możliwą dostępną pamięć - wydaje się działać OK - wrzucam, może komuś się jeszcze przyda.

    Polecam lekturę rozdziału AVR ATmega16 Memories -> SRAM Data Memory z datasheeta megi16 oraz using malloc() z manuala avr-libc
  • REKLAMA
REKLAMA