Linux na mikrokontrolerach 8-bitowych

Aug 24, 2007 11 Replies

Witam,



czy jest mozliwosc uruchomienia jakiejs minidystrybucji linuxa na mikrokontrolerach 8-bitowych ? chodzi mi tutaj głownie o ATmega128 ? moze ktos ma jakies doswiadczenie w tej materii ?


Na 8-bitowce jest np. SPIKE - taki prosty jêzyk skryptowy.

PC

PC denied rebel lies:

BTW: na AVRFreaks widziałem interptreter Pythona. Ciekawe czy to działa. Fajnie by było, ech... (;)

snipped-for-privacy@gmail.com pisze:

Nie ma najmniejszych szans. Pamięć programu jest w AVRach nierozbudowywalna (a najwięcej 256KB ma np. ATmega2561 co i tak nie wystarczy nawet na samo jądro Linuxa), do tego nie można wykonywać programu z pamięci RAM.

Może do danego zastosowania wystarczy inny system operacyjny chodzący na ATmedze, np. Nut/OS? Jest też kilka innych, m.in. pozwalające na prawie że bezpośrednią kompilację i uruchomienie programów wykorzystujących biblioteki standardowe (do plików funkcje: open, fopen, fread, do sieci: socket, connect, listen itp).

Nie jestem szpecem od linuxa wbudowanego stąd moje pytanie. Na ARMikach linux przejdzie swobodnie, ale to wiadomo z boota na operacyjną i leci po RAMie bo architektura von Neumana. Moje pytanie brzmi: Czy da się linuxa skompilować na architekturę harvardzką i odpalać go z ROMu?

Pozdr JanuszR

JanuszR pisze:

Wszystkie palmtopy odpalają system z pamięci Flash ROM. Istnieją też takie z preinstalowanym Linuxem więc pewnie się da. Ale to nie ma nic wspólnego z architekturą typu Harvard - po prostu we wspólnej przestrzeni adresowej (jak w ARMach) część stanowi Flash ROM i z niego da się zabootować system. Nie trzeba kopiować całości do RAMu.

Tak ale w harwardzkiej pamięc programu jest oddzielona od pamięci operacyjnej i czasami ma inną długość słowa, stąd moje pytanie. Gdyby dało się na takiej architekturze skompilować linuxa, jedynym ograniczeniem byłaby przestrzeń adresowa pamięci programu. Teoretycznie możnaby upchnąc linuxa na dowolnej platformie spełniającej warunek dostępnej przestrzeni adresowej.

JanuszR

hm nie bardzo rozumiem co jedno ma z drugim wspolnego (tzn ma jesli program sam modyfikowalby swoj wlasny kod ale o ile mi wiadomo tak sie nie robi zwlaszcza w sytamach wielozadaniowych wiec i w linuxie - jesli sie myle to niech mnie ktos poprawi - poza tym problemy bylyby z cachem w takiej sytuacji bo trzeba byloby invalidowac cala zawartosc cache...) IMHO nie ma znaczenia jaka to architektura

teoretycznie u*x maja rozdzielone segmenty danych i programow, ale w praktyce jest to tak pomieszane ze trudno bedzie wyprostowac.

Poza tym linux bez paru MB pamieci, bez protekcji - troche mija sie z celem.

Ale przypominam ze unix startowal na maszynkach klasy pdp11, podzial na wiele roznych procesow o rozdzielonej pamieci bral sie z niewielkiej przestrzeni adresowej i przelaczanych stron. Tylko ze takiego unixa juz nie ma, a nawet jak ktos odczyta stare tasiemki, to uzytecznosc bliska zeru :-)

J.

Dzięki za podzielenie się uwagami. Wniosek jest jasny, nie ma co kombinować, pozostają ARMiki i Renesans

Pozdr JanuszR

Chyba renesas ;) - wybor masz znacznie wiekszy, PowerPC, ColdFire, MIPS no i nie zapominajmy ze w realiach amatorskich plyta z x86 tez potrafi byc alternatywa dla wielu systemow klasy embeded RISC

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required