• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Zużycie pamięci w różnych płytkach
#1
Cześć, mam nadzieję, że ktoś mnie oświeci...
Skompilowałem pewien projekt na płytkę Adafruit Feather 32u4 Adalogger i wszystko się udało i działa.
Taką płytkę akurat miałem. W tym konkretnym przypadku potrzebuję jedynie kilku pinów i I2C, więc pomyślałem, że zastosuję jakąś prostszą płytkę. Porównałem zasoby i wybrałem Arduino Pro Mini (procesor Atmega328, 32kB flash, 2kB ram). W płytce Feather jest Atmega32u4, 32kB flash i 2kB ram.
Okazuje się, że kompilacja kończy się błędem:


Szkic używa 53830 bajtów (175%) pamięci programu. Maksimum to 30720 bajtów.
text section exceeds available space in board
Zmienne globalne używają 9651 bajtów (471%) pamięci dynamicznej, pozostawiając -7603 bajtów dla zmiennych lokalnych. Maksimum to 2048 bajtów.
Sketch too big; see https://support.arduino.cc/hc/en-us/arti...0013825179 for tips on reducing it.
Błąd kompilacji dla płytki Arduino Pro or Pro Mini.

O co chodzi? Jak to się mogło skompilować na płytkę Feather?
Pozdrawiam
 
#2
Nie znam płytki feather, ale jak ten projekt jest od Adafruit to może coś dorzucili, by nie było łatwo użyć innej płytki.
Użyłem kiedyś ich biblioteki do FRAM i sprawdzał konkretny nagłówek w pamięci, identyfikator producenta, jak się nie zgadzał, to program nie ruszał. Wystarczyło zakomentować tę część w bibliotece.
Tych zmiennych globalnych jest akurat tyle by to nie weszło nawet do płytki MEGA.
Włącz pełne komunikaty podczas kompilacji i wgrywania, ustawienia Arduino IDE, popatrz jakie są logi dla obu płytek, jakie podsumowanie kompilacji, wrzuć tutaj, może ktoś coś zauważy.
Sam projekt też możesz podać w postaci jakiegoś linka.
Nie mam tej płytki, więc nic nie zweryfikuję, ale też bym się zdziwił z takiego komunikatu.
Miło być decenianym https://buycoffee.to/kaczakat
 
#3
Atmega32u4 a Atmega328 nie jest to samo chodzi o peryferia , choć by timery i usb. Wiec przeniesienie programu jednego na drugi to nie takie łatwe.
Arduino zostało wymyślone po to, by robić dobrze jedną prostą rzecz – migać diodą. 
 
#4
(28-09-2023, 05:55)Jarewa0606 napisał(a): Atmega32u4 a Atmega328 nie jest to samo chodzi o peryferia , choć by timery i usb. Wiec przeniesienie programu jednego na drugi to nie takie łatwe.
Poszedłem tym tropem. Zainstalowałem płytkę Sparkfun Mega Pro, która ma Atmega32u4 i... nie kompiluje się Sad
Czy można gdzieś podejrzeć jak została wykorzystana pamięć przy projekcie skompilowanym pomyślnie?
 
#5
Wstyd się przyznać... strzeliłem gafę Sad
Projekt uruchomiłem na płytce Feather Adalogger ale nie 32u4 tylko M0 (na której jest ATSAMD21) i... wszystko teraz się zgadza. A to takie podobne płytki....
Sorry za zamieszanie  Shy
 
#6
Dzięki za podzielenie się rozwiązaniem.
Miło być decenianym https://buycoffee.to/kaczakat
 
  


Skocz do:


Przeglądający: 1 gości