ATNEL tech-forum https://forum.atnel.pl/ |
|
Pamięć RAM w AVR https://forum.atnel.pl/topic24630.html |
Strona 1 z 1 |
Autor: | mirekk36 [ 7 mar 2024, o 20:21 ] |
Tytuł: | Re: Pamięć RAM w AVR |
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 ![]() |
Autor: | Dawcio12 [ 7 mar 2024, o 21:37 ] |
Tytuł: | Re: Pamięć RAM w AVR |
Więc to procek ładuje po każdym załączeniu zasilania rejestry do tych obszarów pamięci ? |
Autor: | mirekk36 [ 8 mar 2024, o 00:25 ] |
Tytuł: | Re: Pamięć RAM w AVR |
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) |
Autor: | mirekk36 [ 8 mar 2024, o 14:55 ] |
Tytuł: | Re: Pamięć RAM w AVR |
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 |
Autor: | Draxter32 [ 13 mar 2024, o 08:57 ] |
Tytuł: | Re: Pamięć RAM w AVR |
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. 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". |
Autor: | mirekk36 [ 14 mar 2024, o 11:16 ] |
Tytuł: | Re: Pamięć RAM w AVR |
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 |
Strona 1 z 1 | Strefa czasowa: UTC + 1 |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |