Menu English Ukrainian Rosyjski Strona główna

Bezpłatna biblioteka techniczna dla hobbystów i profesjonalistów Bezpłatna biblioteka techniczna


ENCYKLOPEDIA RADIOELEKTRONIKI I INŻYNIERII ELEKTRYCZNEJ
Darmowa biblioteka / Schematy urządzeń radioelektronicznych i elektrycznych

Debugowanie mikrokontrolerów za pomocą emulatora ROM. Encyklopedia elektroniki radiowej i elektrotechniki

Bezpłatna biblioteka techniczna

Encyklopedia radioelektroniki i elektrotechniki / Mikrokontrolery

Komentarze do artykułu Komentarze do artykułu

Złożoność opracowania i debugowania działającego programu urządzenia elektronicznego zawierającego mikroprocesor często determinuje koszt jego rozwoju jako całości. Jest to szczególnie widoczne w mikrokontrolerach (MC), które mają zintegrowaną pamięć i niektóre urządzenia peryferyjne. Jednym z narzędzi znacznie ułatwiających debugowanie jest emulator ROM opisany w [1]. W proponowanym artykule opisano technologię pracy z nim. Możliwości debugowania nie ograniczają się do opisanych metod. Ten proces, jak i projektowanie w ogóle, jest w pewnym stopniu sztuką: na ten sam instrument każdy tworzy „własną muzykę”. Będziemy wdzięczni czytelnikom, którzy podzielą się swoimi autorskimi narzędziami i metodami debugowania programów MK.

O złożoności i pracochłonności procesu debugowania oprogramowania MC decydują następujące czynniki [2]:

  • silne połączenie między częściami oprogramowania i sprzętu systemu;
  • brak bezpośredniego dostępu do zasobów wewnętrznych i punktów kontrolnych KM;
  • wielobitowa natura sygnałów, złożona w czasie;
  • nieokresowość lub bardzo niska częstotliwość powtarzania się sygnałów w systemie;
  • szeroka gama urządzeń zewnętrznych i protokołów wymiany z nimi informacji.

Tradycyjny sprzęt testowy (taki jak oscyloskop) może być używany tylko w ograniczonym zakresie do debugowania MCU.

Najprostszą (a jednocześnie najbardziej nieefektywną) metodą debugowania jest „metoda prób i błędów”: ładowanie programu do reprogramowalnej pamięci tylko do odczytu (EPROM), próba jego wykonania, wykrywanie i poprawianie błędów w programie oraz sprzęt, kasowanie EPROM, ponowne ładowanie programu itp. e. Procesy kasowania i zapisywania danych w chipie EPROM trwają długo i po określonej liczbie cykli przeprogramowania zwykle kończą się niepowodzeniem. Powtarzająca się instalacja i demontaż mikroukładu zmniejsza niezawodność styków elektrycznych w gnieździe EPROM. Możliwość uzyskania informacji o debugowaniu systemu jest praktycznie nieobecna.

Obecnie MK jest najczęściej debugowany za pomocą narzędzi krzyżowych opartych na komputerze osobistym. Pozwala to na minimalne rozproszenie zasobów MC. Urządzenie do debugowania, jak pokazano na rysunku, jest podłączone do komputera za pomocą jakiegoś narzędzia, takiego jak emulator ROM. Taki kompleks umożliwia pobranie i edycję programu, wprowadzenie do niego modułów testowych, uzyskanie pewnych informacji o systemie i wiele więcej, co omówimy poniżej.

Chociaż emulatory ROM nie są jedynym i nie najpotężniejszym narzędziem do debugowania, nadal są popularne. Ich „długowieczność” tłumaczy się niezależnością od rodzaju MC (wymagana jest jedynie możliwość pracy z zewnętrzną pamięcią programu), działaniem w czasie rzeczywistym, niską ceną i dostępnością dla szerokiej gamy twórców sprzętu i radioamatorów. Rozważymy technologię debugowania programu za pomocą emulatora ROM na przykładzie rodziny MK MCS-51 (8031, 8051, 80C31, 80C51. KR1816BE31, KR1816BE51, KR1830BE31, KR1830BE51 itp.).

