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

Inicjalizacja dodatkowych segmentów pamięci w programach dla mikrokontrolerów rodziny MCS-51. Encyklopedia elektroniki radiowej i elektrotechniki

Bezpłatna biblioteka techniczna

Encyklopedia radioelektroniki i elektrotechniki / Mikrokontrolery

Komentarze do artykułu Komentarze do artykułu

Nowoczesne mikrokontrolery mają wbudowaną nieulotną pamięć danych (EEPROM), w której czasami trzeba wprowadzić informacje, zanim urządzenie zacznie działać. Obraz (oprogramowanie sprzętowe) tej pamięci musi zostać utworzony podczas opracowywania programu. Można to zrobić na przykład asemblerami mikrokontrolerów z rodziny PICmicro i AVR. Dają programiście możliwość zorganizowania dodatkowego segmentu pamięci i ustawienia w nim danych początkowych do zapisu w pamięci EEPROM.

Asemblery dla mikrokontrolerów z rdzeniem MSC-51 pozwalają również na podzielenie pamięci na kilka części, ale tylko w jednej z nich - segmencie kodu wykonywalnego - możliwa jest inicjalizacja. We wszystkich pozostałych dozwolone jest jedynie rezerwowanie komórek pamięci i zapisywanie w nich danych tylko podczas wykonywania programu. Wyjściem z sytuacji może być przyjęcie, które opisano poniżej. Jego istotą jest zastosowanie asemblacji warunkowej, w wyniku której inicjalizacja segmentu kodu następuje w różny sposób, w zależności od warunków translacji. Powstałe pliki HEX można wykorzystać do programowania nie tylko wewnętrznej pamięci EEPROM mikrokontrolera, ale także zewnętrznych układów pamięci.

Sztucznie utworzone dodatkowe segmenty (dopuszczalna jest dowolna ich liczba) umieszczane są w tekście programu przed rzeczywistym segmentem kodu. Etykiety zdefiniowane w jednym z nich będą znane we wszystkich poniższych przypadkach, łącznie z rzeczywistym segmentem kodu. Linki w przeciwnym kierunku są jednak niedozwolone. Nie ma ograniczeń co do rodzaju i fizycznej lokalizacji dodatkowej pamięci.

Przykład programu z dwoma dodatkowymi zainicjowanymi segmentami, konwencjonalnie nazywanymi EEPROM i FLASH, pokazano w tabeli. 1. Po zapisaniu go w pliku example.asm skorzystamy z asemblera ASEM-51, który można „pobrać” za darmo pod adresem .

Przede wszystkim uruchom asembler w wierszu poleceń

asem przykład.asm eeprom.hex/define:EEPROM

Przetwarzając pierwsze wiersze tekstu programu, umieści w swojej tablicy symboli etykiety idEeprom, ptrWord i prtBufE, a dane określone dyrektywami DB i DW w pliku wyjściowym eeprom.hex (tabela 2). Następnie zostanie sprawdzona długość segmentu. Jeżeli wartość licznika programu przekroczy fizycznie istniejącą wielkość EEPROM (w tym przypadku - 640 komórek), zostanie wyświetlony komunikat o błędzie. Jeżeli objętość segmentu jest wyraźnie niewielka, kontrolę można wykluczyć. Podobne kontrole można przewidzieć w innych segmentach.

Inicjalizacja dodatkowych segmentów pamięci w programach dla mikrokontrolerów rodziny MCS-51
(kliknij, aby powiększyć)

Następnie asembler napotka dyrektywę IFNDEF EEPROM. Ponieważ symbol o tej nazwie jest zdefiniowany w linii poleceń (parametr /definie:EEPROM), wszystkie kolejne linie programu, aż do dyrektywy ENDIF, zostaną zignorowane i na tym zakończy się tłumaczenie.

Uruchom retransmisję tego samego programu z wiersza poleceń

asem przykład.asm flash.hex/define:FLASH

Różni się od poprzedniego jedynie definicją symbolu FLASH zamiast EEPROM. Pierwszy etap translacji przebiega dokładnie tak, jak opisano powyżej, a dane segmentu EEPROM zostaną zapisane do pliku wyjściowego. Jednakże dyrektywa IFNDEF EEPROM tym razem nie przerwie procesu, a następna dyrektywa ORG 0 zresetuje licznik programu. Asembler rozpocznie zapisywanie danych przeznaczonych dla segmentu FLASH do pliku wyjściowego od adresu zerowego. Transmisja zostanie przerwana przez dyrektywę IFNDEF FLASH. Ostateczną postać pliku flash.hex przedstawiono w tabeli. 3.

Ustawiamy tłumaczenie prawdziwego segmentu kodu wykonywalnego poleceniem

asem przykład.asm

W pierwszej kolejności zostaną przekompilowane dodatkowe segmenty, a wszystkie zdefiniowane w nich etykiety zostaną wprowadzone do tablicy symboli asemblera, co umożliwi odwoływanie się do nich z segmentu kodu. Dyrektywa ORG 0 na samym początku ponownie zresetuje licznik programu. Transmisja będzie kontynuowana jak zwykle. W powstałym pliku example.hex (tabela 4) kod wykonywalny programu zaczyna się od czwartej linii, znajdującej się po liniach identycznych z tymi zawartymi w poprzednich plikach HEX.

