Serwis Edukacyjny
w I-LO w Tarnowie
obrazek

Materiały dla uczniów liceum

  Wyjście       Spis treści       Wstecz       Dalej  

obrazek

Autor artykułu: mgr Jerzy Wałaszek
Konsultacje: Wojciech Grodowski, mgr inż. Janusz Wałaszek

©2022 mgr Jerzy Wałaszek
I LO w Tarnowie

obrazek

Mikrokontrolery

ATtiny13

Debugowanie

obrazek

Educational and Non-Profit Use of Copyrighted Material:

If you use Microchip copyrighted material solely for educational (non-profit) purposes falling under the “fair use” exception of the U.S. Copyright Act of 1976 then you do not need Microchip’s written permission. For example, Microchip’s permission is not required when using copyrighted material in: (1) an academic report, thesis, or dissertation; (2) classroom handouts or textbook; or (3) a presentation or article that is solely educational in nature (e.g., technical article published in a magazine).

https://www.microchip.com/about-us/legal-information/copyright-usage-guidelines

SPIS TREŚCI
Podrozdziały

obrazek

Cechy systemu debugowania

Termin "debugowanie" oznacza uruchamianie oprogramowania z wyłapywaniem błędów. Rzadko zdarza się, iż nowo napisany program od razu działa bezbłędnie. Dlatego programiści muszą posiadać różne narzędzia do testowania działania mikrokontrolera z nowym programem. W trakcie testowania wyłapywane są błędy, które następnie programista może poprawić w swoim kodzie. To właśnie jest debugowanie. Słowo "bug" po angielsku oznacza pluskwę, robala. "Debugging" to "odpluskwianie". Termin ten pochodzi z wczesnych lat komputeryzacji. W latach 50-tych XX wieku pewna pani kapitan Marynarki Wojennej USA pracowała na komputerze, który w pewnej chwili przestał działać. Po zdjęciu obudowy okazało się, że jakiś robak zrobił w środku zwarcie. Pani kapitan wyjęła robala, oczyściła miejsce zwarcia i w raporcie napisała, iż "odrobaczyła" komputer. Jako dowód do raportu dołączyła w torebce upieczonego robala :). Termin "debuging" spodobał się i używany jest do dzisiaj.

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:

Na początek:  podrozdziału   strony 

Przegląd

Wbudowany w mikrokontroler system debugowania debugWIRE używa jednoprzewodowego, dwukierunkowego interfejsu do sterowania przebiegiem programu, wykonywania instrukcji AVR w mikroprocesorze oraz do programowania różnych pamięci nieulotnych.
Na początek:  podrozdziału   strony 

Interfejs fizyczny

obrazek

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.

obrazek

Przy projektowaniu systemu z wykorzystaniem debugWIRE należy przestrzegać następujących zaleceń:

Na początek:  podrozdziału   strony 

Programowe punkty przerwań

System debugWIRE obsługuje punkty przerwań (ang. break points) w pamięci programu za pomocą instrukcji BREAK. Ustawienie punktu przerwania w AVR Studio® spowoduje wstawienie instrukcji BREAK do pamięci programu. Instrukcja zastąpiona przez BREAK zostanie zapamiętana. Gdy wykonywanie programu będzie wznowione, najpierw mikroprocesor wykona zapamiętaną instrukcję. Przerwanie można wstawić ręcznie przez umieszczenie w programie instrukcji BREAK.

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.

Na początek:  podrozdziału   strony 

Ograniczenia debugWIRE

Końcówka komunikacyjna debugWIRE (dW) fizycznie jest tą samą końcówką co zewnętrzny reset (RESET). Z tego powodu w trakcie korzystania z debugWIRE nie jest obsługiwane źródło zewnętrznego resetu.

obrazek

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.

Na początek:  podrozdziału   strony 

Opis rejestrów

DWDR – debugWire Data Register – Rejestr danych debugWire

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.

Na początek:  podrozdziału   strony 

Zespół Przedmiotowy
Chemii-Fizyki-Informatyki

w I Liceum Ogólnokształcącym
im. Kazimierza Brodzińskiego
w Tarnowie
ul. Piłsudskiego 4
©2022 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: i-lo@eduinf.waw.pl

Serwis wykorzystuje pliki cookies. Jeśli nie chcesz ich otrzymywać, zablokuj je w swojej przeglądarce.

Informacje dodatkowe.