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.
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.
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.
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, 8: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, 8: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ł

