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

ATMEGA128-C-IAR - Jak ustawić CSTACK, RSTACK i HEAP w pamięci RAM?

pawel_5 17 Wrz 2012 12:50 1035 1
REKLAMA
  • #1 11319569
    pawel_5
    Poziom 13  
    Witam,
    Jeśli to możliwe proszę o pomoc w dokonaniu ustawień:

    CSTACK
    RSTACK
    HEAP

    Wiem, że tego tak łatwo nie można określić, trzeba by policzyć i powróżyć z fusów, a najlepiej zastosować debbugera lub umieśić program do monitorowania stosu.

    Nie mniej jednak mi nie chodzi o to aby ktoś podał magiczną liczbę po wpisaniu której procek na wgranym sofcie będzie śmigał jak windows 95 na INTEL I7 .

    Chodzi mi bardziej o to jak Wy byście ustawili te wartości tak z doświadczenia na pierwszy rzut oka. Ja jestem lamerem ale próbuję to pchnąć do przodu, ogólnie program działa, ale jak wszystkie podprogramy po włączam jednocześnie to bywa, że w menu usera program gasi sobie światło i zaczyna uciekać na oślep przed wykonaniem polecenia.

    Przyznaję się publicznie: nie do końca wiem jaka jest różnica pomiędzy HEAP CSTACK i RSTACK. Próbowałem doczytać ale i tak wychodzi na to, że to wszystko jest definicją STOSU. Jeśli to możliwe proszę o wyjaśnienie bez bicia jaką funkcję w praktyce to wykonuje. Za brak wiedzy na ten temat proszę o umiarkowany wymiar kary.

    Aktualne ustawienia:
    ATMEGA128-C-IAR - Jak ustawić CSTACK, RSTACK i HEAP w pamięci RAM?

    ilość kodu:
    [syntax=c][code]
         43 bytes in segment ABSOLUTE
     58 648 bytes in segment CODE
          4 bytes in segment EEPROM_AN
         14 bytes in segment INITTAB
         36 bytes in segment INTVEC
      1 606 bytes in segment NEAR_F
      1 405 bytes in segment NEAR_I
      1 405 bytes in segment NEAR_ID
      1 391 bytes in segment NEAR_Z
        840 bytes in segment SWITCH
     
     62 323 bytes of CODE  memory (+ 226 bytes shared)
      2 620 bytes of DATA  memory (+ 219 bytes shared)
          0 bytes of XDATA memory (+   4 bytes shared)
    
    Errors: none
    Warnings: none[/code][/syntax]
  • REKLAMA
  • #2 11322772
    pawel_5
    Poziom 13  
    Problem rozwiązany.
    CSTACK - ilosc pamieci zadeklarowanej dla stosu - jak widać powyżej wkradł się błąd, kiedy chciałem zadeklarować 512 bajtów, procek robił zwis, bo nie deklarowałem tej ilości tylko wartość 0x512 - to jest hex, grubo ponad 1k. Obecnie mam zadeklarowane 1024 i wszystko śmiga
    RSTACK - ilosc adresow dla powrotu stosu - cos takiego ale nie rozumien za bardzo do czaego to jest, ustawione na 32
    HEAP - nie wiem co to jest ale ustawiłęm na 0

    W powyższej konfiguracji urządzenie pracuje prawidłowo.
    Jeśli ktoś chciałby się wypowiedzieć nad RSTACK i HEAP, zapraszam do dyskusji.
REKLAMA