Serwis Edukacyjny w I-LO w Tarnowie Materiały dla uczniów liceum |
Wyjście Spis treści Wstecz Dalej Autor artykułu: mgr Jerzy Wałaszek |
©2024 mgr Jerzy Wałaszek |
https://www.microchip.com/about-us/legal-information/copyright-usage-guidelines
Debuger (odpluskwiacz) to program uruchomieniowy, który umożliwia wyłapywanie błędów w oprogramowaniu. System debugowania w mikrokontrolerze ATtiny13 posiada następujące cechy:
Gdy zostaną zaprogramowane bit bezpiecznikowy włączający debugowanie (ang. debugWIRE Enable fuse, DWEN) oraz odprogramowane bity blokujące, to aktywuje się system debugWIRE na docelowym mikrokontrolerze. Końcówka portu RESET zostaje skonfigurowana jako końcówka dwukierunkowego portu we/wy z iloczynem montażowym oraz podpiętym opornikiem podciągającym i staje się ona bramą komunikacyjną pomiędzy mikrokontrolerem a emulatorem (dW).
Na poniższym rysunku przedstawiono schematycznie docelowy mikrokontroler z uaktywnionym systemem debugWIRE i połączeniem z emulatorem. Zegar systemowy nie jest modyfikowany przez debugWIRE i zawsze będzie źródłem wybranym przez bity bezpiecznikowe CKSEL.
Przy projektowaniu systemu z wykorzystaniem debugWIRE należy przestrzegać następujących zaleceń:
Pamięć FLASH musi zostać przeprogramowana po każdej zmianie punktu przerwania. Jest to automatycznie obsługiwane przez AVR Studio poprzez interfejs debugWIRE. Używanie punktów przerwań zużywa w ten sposób pamięć FLASH, która posiada ograniczoną liczbę programowań (około 10.000). Mikrokontrolery używane do celów debugowania nie powinny być odsprzedawane końcowym klientom.
System debugWIRE dokładnie emuluje wszystkie funkcje we/wy, gdy mikrokontroler pracuje z pełną prędkością, tj. gdy mikroprocesor wykonuje program wewnętrzny. Gdy mikroprocesor zostanie zatrzymany, należy z ostrożnością manipulować niektórymi rejestrami we/wy poprzez debuger (AVR Studio). System debugWIRE jest własnością firmy Microchip/Atmel i współpracuje on tylko z dedykowanymi programatorami, np. AVRDragon, ATMEL-ICE. Dlatego opis protokołu znajdziesz w instrukcji obsługi takiego programatora.
Interfejs debugWIRE jest asynchroniczny, co oznacza, iż debuger musi się zsynchronizować z zegarem systemowym. Jeśli zegar systemowy zostanie zmieniony programowo (np. przez zapis do bitów CLKPS), to komunikacja poprzez linię debugWIRE może zostać zerwana. Również częstotliwości zegarowe poniżej 100 kHz mogą powodować problemy komunikacyjne.
Zaprogramowanie bitu bezpiecznikowego DWEN włącza pracę niektórych elementów systemu zegarowego we wszystkich trybach uśpienia. Spowoduje to zwiększenie poboru energii w trakcie uśpienia. Dlatego bit bezpiecznikowy DWEN powinien być wyłączony, jeśli debugWire nie jest używane.
Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x2E | DWDR[7:0] | DWDR | |||||||
Zapis/Odczyt | Z/O | Z/O | Z/O | Z/O | Z/O | Z/O | Z/O | Z/O | |
Wartość początkowa | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Rejestr DWDR udostępnia kanał komunikacyjny z uruchomionego w mikrokontrolerze programu do debugera. Rejestr ten jest dostępny tylko dla debugWIRE i z tego powodu nie może być wykorzystywany jako rejestr ogólnego przeznaczenia dla normalnych operacji.
Zespół Przedmiotowy Chemii-Fizyki-Informatyki w I Liceum Ogólnokształcącym im. Kazimierza Brodzińskiego w Tarnowie ul. Piłsudskiego 4 ©2024 mgr Jerzy Wałaszek |
Materiały tylko do użytku dydaktycznego. Ich kopiowanie i powielanie jest dozwolone
pod warunkiem podania źródła oraz niepobierania za to pieniędzy.
Pytania proszę przesyłać na adres email:
Serwis wykorzystuje pliki cookies. Jeśli nie chcesz ich otrzymywać, zablokuj je w swojej przeglądarce.
Informacje dodatkowe.