Odczytywanie dużych tablic

To forum jest dla wszystkich pasjonatów wiecznie młodych mikrokontrolerów '51. Wymiana doświadczeń i pomoc dla początkujących w pisaniu programów zarówno w C, Asemblerze jak i BASCOM. Zapraszam znawców tematu, aby pomogli wszystkim początkującym!
Awatar użytkownika
kayron
Użytkownik
Posty: 2088
Rejestracja: 21 wrz 2008, 12:53
Lokalizacja: Poland
Kontakt:

Post autor: kayron » 14 gru 2010, 15:30

Do magistrali 16-bitowej?
Non problem zestronicujesz sobie ją po 2x 64KB. wykorzystując sobie jeden pin portu 1. Tak można podpiąć właściwie dowolną ilość RAM ,ale powyżej 128KB komplikuje to trochę programowania. Jeżeli teraz do tego napisz odpowiednio system operacyjny to masz 2x więcej dostępnej pamięci, choć Bios będziesz musiał w niej dublować.

Awatar użytkownika
mr_x
Użytkownik
Posty: 385
Rejestracja: 12 gru 2010, 19:05
Lokalizacja: /bin/bash
Kontakt:

Post autor: mr_x » 14 gru 2010, 15:57

No tak to ja wiem, pomyślałem tylko przez chwilę, że może nie jest on adresowany 16-bitowo.
choć Bios będziesz musiał w niej dublować.
Niekoniecznie, można zrobić jakąś procedurę skoku, trzeba tylko bardzo uważać, bo łatwo puścić program w maliny. Albo można zrobić jakieś "okienko" (w sumie może to być jakiś obszar z podstawowego bloku pamięci), przez które można dobrać się do dodatkowej pamięci.

Awatar użytkownika
kayron
Użytkownik
Posty: 2088
Rejestracja: 21 wrz 2008, 12:53
Lokalizacja: Poland
Kontakt:

Post autor: kayron » 14 gru 2010, 17:14

Tu raczej chodzi o przerwania, bo jeżeli w RAM rezydować będzie jakiś program ich używający., to procesor zawsze skacze ci pod stały adres, a dopiero tam najczęściej jest wektor właściwy, i tu mogą pojawić się niuanse, bo trzeba będzie pamiętać o stronicowaniu.

Awatar użytkownika
Ertew
Użytkownik
Posty: 1414
Rejestracja: 03 lip 2005, 10:36
Lokalizacja: Leszno
Kontakt:

Post autor: Ertew » 14 gru 2010, 23:16

To może jeden obszar 32k z biosem, stałymi, właściwymi wektorami skoków po przerwaniach oraz np. urządzeniami WE/WY.
Drugi obszar to okno 32k w którym może być widoczny jeden z 4 fragmentów RAMu np. 4 programami.

Awatar użytkownika
kayron
Użytkownik
Posty: 2088
Rejestracja: 21 wrz 2008, 12:53
Lokalizacja: Poland
Kontakt:

Post autor: kayron » 15 gru 2010, 16:56

Wszystko zależy jak zaawansowany ma być system operacyjny na takim komputerku? Na 51, mając 4 zestawy rejestrów uniwersalnych da się zrobić nawet system wielozadaniowy, gdzie pracować będą "na raz" do 4 aplikacje. Ale wtedy dobrze by było mieć CPU z udoskonalonym rdzeniem 4 taktowym lub nawet 1 taktowym.

Awatar użytkownika
mr_x
Użytkownik
Posty: 385
Rejestracja: 12 gru 2010, 19:05
Lokalizacja: /bin/bash
Kontakt:

Post autor: mr_x » 17 sty 2011, 21:14

kayron pisze:Wszystko zależy jak zaawansowany ma być system operacyjny na takim komputerku? Na 51, mając 4 zestawy rejestrów uniwersalnych da się zrobić nawet system wielozadaniowy, gdzie pracować będą "na raz" do 4 aplikacje.
Trzeba wtedy bardzo uważać na stos, bo wiadomo, czym to grozi. Rozumiem, że miałeś na myśli układ '52 z 256B RAM, wtedy stos można przenieść pod adres 7Fh (a odkładanie zacznie się od 80h, czyli w 129 bajcie). Bo cztery banki Rn zajmą cały obszar od 0h do 7Fh.

ODPOWIEDZ