Rozpoczynając debugowanie, należy sprawdzić działanie sprzętu systemu i samego MC. Można w tym celu skorzystać z testów „bezpłatnego zliczania” [3]. które polegają na wyliczeniu wszystkich możliwych kombinacji kodów na liniach portów MK. Podczas testowania linie portu zostaną ustawione w stan wyjściowy, dlatego przede wszystkim należy upewnić się, że nie są one ładowane na wyjściach innych elementów w zależności od debugowanego urządzenia. Tymczasowo odłącz takie obciążenia, jeśli występują.

Załaduj emulator ROM z kodami poleceń No Operation (NOP) w całej przestrzeni adresowej programów MCU. Dla MCS-51 jest to kod 00H. Podczas wykonywania takiego „programu” MK kolejno przegląda wszystkie adresy pamięci programu. Monitoruj sygnały ALE, PME i portów P0, P2 za pomocą oscyloskopu. Przebiegi na liniach portu muszą odpowiadać diagramom czasowym licznika binarnego, biorąc pod uwagę multipleksowanie na P0 młodszego bajtu adresu i danych.

Następnie sprawdź porty P1 i P1, ładując program testowy pokazany w tabeli 00 do emulatora ROM. 0. Wysyła sekwencję kodów od XNUMXH do XNUMXFFH na liniach określonych portów, symulując ośmiobitowy licznik binarny. Jeśli oscylogramy odpowiadają wymaganym, przywróć obciążenia odłączone od portów i przystąp do debugowania działającego programu MK. Pamiętaj, że debugujesz jednocześnie oprogramowanie i sprzęt systemu i nie zapomnij okresowo monitorować sygnałów w punktach testowych za pomocą oscyloskopu. Niezgodność rodzaju sygnałów z Twoimi wyobrażeniami na ich temat jest powodem do poważnej refleksji i dodatkowych kontroli.

Debugowanie mikrokontrolerów za pomocą emulatora ROM

Aby ułatwić rozwój i debugowanie, należy stosować modułową zasadę programowania, tj. dzielić program MK na części według cechy funkcjonalnej. Umożliwi to łatwe przenoszenie poszczególnych modułów, a w razie potrzeby zastosowanie ich w innych projektach. Moduł, do którego sterowanie jest przekazywane po włączeniu zasilania lub zresetowaniu MK, nazywany jest głównym lub głównym. Przekazanie sterowania do punktu wejścia programu powinno być poleceniem skoku, a nie wywołaniem podprogramu, aby nie zaśmiecać stosu adresem zwrotnym.

Aby uniknąć nieoczekiwanych wyników programu, pamiętaj o przypisaniu wartości początkowej każdej ze zmiennych przed pierwszym użyciem. W niektórych przypadkach może być konieczne zainicjowanie urządzeń peryferyjnych. Blok inicjujący umieszczony jest na początku głównego modułu programu.

Przybliżony widok głównego modułu programu na początku debugowania przedstawiono w tabeli. 2. Zawiera tylko punkt wejścia do programu i procedurę obsługi wyjścia. Mimo że takie wyjście jest rzadko stosowane w układach mikrokontrolerowych, należy je przewidzieć w celu prawidłowego zakończenia sytuacji awaryjnych. W rozważanym przykładzie po zakończeniu pracy program „zapętla się”. Dopiero ponowne uruchomienie systemu za pomocą sygnału resetu sprzętowego wyprowadzi go z tego stanu.

Debugowanie mikrokontrolerów za pomocą emulatora ROM

Podczas debugowania inne moduły programu są dodawane do modułu głównego, gdy są gotowe. Kolejność ich łączenia i debugowania odgrywa ważną rolę. Należy zacząć od sterowników urządzeń wyjściowych informacji (wyświetlacz, przetwornik cyfrowo-analogowy itp.), umieszczając ich wywołania w module głównym. Następnie debugują sterowniki innych urządzeń peryferyjnych, procedury przetwarzania danych i dopiero potem sprawdzają wspólne działanie wszystkich modułów programu. Jeśli istnieje wyświetlacz alfanumeryczny, jego sterownik jest najpierw debugowany, a później używany do wyświetlania informacji debugowania, na przykład zawartości wewnętrznej pamięci danych MK. Jeżeli zostanie zastosowany taki emulator ROM, aby zawarte w nim informacje mogły zostać zapisane i odczytane zarówno przez komputer sterujący, jak i debugowane urządzenie, MK może umieścić dane debugowania w wolnym obszarze pamięci emulatora ROM, a komputer sterujący odczytuje je i wyświetla na swoim wyświetlaczu.

