Witam!
Postanowiłem w końcu się pochwalić projektem, który rozpocząłem troszkę ponad 7 miesięcy temu. Na razie można go określić jako "alpha", w ostateczności jako wczesną "betę", jednakże - wbrew dosłownej wymowie tych określeń - to co jest w nim zrobione - a jest tego całkiem sporo - działa tak jak powinno i jest przetestowane. Jedyną wspieraną obecnie architekturą jest (cóż za zaskoczenie) ARM Cortex-M3 lub ARM Cortex-M4(F) (bez włączonego FPU EDIT 19.03.2015: obecnie można już używać FPU wielowątkowo), a jedynym wspieranym obecnie układem jest STM32F407VG (układ na pierwszej płytce STM32F4DISCOVERY).
Całość stworzona została w C++11, nie ma API dla języka C. Takie API oczywiście jest planowane i będzie to pthread oraz być może jeszcze jedno, bardziej "natywne", pozwalające wygodniej korzystać z "ficzerów" specyficznych dla tego projektu. Niemniej jednak API dostępne w C++11 jest w zasadzie 100% odpowiednikiem wymagań POSIXa. Warto podkreślić, że kod nie używa pamięci alokowanej dynamicznie, wiec wszystko (przede wszystkim wątki wraz z ich stosami) można stworzyć jako zmienne lokalne (na stosie), globalne czy jak kto woli.
Drugą istotną sprawą wartą podkreślenia jest to, że projekt ten nie ma ambicji bycia "najmniejszym" albo/i "najszybszym" RTOSem. Wraz z upływem czasu (i wzrostem popularności oraz spadkiem cen szybkich układów z dużą ilością pamięci <; ) stwierdzam, że ekwilibrystyka wyczyniana czasem aby zaoszczędzić kilka taktów czy 10 bajtów nie jest uzasadniona. Nie znaczy to oczywiście że całość działa żałośnie wolno i zajmuje całą pamięć (; Po prostu nie skupiam się przesadnie na tych sprawach - skupiam się na nich w stopniu który uznałem za "wystarczający".
Nie ma co powielać opisów, więc podaję linka do oficjalnej strony projektu, linka do artykułu na mojej stronce w którym opisałem ten projekt troszkę bardziej oraz linka do repozytorium.
http://distortos.org/
http://www.freddiechopin.info/pl/artykuly/34-news/94-distortos-7-miesiecy-i-0x3ff-commitow
https://github.com/DISTORTEC/distortos
Jeszcze jeden link z małym teaserem - http://www.freddiechopin.info/pl/artykuly/34-news/93-work-in-progress
Postanowiłem w końcu się pochwalić projektem, który rozpocząłem troszkę ponad 7 miesięcy temu. Na razie można go określić jako "alpha", w ostateczności jako wczesną "betę", jednakże - wbrew dosłownej wymowie tych określeń - to co jest w nim zrobione - a jest tego całkiem sporo - działa tak jak powinno i jest przetestowane. Jedyną wspieraną obecnie architekturą jest (cóż za zaskoczenie) ARM Cortex-M3 lub ARM Cortex-M4(F) (
Całość stworzona została w C++11, nie ma API dla języka C. Takie API oczywiście jest planowane i będzie to pthread oraz być może jeszcze jedno, bardziej "natywne", pozwalające wygodniej korzystać z "ficzerów" specyficznych dla tego projektu. Niemniej jednak API dostępne w C++11 jest w zasadzie 100% odpowiednikiem wymagań POSIXa. Warto podkreślić, że kod nie używa pamięci alokowanej dynamicznie, wiec wszystko (przede wszystkim wątki wraz z ich stosami) można stworzyć jako zmienne lokalne (na stosie), globalne czy jak kto woli.
Drugą istotną sprawą wartą podkreślenia jest to, że projekt ten nie ma ambicji bycia "najmniejszym" albo/i "najszybszym" RTOSem. Wraz z upływem czasu (i wzrostem popularności oraz spadkiem cen szybkich układów z dużą ilością pamięci <; ) stwierdzam, że ekwilibrystyka wyczyniana czasem aby zaoszczędzić kilka taktów czy 10 bajtów nie jest uzasadniona. Nie znaczy to oczywiście że całość działa żałośnie wolno i zajmuje całą pamięć (; Po prostu nie skupiam się przesadnie na tych sprawach - skupiam się na nich w stopniu który uznałem za "wystarczający".
Nie ma co powielać opisów, więc podaję linka do oficjalnej strony projektu, linka do artykułu na mojej stronce w którym opisałem ten projekt troszkę bardziej oraz linka do repozytorium.
http://distortos.org/
http://www.freddiechopin.info/pl/artykuly/34-news/94-distortos-7-miesiecy-i-0x3ff-commitow
https://github.com/DISTORTEC/distortos
Jeszcze jeden link z małym teaserem - http://www.freddiechopin.info/pl/artykuly/34-news/93-work-in-progress