Fusebity Eclipse.
Fusebity projektu AVR UPDI - Eclipse
Fusebity UPDI - odnosi się do konfiguracji bitów bezpieczników (fuse bits) w mikrokontrolerach AVR, obsługujących interfejs UPDI (Unified Program and Debug Interface), które sterują funkcjami takimi jak tryb programowania (np. włączenie UPDI), zegar, reset i zabezpieczenia.
Fusebity UPDI projektu - każdy projekt dla mikrokontrolerów UPDI podczas konfiguracji zakłada ustawienia parametrów pracy mikrokontrolera. zapisywane potem do jego FUSE bitów. Bezpośrednio nie są one widoczne, ale możliwe do odczytu.
Odczyt fusebitów projektu UPDI - sposób na odczyt wartości 8 grup fusebitów z konfiguracji projektu Eclipse. Gdzie znajdują się zapisane wartości? - można je odczytać za pomocą polecenia Project->Properties->C++Build->Enviroment, w grupie bootloader.
Poszczególne grupy fuse i ich zmienne środowiskowe projektu:
Grupa fuse - Nazwy zmiennych - Krótki opis
Fuse0 - bootloader.WDTCFG - ustawienia Watchdog Timer (WDT)
Fuse1 - bootloader.BODCFG - konfiguracja Brown-Out Detector (BOD)
Fuse2 - bootloader.OSCCFG - konfiguracja oscylatora mikrokontrolera
Fuse3 - Zarezerwowana - wartość grupy ustawiona na FF (nie ustawiać tej grupy)
Fuse4 - ${bootloader.TCD0CFG_avrdude}${bootloader.TCD0CFG_serialupdi} - dwa typy konfiguracji licznika czasu typu D
Fuse5 - bootloader.SYSCFG0 - trzy sekcje ustawiające kolejno: CRCSRC[1:0] - która sekcja pamięci Flash zostanie sprawdzona przez urządzenie peryferyjne CRCSCAN podczas inicjalizacji resetowania, RSTPINCFG[1:0] - konfiguracja pinów RESET/UPDI, EESAVE - czy zapisywać EEPROM podczas kasowania układu scalonego.
Fuse6 - bootloader.SYSCFG1 - pole bitowe wybiera czas uruchamiania między włączeniem zasilania a wykonaniem kodu.
Fuse7 - bootloader.APPEND - pole bitowe ustawiające koniec sekcji kodu aplikacji w blokach po 256 bajtów. Koniec sekcji kodu aplikacji zostanie ustawiony jako (rozmiar BOOT)
Fuse8 - bootloader.BOOTEND - pole bitowe określające koniec sekcji rozruchowej w blokach po 256 bajtów.
Uwagi, jak poprawnie odczytać - poszukaj kolejno zmiennych projektu określonych powyżej. Przykładowy odczyt zmiennej bootloader.BODCFG: Wartość odczytana: 0b${bootloader.bodlevbits}${bootloader.bodmodebits} . Jeżeli zapis zawiera wpisy typu: ${nazwa_zmiennej}, należy odszukać zmienną o nazwie nazwa_zmiennej, odczytać ją i zastąpić. Otrzymamy w tym przypadku wartość danego fuse zapisane w postaci ośmiobitowej liczby binarnej. (0b01000110). Dla potrzeb ustawień można ją przekonwerować lub przeliczyć na zapis hexadecymalny (46). Mamy ustawienie wybranej grupy fuse. Możemy je teraz ustawić w mikrokontrolerze.
Dalej postępujemy podobnie do następnych grup fuse, których jest 9. Czynnność monotonna, ale skutecznie daje wartośći grup fuse.
Mamy wszystkie fuse rozpracowane i odczytane. Możemy spróbować ustawiać.
Należy dodać jeszcze, że Eclipse podczas wgrywania programu do mikrokontrolera, ustawia też wybrane grupy fusebitów. Można to zauważyyć w komunikatach wyświetlanych podczas wgrywania.Nie robi tego dla starszych typów mikrokontrolerów AVR, musi to wykonać użytkownik.