Na przykład, aby wyświetlić zawartość wewnętrznej pamięci RAM danych MCU, podłącz wyjście sygnału zapisu zewnętrznej pamięci danych (WR) do wejścia sygnału zapisu emulatora ROM i użyj podprogramu pokazanego w tabeli 3. 32. Zakłada się, że ilość pamięci programu debugowanego urządzenia nie przekracza 8000 KB, zatem informacja debugująca umieszczana w pamięci emulatora zaczyna się od adresu 0H. Zawartość rejestrów R1 i R8000 przesyłana jest oddzielnie, gdyż później wykorzystuje się je w podprogramie do organizacji pętli. Po wysłaniu informacji debugowania program MK zostaje zawieszony, a zawartość komórek pamięci emulatora ROM 807H-XNUMXFH jest odczytywana przez komputer sterujący, wyświetlana i analizowana. Podobnie można wyświetlić zawartość wszystkich programowo dostępnych rejestrów MK.

Debugowanie mikrokontrolerów za pomocą emulatora ROM

Rozpoczynając debugowanie sterownika urządzenia peryferyjnego, należy tymczasowo wyłączyć sygnały sterujące generowane z niego przez MK, aby uniknąć możliwej awarii urządzenia z powodu błędów w programie. Jeżeli proces ma charakter jednorazowy należy go "zapętlić" i w razie potrzeby zaprogramować sygnał zegara oscyloskopu.Debuguj sterownik monitorując sygnały generowane przez oscyloskop. Po upewnieniu się, że diagramy czasowe sygnałów sterujących odpowiadają wymaganym, podłącz urządzenie peryferyjne i kontynuuj debugowanie sterownika na prawdziwym sprzęcie. Na koniec usuń elementy debugujące z modułu programu i sprawdź jego działanie w ostatecznej formie.

Wykorzystanie współdzielonych zasobów MK przez różne moduły dość często powoduje, że debugowany program przestaje działać po dodaniu kolejnego podprogramu, dlatego po debugowaniu kolejnego modułu należy upewnić się, że wszystkie wcześniej debugowane sterowniki i podprogramy nadal działają poprawnie. Jeśli Twój program używa przerwań, nie wyłączaj ich, chyba że jest to absolutnie konieczne. Nie należy usuwać debugowanego modułu z programu, nawet jeśli nie jest on aktualnie potrzebny.

Gdy MK „zawiesza się”, przydaje się następujący sposób lokalizacji błędów: wprowadź do programu punkty kontrolne, które wyświetlają sekwencyjnie rosnące liczby. Po „zawieszeniu” na wyświetlaczu pojawi się numer odpowiadający ostatniemu pomyślnie przebytemu punktowi kontrolnemu. Jeśli kilka takich punktów zostanie złapanych w nieskończoną pętlę, liczby na wyświetlaczu będą się szybko zmieniać. Aby dokładnie określić, które punkty znajdują się w cyklu, trzeba będzie sztucznie spowolnić zmianę liczb, ustawiając opóźnienie programu przy wyprowadzaniu każdego z nich, na przykład w postaci cyklu jałowego. Jeśli debugowany system nie ma wbudowanego wyświetlacza, informacje można wyświetlić na wyświetlaczu komputera hosta poprzez wolny obszar pamięci emulatora ROM.

Po debugowaniu wszystkich sterowników urządzeń rozpocznij debugowanie innych podprogramów. Jeżeli którykolwiek z nich implementuje złożony algorytm przetwarzania lub konwersji danych, wyświetlenie jednej lub większej liczby wartości pośrednich zmiennych często nie dostarcza informacji wystarczających do analizy błędów.Pokonywanie trudności i zapisywanie informacji debugujących wymaganej ilości w wolnym obszarze pamięci Emulator ROM pomoże przezwyciężyć trudności.

Po osiągnięciu normalnego działania wszystkich modułów programu można je wspólnie debugować. Trudności pojawiające się w tym przypadku można podzielić na dwie grupy. Pierwsza obejmuje problemy współdzielenia wspólnych zasobów MK: jednostki arytmetyczno-logicznej, pamięci danych, portów wejścia-wyjścia. Drugi związany jest z pracą urządzeń mikrokontrolerowych w czasie rzeczywistym.

