ATNEL tech-forum https://forum.atnel.pl/ |
|
MK_MENU + rozbudowane menu + brak RAM https://forum.atnel.pl/topic22166.html |
Strona 1 z 1 |
Autor: | mirekk36 [ 12 kwi 2019, o 14:44 ] |
Tytuł: | Re: MK_MENU + rozbudowane menu + brak RAM |
Mk MENU w ogóle prawie nie używa RAMu .. .pewnie coś żeś pan namieszał na początek to myślę, że nie zaznaczyłeś ptaszka AVR i masz kod generowany jak dla ARM bez PROGMEM - a wtedy będziesz miał w AVRrze armagedon i słusznie |
Autor: | mirekk36 [ 12 kwi 2019, o 15:27 ] |
Tytuł: | Re: MK_MENU + rozbudowane menu + brak RAM |
wachcio napisał(a): Po wydłużeniu do ok 240 pozycji ileeeeeee ?!?!? ... toż to jakiś hardcore ... ale ok - no nawet nie przeszło mi przez myśl że ktoś będzie coś takiego robił .... Muszę się zastanowić co tyle zżera bo tak na gorąco to nie wiem |
Autor: | mirekk36 [ 12 kwi 2019, o 18:20 ] |
Tytuł: | Re: MK_MENU + rozbudowane menu + brak RAM |
ale zrób że prosty test - weź sobie załóż pusty projekt w MkClipse - i do niego wygeneruj to MENU tak jak ja to zrobiłem z tego co wkleiłeś wyżej i sprawdź. I proszę cię nie opowiadaj mi, że taka drastyczna różnica zajętości pamięci wynika z różnych toolchainów - to NIE MO ŻLI WE Zrób ten test i daj znać - sam zobaczysz ... taka zajętość pamięci musi wynikać z definicji jakichś dużej ilości zmiennych albo tablic w RAM. Jeśli po tym teście nie zobaczysz takiej zajętości to już będziesz wiedział że coś masz mocno nie tak w swoim kodzie ------------------------ [ Dodano po: 1 minucie ] A różnice po kompilacji pomiędzy toolchainami to się mogą sprowadzić do zajętości ale to pamięci FLASH i to też o kilka, kilkanaście albo i kilkaset bajtów !!! a nie tam tysiąc i więcej ... A w RAM ? nie wiem może kilka bajtów |
Autor: | mirekk36 [ 13 kwi 2019, o 01:06 ] |
Tytuł: | Re: MK_MENU + rozbudowane menu + brak RAM |
wachcio napisał(a): W pliku mk_menu_display.h zmieniłem extern TPROPERTY menu_property[]; na extern TPROPERTY menu_property[] EEMEM; i dodając #include <avr/eeprom.h> Będę testował czy przeniesienie w/w struktury da porządany efekt. Na razie kompilacja przebiegła pomyślnie Sorki ale to kompletne ale to kompletne nieporozumienie ... i szybko się o tym przekonasz wachcio napisał(a): Doszedłem, że odkomentowanie funkcji on_display_menu_item_property w długim menu daje taki efekt... Bez niej 70% RAM z nią 125% typ: TPROPERTY to struktura o rozmiarze 13 bajtów, jeśli w RAM ma być 240 takich elementów to masz ok 3KB !!! zajętości RAM albo zoptymalizujesz sobie sam użycie propertiesów - albo zmniejsz MENU. inaczej to nie dziw się, że przy TYLU propertiesach - masz taką a nie inną zajętość pamięci - a tym bardziej, że bez użycia MENU masz już zajętość tragicznie wielką bo 70% albo ostatnie wyjście - użyj ATmega1284P (IDENTYCZNA pinologia jak ATmega644) tyle, że ma 16KB RAM |
Autor: | mirekk36 [ 13 kwi 2019, o 11:56 ] |
Tytuł: | Re: MK_MENU + rozbudowane menu + brak RAM |
Ale ja nie mówię że źle wykorzystujesz propertiesy = tylko że jeśli dałeś ich aż tyle no to nie ma co się dziwić , że dochodzi ci do zajętości 125% RAM ... Ja pisałem że coś może źle robisz że przed MkMenu masz aż tak dużą zajętość RAM w swoim programie = 70% ... chociaż kto wie poza tobą - może tak musi być. No ale jeśli źle zopytmalizowałeś swój program no to ... Być może po własnej optymalizacji uzyskałbyś np 30% zajętości zamiat 70% Wystarczy, że w kodzie się zostawi takie zapisy lcd_str( "jakiś tam komunikat" ); to od razu chlasta człowiek sobie RAM jak brodę brzytwą wystarczy dać tak lcd_str_P( PSTR("jakiś tam komunikat") ); i już z RAMu znika tyle bajtów ile liczy sobie ten string. |
Strona 1 z 1 | Strefa czasowa: UTC + 1 |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |