Odpowiedz 
 
Ocena wątku:
  • 1 Głosów - 3 Średnio
  • 1
  • 2
  • 3
  • 4
  • 5
Arduino
SP3TLU Offline


Liczba postów: 8
Dołączył: 24-02-2010
Post: #191
RE: Arduino
(18-03-2021 6:06)SP6AUO napisał(a):  Witam.
Z góry dziękuję za wszelkie informacje.
Na załączniku dwa przykłady skompilowanych plików użytych w procesie programowania.Jeden wsad zajmuje 97% w pamięci drugi 100%.
,
Wpis typu " u mnie zajmuje 95%" nie do końca jest dla mnie zrozumiały.
Przy kompilacji tworzą się dwa pliki hex i ja je przedstawiłem, konkretnie.
Jestem laikiem w tej dziedzinie i działam na zasadzie "macajewa",
metodą nie do końca zrozumiałą.
Tadeusz,chętnie spróbuję tej metody o której piszesz w post 185.
Już pierwsze pytanie,czy trzeba do tego wypalić bootloader ?
Witam!
Jeżeli korzystamy z programatora USBasp lub podobnego ISP, to wystarczy plik bez bootloadera.
Bootloader potrzebny jest przy programowaniu procesora "po UART",
czyli bezpośrednio z IDE arduino na oryginalnych płytkach lub z pomocą konwertera USB - UART(RS).

https://atnel.pl/mkbootloader.html

Sebastian
(Ten post był ostatnio modyfikowany: 18-03-2021 8:43 przez SP3TLU.)
18-03-2021 8:43
Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
SP6AUO Offline
Andrzej
*****

Liczba postów: 1,035
Dołączył: 20-09-2009
Post: #192
RE: Arduino
Tak.To wiem,tylko dlaczego plik z bootloaderem da się zapisać,a bez bootloadera nie ?
Dlaczego zawartość z bootloaderem jest mniejsza (97%) od standardu (100%) ?

Andrzej
(Ten post był ostatnio modyfikowany: 18-03-2021 9:08 przez SP6AUO.)
18-03-2021 9:08
Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
SP3TLU Offline


Liczba postów: 8
Dołączył: 24-02-2010
Post: #193
RE: Arduino
U mnie to wygląda tak:
İmage İmage
kompilowana przed chwilą wersja "1.02m" w arduino IDE 1.8.13.
Płytka "Arduino NANO" Atmega328p.
Pozdrawiam Sebastian
18-03-2021 9:46
Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
SP6AUO Offline
Andrzej
*****

Liczba postów: 1,035
Dołączył: 20-09-2009
Post: #194
RE: Arduino
Żeby to było porównywalne z moim wyglądem,należy ustawić prawidłowe fuse bity ( L-FF,H-D6,Ex-FD) i zapisać.
Wstawic ptaszka w okienku fuse bity i wybrać ver 1.02p.
Może ver 1.02m jest mniejsza od 1.02p
Przy okazji, czy zmiana fuse bitów zwiększa zajętość pamięci ?

Andrzej
(Ten post był ostatnio modyfikowany: 18-03-2021 11:03 przez SP6AUO.)
18-03-2021 11:03
Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
SQ8MVY Offline
Paweł
****

Liczba postów: 724
Dołączył: 30-07-2011
Post: #195
RE: Arduino
Andrzeju fusebity to tylko fisebity konfigurujące niektóre właściwości Atmegi.

Co do zajętości pamięci. Założeniem całego środowiska jest praca z bootloaderem, więc automatycznie do dyspozycji dla użytkownika jest mniejsza ilość dostępnego FLASH-a.
Ten bootloader gdzieś musi się zmieścić.
To ile dostępnego FLASH-a jest w Atmedze na danej platformie arduino dla użytkownika, zapisane jest w plikach konfiguracyjnych płytek w środowisku Arduino IDE. Zwróćcie uwagę, że używana Atmega328 posiada 32768 bajtów FLASH, a dokładniej 16384 słów. Tą informację widać na prezentowanych zrzutach ekranów MkAVRCalculator.
Natomiast w informacji po kompilacji w ArduinoIDE widać, że dostępna ilość pamięci FLASH dla użytkownika to 30728 bajtów. Reszta zarezerwowana jest na bootloader Arduinowy.

(18-03-2021 9:08)SP6AUO napisał(a):  Dlaczego zawartość z bootloaderem jest mniejsza (97%) od standardu (100%) ?

Tu potrzebne są logi z kompilacji, aby zrozumieć co się dzieje.
Zapewne kompilacja z bootloaderem robiona jest dla wielkości FLASH-a 32768 bajtów, więc skoro główny program po kompilacji nie zajmuje całej dostęþnej przestrzeni FLASH-a dla użytkownika ( 30728 bajtów) to masz 97% zajętości, a nie 100%. Bootloader ładowany jest na sam koniec Flash-a do sekcji przeznaczonej dla bootloadera.
Zauważ, że kod wynikowy bez bootloadera też nie zajmuje całego dostęþnego FLASH-a dla użytkownika - 30728 bajtów.