Systemy czasu rzeczywistego są zazwyczaj wielowątkowe. Kilka zadań programu (wątków) jest wykonywanych równolegle, współdziałając ze sobą i korzystając ze wspólnych zasobów. Ale w każdej chwili MC, ze względu na swoją strukturę, rozwiązuje tylko jeden z nich, przechodząc kolejno na inne, biorąc pod uwagę priorytet. Konflikty pomiędzy zadaniami powstają zarówno z powodu braku zasobów, jak i braku czasu na przetwarzanie danych. Dlatego należy zwrócić szczególną uwagę na zasoby MK wykorzystywane w modułach programu, często kontrolując zmianę ich stanu poprzez wyświetlanie informacji debugowania. Spróbuj zmniejszyć liczbę zmiennych globalnych, zastępując je lokalnymi, jeśli to możliwe. Monitoruj stan stosu. Oszacuj czas wykonania krytycznych odcinków programu, sprawdź system przy różnych wartościach sygnałów wejściowych, które są możliwe w praktyce.

Za pomocą emulatora ROM możesz także debugować program przeznaczony do pracy w pamięci wewnętrznej MK, jeśli tymczasowo umieścisz go w zewnętrznej pamięci programu. Ponieważ w tym przypadku porty P0 i P2 będą zajęte przez obsługę pamięci zewnętrznej, to jeśli pozostałe wolne linie I/O MK nie wystarczą, P0 i P2 zostaną zastąpione portami I/O adresowanymi jako zewnętrzne komórki pamięci danych. Łączy się je według standardowych schematów, wykorzystując rejestry wyzwalające w celu zwiększenia liczby linii wyjściowych, a liczbę linii wejściowych - elementy o trzech stanach wyjściowych.

Po debugowaniu systemu za pomocą emulatora usuń z niego elementy debugujące, zapisz program do ROM (lub do wewnętrznej pamięci programowej MK) i sprawdź działanie urządzenia w ostatecznej formie.

literatura

  1. Vydolob G., Kudryashov V., Samoilov V. Emulator ROM/RAM RE020. - Radio, 1997. Nr 11, s. 30-32.
  2. Zelenko GV, Ivannikov AD, Sypchuk PP Projektowanie i debugowanie systemów mikroprocesorowych. - M. Inżynieria. 1982.
  3. William G. B. Debugowanie systemów mikroprocesorowych: Per. z angielskiego. - M Energoatomizdat. 1988

Autorzy: G.Vydolob, V.Samoylov, Moskwa (Zelenograd)

Zobacz inne artykuły Sekcja Mikrokontrolery.

Czytaj i pisz przydatne komentarze do tego artykułu.

<< Wstecz

Najnowsze wiadomości o nauce i technologii, nowa elektronika:

Hałas drogowy opóźnia rozwój piskląt 06.05.2024

Dźwięki, które otaczają nas we współczesnych miastach, stają się coraz bardziej przeszywające. Jednak niewiele osób myśli o tym, jak ten hałas wpływa na świat zwierząt, zwłaszcza na tak delikatne stworzenia, jak pisklęta, które nie wykluły się jeszcze z jaj. Najnowsze badania rzucają światło na tę kwestię, wskazując na poważne konsekwencje dla ich rozwoju i przetrwania. Naukowcy odkryli, że narażenie piskląt zebry rombowatej na hałas uliczny może spowodować poważne zakłócenia w ich rozwoju. Eksperymenty wykazały, że zanieczyszczenie hałasem może znacznie opóźnić wykluwanie się piskląt, a pisklęta, które się wykluwają, borykają się z szeregiem problemów zdrowotnych. Naukowcy odkryli również, że negatywne skutki zanieczyszczenia hałasem rozciągają się na dorosłe ptaki. Zmniejszone szanse na rozrodczość i zmniejszona płodność wskazują na długoterminowe skutki, jakie hałas drogowy wywiera na dziką przyrodę. Wyniki badania podkreślają taką potrzebę ... >>

Bezprzewodowy głośnik Samsung Music Frame HW-LS60D 06.05.2024

