[C] wątki w mikrokontrolerze

Jun 27, 2004 6 Replies

Witam



Bawię się ostatnio w AVR-GCC. Mam parę pytań czy w mikrokontrolerach jest coś takiego jak wątek ? Oczywiście jest to kwestia oprogramowania samego uC i właśnie tutaj moje pytanie czy w kompilatorach do C są zaimplementowane wątki ? bo w AVR-GCC tego nie zauważyłem, ale może w innych coś takiego istnieje. A jeśli nie ma to czy aby zrobić sobie np. jednoczesne wykonywanie dwóch funkcji musze sobie stworzyć jakiś mini system operacyjny ? jak w ogóle do tego się zabrać ? czy robić to na przerwaniach timera ? Czy może są jakieś gotowe systemy operacyjne pod uC AVR lub PIC ? Oczywiście pod pojęciem wątek nie rozumie przerwania !!! bo przerwanie jak zacznie się już wykonywać to wykonuje się blokując cały uC aż do momętu zakończenia jego wykonywania.



Kompilatory same z siebie nie obsluguja watkow - jest to w koncu zadanie systemu operacyjnego. Polecam darmowy (GNU) wielozadaniowy system na AVRy NutOS:

formatting link

Samo z siebie nie. Trzeba sobie stworzyć system operacyjny a w nim zaimplementować wątki. Polecam artykuł n/t multitaskingu w AVR+przykład RTOS w C, but in English ;-)

formatting link
Jacek

Niestety nie ma wątków i trzeba robić cooperative lub preemtive multitasking przez szybkie przełączanie funkcji w C (przerwania timera, przełączanie kontekstu CPU te sprawy) lub użyć jakiegoś gotowego RTOSa (systemu czasu rzeczywistego) np.

formatting link

Jak narazie chyba najbardziej podoba mi się ten RTOS

formatting link
czy da się go łatwo przystosować do Atmegi8 i AVR-GCC ? bo z tego co zdążyłem przeczytać to tam ciągle piszą co prawda o Atmega ale 32 ;(

Użytkownik "BT" snipped-for-privacy@poczta.onet.pl> napisał w wiadomości news:cbness$897$ snipped-for-privacy@atlantis.news.tpi.pl...

Moze to ?

formatting link

Użytkownik "BT" snipped-for-privacy@poczta.onet.pl> napisał w wiadomości news:cbor9g$fsb$ snipped-for-privacy@nemesis.news.tpi.pl...

formatting link
powinien chodzic na m8, jest calkiem niezly.

Pozdr AK

Join the Discussion

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

Didn't find your answer?

Ask the community — no account required