(18-03-2021 9:08)SP6AUO napisał(a):  Tak.To wiem,tylko dlaczego plik z bootloaderem da się zapisać,a bez bootloadera nie ?
W jaki sposób zapisujesz ten plik z bootloaderem ? Z poziomu ArduinoIDE przez bootloader, czy z poziomu MkAVRCalcilator-a i usbasp ?
Jeżeli z poziomu ArduinoIDE, to chcesz zrobić rzecz niemożliwą do zrobienia - nadpisać działający bootloader nowym bootloaderem.

Ale aby dojść do wyjaśnienia problemu potrzebne są logi, bo to podstawowa baza informacji co idzie nie tak.

73 Paweł
(Ten post był ostatnio modyfikowany: 18-03-2021 11:57 przez SQ8MVY.)
18-03-2021 11:57
Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
SP3TLU Offline


Liczba postów: 8
Dołączył: 24-02-2010
Post: #196
RE: Arduino
Trochę mi to zajęło.
Wersja "p" i fuse bity ( L-FF,H-D6,Ex-FD) efekt:
İmage İmage
Skompilowane dla UNO, zapisane.
Sebastian
18-03-2021 12:19
Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
SP6AUO Offline
Andrzej
*****

Liczba postów: 1,035
Dołączył: 20-09-2009
Post: #197
RE: Arduino
OK.teraz jestem przekonany,że gdzieś robię błąd.
U mnie bez bootloadera plik skompilowany do .hex zajmuje 100%, a u Ciebie 95%.
Jeszcze mam jedną prośbę.Sebastian zrób zrzut strony "fusy uproszczone". Porównam nastawy,może tu jest coś nie tak.
A teraz info dla Pawła.
W arduino skompilowałem plik .ino
Otrzymałem dwa pliki .hex
Jeden z bootloaderem.hex i drugi standart.hex (post:#189 to jest ten zapis)
Zapis robię z MkAVRCalcilator-a i usbasp przez isp.
Procesor kupiłem jako bez bootloadera.

Andrzej
(Ten post był ostatnio modyfikowany: 18-03-2021 13:08 przez SP6AUO.)
18-03-2021 13:08
Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
SQ8MVY Offline
Paweł
****

Liczba postów: 724
Dołączył: 30-07-2011
Post: #198
RE: Arduino
Andrzeju, rozumiem teaz.

Z ciekawiości uruchomiłem ArduinoIDE w wersji 1.8.13. Załadowałem najnowszy szkic - 1.02p, płytkę ustawiłem jako arduino UNO. Szkic z domyślnymi ustawieniami bez zmian, prosto z githuba.

Wynik kompilacji:
İmage

Najnowsza wersja QCX-a zajmuje trochę więcej miejsca we FLASH, więc wymagany jest bootloader OptiBoot. Ten bootloader jest używany już w nowszych płytkach. Jest znacznie "chudszy" - potrzebuje jedynie 512 bajtów FLASH-a ( więcej miejsca dla użytkownika) w porównaniu do poprzedniego bootloadera, który potrzebuje i rezerwuje 2048 bajtów FLASH-a, zostawiając mniej miejsca dla uzytkownika.

I w tym miejscu możesz mieć problem, lub nadal nie potrafię zrozumieć za bardzo Twojego toku myslenia.
Dla mnie nie ma możliwości, aby wsad ze zintegrowanym bootloaderem był mniejszy niż wsad bez zintegrowanego bootloadera. Może pomyliłeś się przy nadawaniu nazwy dla plików i zrobiłeś to odwrotnie

73 Paweł
(Ten post był ostatnio modyfikowany: 18-03-2021 13:47 przez SQ8MVY.)
18-03-2021 13:25
Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
SP3TLU Offline


Liczba postów: 8
Dołączył: 24-02-2010
Post: #199
RE: Arduino
Andrzeju ok, robi się:
İmage İmage İmage

Mam nadzieję, że to pomoże.
Powodzenia
Sebastian
18-03-2021 13:29
Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
SP6AUO Offline
Andrzej
*****

Liczba postów: 1,035
Dołączył: 20-09-2009
Post: #200
RE: Arduino
Mam wszystko tak samo a plik standard.hex zajmuje 100%.
Sebastian ,możesz mi wysłać plik standard.hex z ver1.02p

Andrzej
(Ten post był ostatnio modyfikowany: 18-03-2021 13:48 przez SP6AUO.)
18-03-2021 13:47
Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
Odpowiedz 


Skocz do:


Użytkownicy przeglądający ten wątek: 2 gości