2011-10-25 37 views
8

Który RTOS czy Ada ma dostępne cross-kompilatory open source/free z obsługą wielozadaniowości/wielowątkowości?Wielozadaniowość dynamiczna Ada obsługiwana przez krzyżowe kompilatory opensourcingu

Mam chip AT89USB162 Atmel, który chcę programować za pomocą Ada. Moją pierwszą opcją było użycie AVR-Ada do programowania, ale ponieważ nie ma ona żadnego wsparcia dla zadań, nie jest to możliwe (i na razie nie mam pojęcia, w jaki sposób obsługa ta jest obsługiwana). Potrzebuję silniejszego podejścia. Myślałem o używaniu QNX, ale jest to o wiele bardziej skomplikowane niż moje chipy.

Dostałem informację, że układ AVR obsługuje układy uC/OS-II i FreeRTOS. Czy są dostępne bezpłatne kompilatory krzyżowe Ada dla FreeRTOS lub uC/OS-II?

Dzięki.

Odpowiedz

6

obsługuje GNAT przynajmniej dla niektórych architektur. Jednakże, ponieważ wspomniałeś architekturę AVR Atmel, prawdopodobnie nie jest to obsługiwane ze względu na ograniczenia architektoniczne (głównie pamięć). RTEMS jest bardzo dojrzały (był open source przed wynalezieniem Linuksa) i został sprawdzony bardzo przydatny w wielu projektach.

Inną opcją jest MarteOS, która obsługuje w Ada. Jednak obsługa architektur była bardzo ograniczona (początkowo tylko x86).

więc, w zależności od ograniczeń projektowych prawdopodobnie masz trzy opcje:

  1. pobytu z AVR i napisać własny czas pracy wspierającą wielozadaniowych dla Ady;
  2. Ponownie rozważ, czy naprawdę potrzebujesz wsparcia w czasie wykonywania zadań; lub
  3. Uaktualnij swoją architekturę do takiej, która jest obsługiwana przez system operacyjny RTOS obsługujący Ada.

(ja po raz pierwszy użyty rtems z GNAT Ada dla zastrzeżonego projektu opartego na ARM9TDMI rdzenia w około 2004-2005).

+1

Cześć Schedler. Sprawdziłem w README.configure dokumentację RTEMS, AVR jest również obsługiwany. Więc teraz przeczytam dokumentację bardziej szczegółowo, ale myślę, że jest bardzo obiecująca do wykorzystania w moim projekcie. Dziękuję Ci. – Rego

+0

Zestaw biurowy, w którym znajduje się firma, która opracowała RTEMS, OAR Corporation, znajduje się w sąsiedztwie budynku, w którym teraz pracuję. Każdego dnia spaceruję po parku i jedziemy obok wielkiego znaku OAR. –

+0

@MarcC - Bez nich nie chcesz być na górze! ;-) –

6

Cóż, jedynym kompilatorem Ada jaki znam jest Free Software to Gnat. Więc to redukuje twoje pytanie do "Co RTOSes obsługuje Gnat z zadaniem?"

ACT przechowuje listę supported platforms here. Kolumna po prawej stronie wygląda jak RTOS lub pseudo RTOS. FreeRTOS i uC/OS-II nie wydają się być na liście.

Zauważam, że na dole ich listy znajduje się pod "gołymi tablicami" wpis o treści "Format mikrokontrolera AVR w formacie ELF (hostowany w systemie Windows)". To może być to, czego szukasz. Powiedziałbym jednak, że istnieje duża szansa, że ​​ich nieobsługiwane porty pokładowe również nie obsługują zadań. W rzeczywistości, myśląc o tym, może to być nazwa ACT dla AVR-Ada. Musisz sprawdzić w ACT.

Należy również zauważyć, że bardzo trudno jest znaleźć "bezpłatne" pliki binarne dla wielu bardziej ezoterycznych celów gcc. Oznacza to, że możesz być zmuszony do samodzielnego zbudowania kompilatora ze źródeł (nawet nie zdalnie dla osób o słabym sercu), lub w rzeczywistości kupić pakiet wsparcia od ACT, aby go uzyskać.

5

Jestem jednym z twórców oryginalnych rtems i był ołów rtems projektu od przeszedł z programu badawczego armii do tradycyjnego projektu wolnego oprogramowania. Staramy się, aby system RTEMS był wysokiej jakości produktem z wielką społecznością.