W świecie nowoczesnych technologii audio producenci dążą nie tylko do nienagannej jakości dźwięku, ale także do łączenia funkcjonalności z estetyką. Jednym z najnowszych innowacyjnych kroków w tym kierunku jest nowy bezprzewodowy system głośników Samsung Music Frame HW-LS60D, zaprezentowany podczas wydarzenia World of Samsung 2024. Samsung HW-LS60D to coś więcej niż tylko system głośników, to sztuka dźwięku w stylu ramki. Połączenie 6-głośnikowego systemu z obsługą Dolby Atmos i stylowej konstrukcji ramki na zdjęcia sprawia, że ​​produkt ten będzie idealnym dodatkiem do każdego wnętrza. Nowa ramka Samsung Music Frame jest wyposażona w zaawansowane technologie, w tym Adaptive Audio zapewniający wyraźne dialogi na każdym poziomie głośności oraz automatyczną optymalizację pomieszczenia w celu uzyskania bogatej reprodukcji dźwięku. Dzięki obsłudze połączeń Spotify, Tidal Hi-Fi i Bluetooth 5.2, a także integracji inteligentnego asystenta, ten głośnik jest gotowy, aby zaspokoić Twoje ... >>

Nowy sposób kontrolowania i manipulowania sygnałami optycznymi 05.05.2024

Współczesny świat nauki i technologii rozwija się dynamicznie i każdego dnia pojawiają się nowe metody i technologie, które otwierają przed nami nowe perspektywy w różnych dziedzinach. Jedną z takich innowacji jest opracowanie przez niemieckich naukowców nowego sposobu sterowania sygnałami optycznymi, co może doprowadzić do znacznego postępu w dziedzinie fotoniki. Niedawne badania pozwoliły niemieckim naukowcom stworzyć przestrajalną płytkę falową wewnątrz falowodu ze stopionej krzemionki. Metoda ta, bazująca na zastosowaniu warstwy ciekłokrystalicznej, pozwala na efektywną zmianę polaryzacji światła przechodzącego przez falowód. Ten przełom technologiczny otwiera nowe perspektywy rozwoju kompaktowych i wydajnych urządzeń fotonicznych zdolnych do przetwarzania dużych ilości danych. Elektrooptyczna kontrola polaryzacji zapewniona dzięki nowej metodzie może stanowić podstawę dla nowej klasy zintegrowanych urządzeń fotonicznych. Otwiera to ogromne możliwości dla ... >>

Przypadkowe wiadomości z Archiwum

Podwojona prędkość transferu danych SSD 12.05.2012

HGST (dawniej Hitachi GST, a teraz spółka zależna Western Digital) ogłosiła na swojej stronie internetowej, że zaprezentuje przemysłowy dysk półprzewodnikowy SAS (SSD) 12 Gb/s.

Dysk zostanie wystawiony 9 maja na wystawie SCSI Trade Association Technology Showcase w Santa Clara, Kalifornia, USA.

Służba prasowa HGST podkreśliła, że ​​będzie pierwszą firmą, która zademonstruje działanie nowej technologii.

Jak wyjaśniła firma, nowy interfejs zaoferuje dwukrotnie większą szybkość przesyłania danych w porównaniu z nowoczesnymi dyskami SSD i przemysłowymi dyskami twardymi, których interfejs jest ograniczony do 6 Gb/s.

Producent twierdzi, że przy podłączeniu dysku przez dwa porty, z których każdy zapewni 12 Gb/s, przedsiębiorstwo będzie mogło wymieniać dane z urządzeniem z prędkością do 4,8 Gb/s. Urządzenie będzie przeznaczone do systemów pamięci masowej i platform chmurowych.

Inne ciekawe wiadomości:

▪ Chwasty jako paliwo

▪ zelektryfikowane krowy

▪ Plastik, który można bez końca poddawać recyklingowi

▪ drukuj robot

▪ Długopis Livescribe 3 do digitalizacji odręcznych notatek

Wiadomości o nauce i technologii, nowa elektronika

 

Ciekawe materiały z bezpłatnej biblioteki technicznej:

▪ sekcja serwisu Technologie radioamatorskie. Wybór artykułów

▪ Artykuł Bena Johnsona. Słynne aforyzmy

▪ artykuł Gdzie członkowie chóru kościelnego przeżyli, spóźniając się na zajęcia? Szczegółowa odpowiedź

▪ artykuł węzeł kuśnierski. Wskazówki turystyczne

▪ artykuł Wezwanie do UMS8. Encyklopedia elektroniki radiowej i elektrotechniki

▪ artykuł Transformator laboratoryjny. Encyklopedia elektroniki radiowej i elektrotechniki

Zostaw swój komentarz do tego artykułu:

Imię i nazwisko:


Email opcjonalny):


komentarz:





Wszystkie języki tej strony

Strona główna | biblioteka | Artykuły | Mapa stony | Recenzje witryn

www.diagram.com.ua

www.diagram.com.ua
2000-2024