Arduino - Wersja do druku +- HomeMade (http://sp-hm.pl) +-- Dział: Oprogramowanie (/forum-84.html) +--- Dział: Technika programowania mikroprocesorów (/forum-85.html) +--- Wątek: Arduino (/thread-1713.html) |
RE: Arduino - SP3TLU - 18-03-2021 8:43 (18-03-2021 6:06)SP6AUO napisał(a): Witam.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 RE: Arduino - SP6AUO - 18-03-2021 9:08 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%) ? RE: Arduino - SP3TLU - 18-03-2021 9:46 U mnie to wygląda tak: [attachment=16979][attachment=16980] kompilowana przed chwilą wersja "1.02m" w arduino IDE 1.8.13. Płytka "Arduino NANO" Atmega328p. Pozdrawiam Sebastian RE: Arduino - SP6AUO - 18-03-2021 11:03 Ż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 ? RE: Arduino - SQ8MVY - 18-03-2021 11:57 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. RE: Arduino - SP3TLU - 18-03-2021 12:19 Trochę mi to zajęło. Wersja "p" i fuse bity ( L-FF,H-D6,Ex-FD) efekt: [attachment=16981][attachment=16982] Skompilowane dla UNO, zapisane. Sebastian RE: Arduino - SP6AUO - 18-03-2021 13:08 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. RE: Arduino - SQ8MVY - 18-03-2021 13:25 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: [attachment=16983] 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 RE: Arduino - SP3TLU - 18-03-2021 13:29 Andrzeju ok, robi się: [attachment=16984][attachment=16985][attachment=16986] Mam nadzieję, że to pomoże. Powodzenia Sebastian RE: Arduino - SP6AUO - 18-03-2021 13:47 Mam wszystko tak samo a plik standard.hex zajmuje 100%. Sebastian ,możesz mi wysłać plik standard.hex z ver1.02p |