Obecność nadmiarowych informacji zwykle nie zakłóca prawidłowego załadowania kodu do odpowiednich obszarów pamięci mikrokontrolera. W buforze programu sterującego programowaniem, prawidłowe dane, gdy adresy się zgadzają, „wypierają” wcześniej wprowadzone. I tylko jeśli nowy segment będzie krótszy od poprzedniego, jego „ogon” zostanie zapisany w buforze. Z tego powodu pożądane jest opisywanie segmentów w programie w kolejności rosnącej według ich długości.

Niektórzy programiści nie posiadają bufora pośredniego lub ściśle kontrolują dane wejściowe, nie dopuszczając do nakładania się adresów. W pierwszym przypadku programowanie będzie błędne, w drugim przypadku w ogóle się nie uruchomi, dopóki nie zostaną wyeliminowane „błędy”.

Możesz ręcznie usunąć dodatkowe linie z pliku HEX za pomocą dowolnego edytora tekstu. Możesz to także zrobić automatycznie, uruchamiając dwa polecenia z rzędu:

hex2bin przykład.hex bin2hex przykład.bin

Pierwsza utworzy binarny obraz danych zawartych w pliku example.hex i umieści go w pliku example.bin. Drugi wykona odwrotną transformację i utworzy nowy plik example.hex bez zbędnych dodatków. Niezbędne programy można „pobrać” pod wskazanymi adresami I .

Autor: S. Czekunow, Iżewsk

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

Przewidywanie dużych rozbłysków słonecznych 21.08.2020

Rozbłyski słoneczne emitują nagłe, silne rozbłyski promieniowania elektromagnetycznego z powierzchni i atmosfery Słońca oraz wyrzucają plazmę i energetyczne cząstki w przestrzeń międzyplanetarną. Ponieważ duże rozbłyski słoneczne mogą powodować poważne zaburzenia pogody kosmicznej, które wpływają na Ziemię, należy przewidzieć ich wystąpienie, aby złagodzić ich wpływ. Jednakże, ponieważ mechanizm powstawania rozbłysków słonecznych jest niejasny, większość dotychczasowych metod przewidywania rozbłysków opierała się na metodach empirycznych.

Zespołowi badawczemu z Instytutu Badań Kosmicznych Środowiska Ziemi na Uniwersytecie Nagoya udało się opracować pierwszy model fizyczny, który może dokładnie przewidzieć zbliżające się duże rozbłyski słoneczne.

Nowa metoda przewidywania rozbłysków, zwana schematem kappa, opiera się na teorii „niestabilności dwułukowej”, czyli niestabilności magnetohydrodynamicznej (MHD) spowodowanej ponownym połączeniem magnetycznym. Naukowcy postawili hipotezę, że ponowne połączenie linii pola magnetycznego na małą skalę może utworzyć pole magnetyczne o podwójnym łuku (w kształcie litery m) i wywołać rozbłysk słoneczny. Schemat kappa może przewidzieć, jak małe ponowne połączenie magnetyczne powoduje duży rozbłysk i jak może wystąpić duży rozbłysk słoneczny.

Model predykcyjny został przetestowany na około 200 aktywnych regionach podczas 24 cyklu słonecznego od 2008 do 2019 roku przy użyciu danych z satelity Solar Dynamics Observatory (SDO) NASA. Wykazano, że z kilkoma wyjątkami wzorzec kappa przewiduje najbardziej zbliżające się rozbłyski słoneczne, a także dokładną lokalizację, z której się wyłonią.

Naukowcy odkryli również, że nowy parametr - "magnetyczna gęstość strumienia wirującego" blisko linii odwrócenia biegunowości magnetycznej na powierzchni Słońca - określa, kiedy i gdzie mogą wystąpić rozbłyski słoneczne i jak duże mogą być.

Inne ciekawe wiadomości:

▪ Piwo na orbicie

▪ Rejestrator wideo do telefonów komórkowych

▪ Odkurzacz księżycowy

▪ Ekscytony mogą zwiększyć efektywność energetyczną elektronów

▪ Makijaż i popkultura sprawiły, że ludzie bali się klaunów

Wiadomości o nauce i technologii, nowa elektronika

 

Ciekawe materiały z bezpłatnej biblioteki technicznej:

▪ sekcja witryny Podstawy pierwszej pomocy (OPMP). Wybór artykułu

▪ Artykuł Prawo mieszkaniowe. Notatki do wykładów

▪ artykuł O co Churchill jest zły na swoim najsłynniejszym zdjęciu? Szczegółowa odpowiedź

▪ artykuł Przygotowanie tras zjazdowych w warunkach górskich. Standardowe instrukcje dotyczące ochrony pracy

▪ artykuł Grot lutowniczy ze stabilizatorem temperatury. Encyklopedia elektroniki radiowej i elektrotechniki

▪ artykuł Anty-AON. 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