Aktyw Forum
Zarejestruj się na forum.ep.com.pl i zgłoś swój akces do Aktywu Forum. Jeśli jesteś już zarejestrowany wystarczy, że się zalogujesz.
Sprawdź punkty Zarejestruj sięuClinux dla mikrokontrolera AVR
Moderatorzy:Jacek Bogusz, procesorowiec, r-mik, Moderatorzy
Witam. Mam nietypowe pytanie odnośnie systemu operacyjnego dla mikrokontrolerów AVR (ATMega firmy Atmel). Czy jest to wogole wykonalne dla tych mikrokontrolerów? Czytałem coś o uClinux, ale nie wiem czy nadaje sie wlasnie do AVR'ow. Czy wogole jest sens stosowania OS'a do mikrokontrolerów ATMega? Dzieki
Moze sie myle, bo nie przygladalem sie temu projektowi (mam to w dalszych planach), ale nie sadze by byla mozliwosc upchania jakiejkolwiek pochodnej linuxa na jakiejs platformie 8 bitowej, pomijajac juz inne mozliwosci oferowane przez AVR (chocby pamiec).
A os dla AVR, prawdopodobnie jest to mozliwe i wykonalne, byc moze istnieje juz jakis.
A os dla AVR, prawdopodobnie jest to mozliwe i wykonalne, byc moze istnieje juz jakis.
Nie wiem czy jest sens tworzenia OS-a dla procesorow AVR biorac pod uwage ze te procesory nie potrafia wykonywac programu z zewnetrznej pamieci RAM. A to jest glowne zadanie OS-a czyli zaladowanie i wykonywanie programow (wielowatkowo pewnie by bylo najlepiej). Owszem mozna by napisac takiego OS-a co wgrywa do flasha wykonywane programy ale szybko by sie ta pamiec zuzylo bo ma "tylko" 1000 ( a w nowszych chyba 10000) gwarantowanych cykli zapisu.
Pozdro
Dexter
Pozdro
Dexter
No niezupelnie, porownujesz flash uC do RAM'u, a moze by tak wlasnie flash=pamiec masowa ?? Ram przeciez jest osobno, a ze nie ma koniecznosci ladowania aplikacji do RAM'u... Porownaj raczej zaladowanie OS'u/programu do flashu, do jego instalacji na komputerze... a czy instalowales juz na swojej maszynie jakis program wiecej niz 1000 (10000) razy ?? A ze malo miejsca na to wszystko... no coz... albo rybka, albo... akwarium.Nie wiem czy jest sens tworzenia OS-a dla procesorow AVR biorac pod uwage ze te procesory nie potrafia wykonywac programu z zewnetrznej pamieci RAM. A to jest glowne zadanie OS-a czyli zaladowanie i wykonywanie programow (wielowatkowo pewnie by bylo najlepiej). Owszem mozna by napisac takiego OS-a co wgrywa do flasha wykonywane programy ale szybko by sie ta pamiec zuzylo bo ma "tylko" 1000 ( a w nowszych chyba 10000) gwarantowanych cykli zapisu.
routex:
Tylko zgaduje (jakie by mogly)... ARM ??
Dla wszystkich zainteresowanych systemem operacyjnym dla AVR (konkretnie ATmega 128) po spędzonym czasie w internecie i poszukiwaniach odsyłam do strony http://www.sics.se/~adam/contiki/index.html . Jest tam przedstawiony system operacyjny między innymi na mikrokontrolery 8-io bitowe. Proszę o opinie odnośnie tego systemu, gdyż mój angielski jest taki sobie...
OS na avr
1 - są systemy RTOS na AVR i wbrew pozorom całkiem dużo, a niektóre z nich mają ogromne możliwości.
2 - jest sens stosowania OS na uP. 4kb RAM i 128kB Flash daje już przeogormne możliwości.
Uproszczenie w pisaniu programów i dodatkowe funkcje, które dostarczają wątki z nawiązką rekompensują ewentualne wady.
3 - contiki nie jest zbyt dobry przedstawicielem systemu operacyjnego. Sugerowałbym coś innego. Moimi ulubionymi są: ethernut, pic]os, uCOS.
4 - uClinuxa nie pójdzie na AVR. Jest przeznaczony jednak na 'troszkę' większe uP.
2 - jest sens stosowania OS na uP. 4kb RAM i 128kB Flash daje już przeogormne możliwości.
Uproszczenie w pisaniu programów i dodatkowe funkcje, które dostarczają wątki z nawiązką rekompensują ewentualne wady.
3 - contiki nie jest zbyt dobry przedstawicielem systemu operacyjnego. Sugerowałbym coś innego. Moimi ulubionymi są: ethernut, pic]os, uCOS.
4 - uClinuxa nie pójdzie na AVR. Jest przeznaczony jednak na 'troszkę' większe uP.
Obawiam się, że język angielski jest wymagany, aby cokolwiek zrobić w tym temacie.Czy istnieją może polskie strony z opisami tych systemów? Temat jest bardzo interesujący i mysle ze wart bliższego zainteresowania...
Fajna witryna z RTOS i opisem jak to się robi jest na: http://www.freertos.org/
Zajrzyj też na: viewtopic.php?t=11425
Mowa byla o obslugujacych jave, wiec i o takich (DCT4) jak rozumiem napisales, ze na ARM'ie (co zreszta sie pokrywa z moimi przypuszczeniami - a moze juz slyszalem to wczesniej gdzies). Lecz DCT3 chyba jednak sa na innych prockach. Niewazne zreszta...Komórki chodzą na ARM'ach. ARM'y są powszechnie dostępne.Na jakich prockach pracują telefony komórkowe? Oczywiście z obsługą javy? Czy są one powszeechnie dostępne?
Dla AVR'a jest dostępny minilinux. Wymaganie jakie stawia, to ATMEGA z 16MHz zegarem i 64KBRAM.
A ten minilinux to ma coz wspolnego z linuxem poza nazwa ?? Bo jakos malo realne wydaje mi sie odpalenie jakiejkolwiek nawet miemozebnie okrojonej, przerobionej i przedziwnionej wersji kernela linuxa na maszynie 8 bit.
Jeszcze raz powtarzam, że nowe komórki używają 16/32bitowych mikrokontrolerów m.in. Philips'a i Atmel'a, które się potocznie nazywają ARM, chociaż Atmel swoje produkty z rodziny AT7 nazywa AT Thumb.Mowa byla o obslugujacych jave, wiec i o takich (DCT4) jak rozumiem napisales, ze na ARM'ie (co zreszta sie pokrywa z moimi przypuszczeniami - a moze juz slyszalem to wczesniej gdzies). Lecz DCT3 chyba jednak sa na innych prockach. Niewazne zreszta...Komórki chodzą na ARM'ach. ARM'y są powszechnie dostępne.Na jakich prockach pracują telefony komórkowe? Oczywiście z obsługą javy? Czy są one powszeechnie dostępne?
Dla AVR'a jest dostępny minilinux. Wymaganie jakie stawia, to ATMEGA z 16MHz zegarem i 64KBRAM.
A ten minilinux to ma coz wspolnego z linuxem poza nazwa ?? Bo jakos malo realne wydaje mi sie odpalenie jakiejkolwiek nawet miemozebnie okrojonej, przerobionej i przedziwnionej wersji kernela linuxa na maszynie 8 bit.
Nie wgłębiałem się w features tego minilinux'a, więc nie mogę dokładnie podać szczegółów co to jest. Od tego jest google.com
Unix na 8bitowe środowisko istnieje, bo między innymi, na mojej byłej uczelni, jeden gość zrobił pracę dyplomową na ten temat. Jednak to był najprawdopodobnie jakiś procek z rodziny MCS-51. Bo jeszcze wtedy o AVR'ach nikt nie słyszał.
Jeszcze raz powtarzam, że nowe komórki używają 16/32bitowych mikrokontrolerów m.in. Philips'a i Atmel'a, które się potocznie nazywają ARM, chociaż Atmel swoje produkty z rodziny AT7 nazywa AT Thumb.
Niom... czyli sie praktycznie w pelni zgadzamy. Obecnie powstaja juz chyba tylko DCT4. Ale starsze modele (zgodne z DCT3 i starsze) nie byly na ARM'ach.
A temu minilinuxowi sie trzeba bedzie przyjrzec... ot, tylko z ciekawosci co to ludzie nazywaja linuxami/unixami.
:-)
Komórki chodzą na procesorach z rdzeniem firmy ARM. Niekoniecznie są to znane procesory Atmela i Philipsa. Bardzo często są to procesory sygnałowe zbudowane w oparciu o rdzeń firmy ARM produkowane na specjalne zamówienie.
Jeśli chodzi o systemy operacyjne na mikrokontrolery 8-bitowe, to aplikacje w stylu Linuks nie mają chyba zastosowań a co za tym idzie sensu bytu. Co innego RTOS - programy działające na mikrokontrolerze jedynie jako software'owy driver przydzialjący czas procesora dla procedur - w aplikacji kilkuwątkowej (ciężko nazwać to aplikacją wielowątkową). RTOS korzysta z jednego licznika i zajmuje maks. 1-2 kb pamięci ROM. Jako ciekawostkę podam, iż istnieją systemy czasu rzeczywistego dla procesorów rodziny '51 i umożliwiają pracę do 8 równoległych wątków programu. Taki RTOS jest dostępny np. razem z pełnym pakietem uVision firmy Keil.
Jeśli chodzi o systemy operacyjne na mikrokontrolery 8-bitowe, to aplikacje w stylu Linuks nie mają chyba zastosowań a co za tym idzie sensu bytu. Co innego RTOS - programy działające na mikrokontrolerze jedynie jako software'owy driver przydzialjący czas procesora dla procedur - w aplikacji kilkuwątkowej (ciężko nazwać to aplikacją wielowątkową). RTOS korzysta z jednego licznika i zajmuje maks. 1-2 kb pamięci ROM. Jako ciekawostkę podam, iż istnieją systemy czasu rzeczywistego dla procesorów rodziny '51 i umożliwiają pracę do 8 równoległych wątków programu. Taki RTOS jest dostępny np. razem z pełnym pakietem uVision firmy Keil.
Bez dwóch zdań:-) Real Time Operating System.W gruncie rzeczy, OS dla 8bit kontrolera to jest RTOS.
Ale zgodnie z definicją system operacyjny "jest to zbiór programów pośredniczących pomiędzy aplikacjami użytkownika a sprzętem". Tylko czy taki prosty RTOS w jakikolwiek sposób pośredniczy między aplikacją a sprzętem?
Pozdrawiam!
Nie ma co się czarować, na 8bit procku, który nie ma rejestrów indeksowych to trudno wyczarować multitasking. Ale jak powiadają, dla chcącego nic trudnego.
Systemem operacyjnym będą wszystkie procedury zajmujące się sprzętem, jak podprogramy wysyłające przez UART jakiś tekst, podprogramy wypisujące znaki na LCD, czy odczytujące stan przycisków dołączonych do kontrolera. Programem użytkownika (chociaż tu będzie tylko jeden program) będzie dowolny program np. odczytujący temperaturę z DS'a i przesyłający za pomocą procedur OS, odczytaną temperaturę na LCD dołączonego do uC, czy przez UART'a, nieważne, czy przez sprzętowego, czy emulowanego programowo, ale jest procedurą systemu operacyjnego, bo odwołuje się do sprzętu.
Systemem operacyjnym będą wszystkie procedury zajmujące się sprzętem, jak podprogramy wysyłające przez UART jakiś tekst, podprogramy wypisujące znaki na LCD, czy odczytujące stan przycisków dołączonych do kontrolera. Programem użytkownika (chociaż tu będzie tylko jeden program) będzie dowolny program np. odczytujący temperaturę z DS'a i przesyłający za pomocą procedur OS, odczytaną temperaturę na LCD dołączonego do uC, czy przez UART'a, nieważne, czy przez sprzętowego, czy emulowanego programowo, ale jest procedurą systemu operacyjnego, bo odwołuje się do sprzętu.
Kto jest online
Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 2 gości