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

ATMEGA2561 [C] - Wysokie zużycie RAM przy wysyłaniu danych przez RS232

10 Gru 2016 19:29 744 3
REKLAMA
  • #1 16117739
    Konto nie istnieje
    Konto nie istnieje  
  • REKLAMA
  • Pomocny post
    #2 16117794
    BlueDraco
    Specjalista - Mikrokontrolery
    A ile miejsca w ROM i w RAM powino Twoim zdaniem zajmować 200 napisów po 31 znaków każdy, które każesz kopiować z ROM do RAM?
  • REKLAMA
  • #3 16117802
    Konto nie istnieje
    Konto nie istnieje  
  • Pomocny post
    #4 16117804
    tzok
    Moderator Samochody
    Co Ci się nie zgadza? Każdy twój ciąg znakowy zajmuje 30 bajtów (31 bo na końcu jest null), 200 takich ciągów to ~6 kB. Czyli ~6kB pamięci programu idzie na ich przechowanie, a po uruchomieniu programu trzeba alokować kolejne ~6kB pamięci RAM na ich przechowanie.

    Po co definiować te ciągi, skoro można je dynamicznie generować? Możesz je też umieścić w pamięci programu. Poczytaj o PROGMEM:
    http://www.atmel.com/webdoc/AVRLibcReferenceManual/pgmspace_1pgmspace_strings.html

    Na przyszłość - zanim zaczniesz podejrzewać czyjś błąd 10x się upewnij czy to Ty nie popełniłeś błędu... tu akurat błędu jako takiego nie było, tylko podejście było niewłaściwe.
REKLAMA