-
Data: 2010-02-09 06:04:04
Temat: Re: mikrokontroler military/(aero)space 8bit
Od: SM <b...@k...com.pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]>
> Niska orbita czy przestrzeń międzyplanetarna? Na jak długo? "Zyciowo ważne",
> czy może się czasem mylić?
> FLASH nie jest zbyt dobrym rozwiązaniem, OTP jeszcze gorszym, chyba, że
> włożysz trochę pomyślunku.
Tak właśnie zastanawiałem się również nad stroną programową.
Czy nie dobrym rozwiązaniem by było zrobienie procka
na "superodpornym" FPGA. Rejestry i "trochę" roboczego
RAMu na zmienne siedziałoby też w FPGA. Do niego podpiąć
pamięć FLASH z programem.
"Procek" w FPGA pobierałby kod programu z FLASHa i działał
jak interpreter choćby nawet BASICa. Każdy token byłby zapisany
wielobajtowo (co najmniej 2 bajty), np. pierwszy bajt - kod tokena
, drugi bajt jego XOR 255. Albo też więcej bajtów z sumą CRC.
Mamy więc kontrolę czy program we FLASH nie uległ samomodyfikacji.
Drugi plus to stała długość każdej instrukcji.
Program w pamięci FLASH byłby zapisany np. trzykrotnie.
Niech ma długość 1KB. Mamy więc program od 0 do 1023. Potem
to samo od 1024 do 2047 i znów to samo od 2048 do 3072.
FPGA leci normalnie z programem od 0 do 1023, jeśli nie zgodzi
mu się CRC na instrukcji to wtedy dodaje offset + 1024
i próbuje pobrać instrukcję z jej kopii. Jeśli znów błąd
to znów z kolejnej.
Albo jeszcze lepiej. Podłączone do FPGA kilka zewnętrznych
pamięci FLASH. Powiedzmy 3. Przy pobieraniu kolejnej
instrukcji FPGA zmienia nr FLASH z którego pobiera instrukcję
(dzięki temu w kółko przemieli i zweryfikuje każdego FLASHa)
Jeśli stwierdzi błąd, wówczas przeprogramowuje błędny sektor
w uszkodzonym FLASH korzystając z danych zawartych w dwóch
pozostałych FLASHach.
Mamy samonaprawiający się układ do tego jeszcze z możliwością
zdalnego przeprogramowania.
Chyba w wolnej chwili spróbuję taką zabawkę sobie zrobić :)
Kiedyś pisałem kompilatory i interpretery więc nie będzie
z tym większego problemu.
Pozdrawiam,
SM
Następne wpisy z tego wątku
- 09.02.10 09:53 Waldemar Krzok
- 09.02.10 10:59 SM
- 09.02.10 11:11 SM
- 09.02.10 11:29 Andrzej Ekiert
- 09.02.10 11:55 Marcin Stepien
- 09.02.10 14:09 SM
- 09.02.10 14:15 Jerry1111
- 11.02.10 02:32 Piotr \"Curious\" Slawinski
- 11.02.10 20:29 Waldemar Krzok
- 12.02.10 22:43 Michał Baszyński
- 12.02.10 23:07 Butek
- 13.02.10 01:00 Maciek
- 14.02.10 20:04 badworm
Najnowsze wątki z tej grupy
- Ściąganie hasła frezem
- Koszyk okrągły, walec 3x AA, na duże paluszki R6
- Brak bolca ochronnego ładowarki oznacza pożar
- AMS spalony szybkim zasilaczem USB
- stalowe bezpieczniki
- Wyświtlacz ramki cyfrowej
- bateria na żądanie
- pradnica krokowa
- Nieustający podziw...
- Coś dusi.
- akumulator napięcie 12.0v
- Podłączenie DMA 8257 do 8085
- pozew za naprawę sprzętu na youtube
- gasik
- Zbieranie danych przez www
Najnowsze wątki
- 2025-02-01 Śmierć mózgu a narządy do pobrania
- 2025-01-31 A niektórym to naprawdę zależy na ekologi w miastach LPG POWRACA ;-)
- 2025-01-31 Lublin => Programista Delphi <=
- 2025-01-31 Łódź => Programista NodeJS <=
- 2025-01-31 Wrocław => Senior SAP Support Consultant (SD) <=
- 2025-01-31 Warszawa => Full Stack web developer (obszar .Net Core, Angular6+) <=
- 2025-01-31 Gdańsk => iOS Developer (Swift experience) <=
- 2025-01-31 Kraków => UX Designer <=
- 2025-01-31 Warszawa => Data Engineer (Tech Leader) <=
- 2025-01-31 Gliwice => Business Development Manager - Dział Sieci i Bezpieczeńst
- 2025-01-31 Gliwice => Business Development Manager - Network and Network Security
- 2025-01-31 Warszawa => Architekt rozwiązań (doświadczenie w obszarze Java, AWS
- 2025-01-31 Warszawa => Full Stack .Net Engineer <=
- 2025-01-31 Warszawa => Programista Full Stack (.Net Core) <=
- 2025-01-31 Gdańsk => Programista Full Stack .Net <=