AVR to dość mały cel, a port RTEMS jest niekompletny.Nawet jeśli port RTEMS był kompletny, nie sądzę, że istnieje AVR z wystarczającą przestrzenią adresową do obsługi GNAT/RTEMS. GNAT odwzorowuje każde zadanie Ada na wątek POSIX, tak jak na GNU/Linux, a ślad czasu pracy dla środowiska "prawdziwej Ada" jest duży. Pamiętam minimalne pliki wykonywalne w zakresie kodów 400K w PowerPC. Dla porównania, plik wykonywalny C minimum dla RTEMS jest prawdopodobnie w zakresie 32-40k dla tego samego celu.

Nie jestem zaznajomiony z AVR-Ada, ale zgadzam się, że jest bardzo mało prawdopodobne, aby zapewnić pełne środowisko Ada.

Projekt RTEMS zawiera skrypty, których używamy do budowania narzędzi GNU i testowania ich. Jeśli jesteś zainteresowany budowaniem narzędzi dla własnego, dziwnego celu, mogą one być dobrym przewodnikiem. Procedura nie różni się zbytnio w przypadku osadzonych obiektów docelowych.

Marc C. .. ponieważ jesteś w Huntsville, czasami będziemy musieli się spotkać na lunch. Nasze biuro znajduje się mniej więcej od Bridge Street. Naprawdę nie spotykam wielu użytkowników RTEMS. :(

+0

Bardzo wyjaśniając twoją odpowiedź, @, dziękuję. Zajrzałem do dokumentacji RTEMS, kiedy @Schedler o tym mówił (a do tego czasu nie wiedziałem o RTEMS). I pomimo braku pełnego portu, okazało się, że jest bardzo interesujące w użyciu z AVR, nawet z wszystkimi ograniczeniami. Przynajmniej do celów związanych z nauką. Większość układów AVR jest bardzo ograniczona, jeśli porównać je z niektórymi komputerami Power PC lub SPARC. Opracowałem kilka aplikacji w Power PC na VxWorks i po prostu mają zupełnie inne paradygmaty programowania. – Rego

+0

Ale użytkownicy AVR są zwykle przyzwyczajeni do tych ograniczeń, a aplikacje, które go używają, zwykle nie wymagają głębokich ograniczeń w czasie rzeczywistym. W dokumencie RTEMS RTEMS CPU Architecture Supplement znalazłem całkiem interesujące funkcje, które są dostępne do korzystania z AVR, więc zasugerowałem niektórym moim studentom magisterskim pracę nad możliwością implementacji niektórych funkcji w AVR przy użyciu RTEMS jako wyzwania. – Rego

+0

AVR-Ada to fantastyczny projekt open-source, ale teraz nie jest kompletny. I zdecydowałbym się użyć tego, gdybym mógł, ponieważ został wdrożony w bardzo intuicyjny sposób. Celem było zaimplementowanie 8-bitowego cross-kompilatora Windows dla niektórych mikrokontrolerów, ale brakuje mu jeszcze kilku dobrych cech Ada, które są dobrym posmakiem używania Ada. Na przykład nie obsługuje zadań ani wyjątków. Wygląda na to, że będzie to nowa wersja jeszcze w tym roku, ale niestety nie jest możliwe zastosowanie najnowszego oprogramowania do aplikacji prewencyjnych. Mam nadzieję, że następne wydanie to naprawi. – Rego

3

Chcielibyśmy zobaczyć port AVR stać się bardziej kompletna! Zachęć uczniów do przyłączenia się do naszej listy mailingowej rozwój i zadawać pytania.

rtems jest w tej samej klasie co RTOS VxWorks. Daje on bogaty zestaw funkcji, który musi zostać przycięty, aby zmieścił się na mniejszych 8 i (niektórych) procesorach 16-bitowych. Naszym wyzwaniem było zidentyfikowanie profilu funkcji "Tiny/RTEMS" do celu. RTEMS jest naprawdę bardzo skalowalny, ale kiedy nie Wiesz, jaki zestaw funkcji byłby znaczący dla tego procesora klasy, nie ma żadnego konkretnego celu, pomóż zdefiniować wymagania użytkownika i cel:

Naprawdę bardzo lubimy mieć BSP, który działa na darmowym symulatorze dla każda docelowa architektura. SimulAVR był tym, czego używałem, gdy aktywnie pracowałem przy porcie. AdaCore użył czegoś o nazwie avrtest, ale było bardziej ograniczone - użyteczne, ale ograniczone.

+0

Dziękuję. Zasugeruję im, aby dołączyli do listy. Sądzę, że jest to dla nich dobra okazja do nauki. – Rego