Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 22 maja 2024, o 21:25


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 9 ] 
Autor Wiadomość
PostNapisane: 7 mar 2024, o 19:52 
Offline
Nowy

Dołączył(a): 07 mar 2024
Posty: 2
Pomógł: 0

Skoro , pamięć RAM w procesorach AVR to rodzaj pamięci ulotnej to, czy rejestry i rozkazy w tych obszarach też znikają po wyłączeniu zasilania tak jak wszystkie dane w pamięci RAM ? Zobrazujcie początkującemu jak to wygląda .

Obrazek



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 mar 2024, o 20:21 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27238
Lokalizacja: Szczecin
Pomógł: 1041

Dawcio12 napisał(a):
to, czy rejestry i rozkazy w tych obszarach też znikają po wyłączeniu zasilania tak jak wszystkie dane w pamięci RAM ?

Poszczególne komórki tej pamięci to rejestry więc ich zawartość też jest kasowana po resecie ale nie ZNIKA ;) Panie skąd taki pomysł - a pamięć ZNIKA? Nie jest tylko kasowana albo pozostają w niej śmieci po restarcie. No ale procek napewno po każdym restarcie przywraca domyślne wartości rejestrów w tym obszarze pamięci zgodnie z tym co masz napisane w PDF przy każdym rejestrze

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 mar 2024, o 21:37 
Offline
Nowy

Dołączył(a): 07 mar 2024
Posty: 2
Pomógł: 0

Więc to procek ładuje po każdym załączeniu zasilania rejestry do tych obszarów pamięci ?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 mar 2024, o 00:25 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27238
Lokalizacja: Szczecin
Pomógł: 1041

Dawcio12 napisał(a):
Więc to procek ładuje po każdym załączeniu zasilania rejestry do tych obszarów pamięci ?

Nie ładuje żadnych rejestrów - mieszasz pojęcia.

Każda komórka tego obszaru RAM jest REJESTREM rozumiesz? A procek po restarcie tylko ustawia odpowiednie bity w tych rejestrach (czyli komórkach pamięci RAM)

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 mar 2024, o 10:27 
Offline
Użytkownik

Dołączył(a): 25 lut 2022
Posty: 39
Pomógł: 6

Dawcio12 napisał(a):
czy rejestry i rozkazy w tych obszarach też znikają po wyłączeniu zasilania?

W "klasycznych" AVRach przestrzenie pamięci dla programu i danych są rozłączne - nie ma możliwości umieszczania rozkaów w RAM. Nie wiem jak jest w nowszych prockach z jednolitą przestrzenią adresową.

Rejestry umieszczone w dolnym obszarze adresowym nie są pamięcią RAM, są zrealizowane sprzętowo jako odpowiednio połączona grupa bramek i przerzutników. Na przykład rejstr Program Counter (akurat ten jest niedostępny do odczytu) można sobie wyobrazić jako kilka połączonych kaskadowo przerzutnikw JK (jak w np. w liczniku 7493). Wejścia Reset liczników jest aktywowane sprzętowo przez układ RC przy załączaniu napięcia. Rejestry danych SPI czy UART to z kolei coś jak 74595. Itd, itp.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 mar 2024, o 14:55 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27238
Lokalizacja: Szczecin
Pomógł: 1041

ord napisał(a):
W "klasycznych" AVRach przestrzenie pamięci dla programu i danych są rozłączne - nie ma możliwości umieszczania rozkaów w RAM. Nie wiem jak jest w nowszych prockach z jednolitą przestrzenią adresową.

a co to ma wspólnego z pytaniem autora ? Tylko zaciemnia obraz taka odpowiedź

ord napisał(a):
Rejestry umieszczone w dolnym obszarze adresowym nie są pamięcią RAM,

BZDURA do kwadratu

ord napisał(a):
są zrealizowane sprzętowo jako odpowiednio połączona grupa bramek i przerzutników.

jeszcze większa bzdura

ord napisał(a):
Na przykład rejstr Program Counter (akurat ten jest niedostępny do odczytu)

To w ogóle nie jest rejestr dostępny przez rejestry zlokalizowane w obszarze pamięci RAM - działa on sobie POZA tą pamięcią - ale z kolei jego wartość jest dostępna za pomocą jednego z rejestrów indeksowanych właśnie w obszarze RAM - więc ani nie ma to nic wspólnego z bezpośrednimi rejestrami w RAM ani nie ma nic wspólnego z tym, że nie da się odczytać program countera

ord napisał(a):
Rejestry danych SPI czy UART to z kolei coś jak 74595. Itd, itp.

Jezu - no weź że kolego nie pisz takich wymysłów - bo są to rejestry właśnie z bezpośrednim dostępem przez obszar RAM. Wprawdzie są one dostępne jako rejestry IO i tak muszą być specyficznie obsługiwane w ASM np w ATmega8 ale już w ATmega328 można mieć do części rejestrów dostęp z poziomu programu jak do zwykłego obszaru pamięci RAM

więc nie są to żadne tam jakieś jak "coś jak 74595" tylko NAJZWYKLEJSZE komórki RAM oczywiście w specjalnym obszarze RAM wydzielonym do tego celu

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 mar 2024, o 08:57 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 29 sty 2015
Posty: 183
Pomógł: 10

ord napisał(a):
Rejestry umieszczone w dolnym obszarze adresowym nie są pamięcią RAM, są zrealizowane sprzętowo jako odpowiednio połączona grupa bramek i przerzutników.

Wedługo mojej wiedzy nie jest to prawda. Rejestry to szczególny rodzaj (obszar) pamięci RAM w MCU. Obszary tej pamięci, tak jak @mirekk36 wspomniał, są inicjalizowane podczas startu mikrokontrolera wartościami domyślnymi. Skąd wiadomo, że to szczególny obszar pamięci RAM? Kiedyś w języku C można było użyć przedrostka register przed określeniem typu zmiennej.

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Kompilator mógł (ale nie musiał) umieścić taką zmienną w tym właśnie obszarze dedykowanej pamięci (rejestry). Dzięki temu mogliśmy uzyskać szybki dostęp do zmiennej. Nie można uzyskać adresu takiej zmiennej! Rejestr nie jest adresem w pamięci. Stąd ten "szczególny rodzaj pamięci".



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 mar 2024, o 08:51 
Offline
Użytkownik

Dołączył(a): 25 lut 2022
Posty: 39
Pomógł: 6

W zasadzie napisałem to samo tylko przed RAM zabrakło literki S. No i położyłem nacisk na czysto sprzętową inicjację rejestrów (o czym nota katalogowa dla niektórych rejestrów mówi wprost).



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 mar 2024, o 11:16 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27238
Lokalizacja: Szczecin
Pomógł: 1041

ord napisał(a):
W zasadzie napisałem to samo tylko przed RAM zabrakło literki S. No i położyłem nacisk na czysto sprzętową inicjację rejestrów (o czym nota katalogowa dla niektórych rejestrów mówi wprost).


W zasadzie to namieszałeś najbardziej jak tylko się da

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 9 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 0 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO