50
Techniki mikroprocesorowe Wbudowane systemy czasu rzeczywistego Wykład 14

Wbudowane systemy czasu rzeczywistegolielow/PTM/Wyklady/W14_Wbudowane...FreeRTOS •FreeRTOS jest systemem czasu rzeczywistego przeznaczonym dla urządzeń wbudowanych o dużych ograniczeniach

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Wbudowane systemy czasu rzeczywistegolielow/PTM/Wyklady/W14_Wbudowane...FreeRTOS •FreeRTOS jest systemem czasu rzeczywistego przeznaczonym dla urządzeń wbudowanych o dużych ograniczeniach

Techniki mikroprocesorowe

Wbudowane systemy czasu rzeczywistego

Wykład 14

Page 2: Wbudowane systemy czasu rzeczywistegolielow/PTM/Wyklady/W14_Wbudowane...FreeRTOS •FreeRTOS jest systemem czasu rzeczywistego przeznaczonym dla urządzeń wbudowanych o dużych ograniczeniach

Techniki mikroprocesorowe

Systemy operacyjne czasu rzeczywistego

• System czasu rzeczywistego (RTOS) to system operacyjny opracowany tak, by spełnić wymagania narzucone na czas wykonywania zadanych operacji

• Systemy RTOS dzielą się na twarde i miękkie

2

Page 3: Wbudowane systemy czasu rzeczywistegolielow/PTM/Wyklady/W14_Wbudowane...FreeRTOS •FreeRTOS jest systemem czasu rzeczywistego przeznaczonym dla urządzeń wbudowanych o dużych ograniczeniach

Techniki mikroprocesorowe

Twarde systemy RTOS

• Są to systemy RTOS, dla których znane są maksymalne, czyli najgorsze, czasy reakcji (odpowiedzi) oraz gwarantujące, że czas ten nie zostanie przekroczony w żadnych okolicznościach

• Zastosowania: wszelkiego typu urządzenia, w których opóźnienie w obsłudze zdarzenia może doprowadzić do strat materialnych lub zagrożenia dla życia i zdrowia

3

Page 4: Wbudowane systemy czasu rzeczywistegolielow/PTM/Wyklady/W14_Wbudowane...FreeRTOS •FreeRTOS jest systemem czasu rzeczywistego przeznaczonym dla urządzeń wbudowanych o dużych ograniczeniach

Techniki mikroprocesorowe

Miękkie systemy RTOS

• Miękkie systemy czasu rzeczywistego, w odróżnieniu od systemów twardych, nie mają określonego maksymalnego czasu odpowiedzi, ale gwarantują wykonanie zadania w możliwie krótkim czasie

• Zastosowania: urządzenia, w których minimalizacja czasu reakcji i odpowiedzi wpływa pozytywnie na działanie, ale niespełnienie tego wymogu nie niesie ryzyka, np. systemy multimedialne

4

Page 5: Wbudowane systemy czasu rzeczywistegolielow/PTM/Wyklady/W14_Wbudowane...FreeRTOS •FreeRTOS jest systemem czasu rzeczywistego przeznaczonym dla urządzeń wbudowanych o dużych ograniczeniach

Techniki mikroprocesorowe

Miękkie systemy RTOS

• ChibiOS/RT

• DioneOS

• FlexOS

• uCRTOS

• MicroC/OS-II

• eCOS

• QNX

• OS9

• VxWorks

• LynxOS

• Phoenix-RTOS

• iRMX

• RT-Linux

• RTKernel

• DRYOS

• Windows CE

• SCIOPTA

• Sirius RTOS

5

Page 6: Wbudowane systemy czasu rzeczywistegolielow/PTM/Wyklady/W14_Wbudowane...FreeRTOS •FreeRTOS jest systemem czasu rzeczywistego przeznaczonym dla urządzeń wbudowanych o dużych ograniczeniach

Techniki mikroprocesorowe

Prosty system RTOS dla mikrokontrolerów

• System RTOS przewidziany do działania w urządzeniu opartym na mikrokontrolerze jednoukładowym, musi spełniać szereg warunków – Zapewniać niezbędne czasy odpowiedzi w

określonych sytuacjach

– Działać stabilnie i płynnie w środowisku o bardzo ograniczonych zasobach

– Wykorzystywać specyfikę architektury urządzenia, na którym działa

6

Page 7: Wbudowane systemy czasu rzeczywistegolielow/PTM/Wyklady/W14_Wbudowane...FreeRTOS •FreeRTOS jest systemem czasu rzeczywistego przeznaczonym dla urządzeń wbudowanych o dużych ograniczeniach

Techniki mikroprocesorowe

Prosty system RTOS dla mikrokontrolerów

• Zapewniać niezbędne czasy odpowiedzi w określonych sytuacjach, to znaczy

– Wykonywać określone zadania w czasie krótszym niż dopuszczalny czas przewidziany na te zadania , to jest gwarantującym poprawne działanie urządzenia i eliminującym ryzyko takich anomalii jak utrata danych, przyjęcie przez urządzenie niedozwolonego stanu lub jego uszkodzenie

7

Page 8: Wbudowane systemy czasu rzeczywistegolielow/PTM/Wyklady/W14_Wbudowane...FreeRTOS •FreeRTOS jest systemem czasu rzeczywistego przeznaczonym dla urządzeń wbudowanych o dużych ograniczeniach

Techniki mikroprocesorowe

Prosty system RTOS dla mikrokontrolerów

• Działać stabilnie i płynnie w środowisku o bardzo ograniczonych zasobach, czyli m.in.

– Nie dopuszczać do przekroczenia przez zadanie dostępnego przewidzianego (dostępnego) czasu procesora, tak by powodować opóźnień w wykonywaniu innych danych, mogących spowodować brak reakcji na zdarzenie lub utratę danych

– Zarządzać dostępną pamięcią RAM w sposób uniemożliwiający jej przepełnienie, a tym samym awarię systemu

8

Page 9: Wbudowane systemy czasu rzeczywistegolielow/PTM/Wyklady/W14_Wbudowane...FreeRTOS •FreeRTOS jest systemem czasu rzeczywistego przeznaczonym dla urządzeń wbudowanych o dużych ograniczeniach

Techniki mikroprocesorowe

Prosty system RTOS dla mikrokontrolerów

• Wykorzystywać specyfikę architektury urządzenia, na którym działa, czyli m.in. – Wykorzystywać obecność mechanizmów

sprzętowych umożliwiających poprawienie działania, zmniejszenie obciążenia i zwiększenie stabilności

– Uwzględniać braki i ograniczenia mechanizmów sprzętowych, wykorzystywanych powszechnie na innych platformach do wykonywania określonych zadań

9

Page 10: Wbudowane systemy czasu rzeczywistegolielow/PTM/Wyklady/W14_Wbudowane...FreeRTOS •FreeRTOS jest systemem czasu rzeczywistego przeznaczonym dla urządzeń wbudowanych o dużych ograniczeniach

Techniki mikroprocesorowe

Projektowanie prostego RTOS

• Jakie są zadania, które są wykonywane przez cały czas (np. obsługa interfejsu użytkownika)?

• Ile zasobów zajmują te zadania?

• Jakie zadania (obsługa zdarzeń) pojawiają się okresowo/losowo?

• Ile maksymalnie razy w jednostce czasu może pojawić się każde z tych zadań?

• Ile zasobów zajmie obsługa pojedynczej instancji każdego takiego zadania?

10

Page 11: Wbudowane systemy czasu rzeczywistegolielow/PTM/Wyklady/W14_Wbudowane...FreeRTOS •FreeRTOS jest systemem czasu rzeczywistego przeznaczonym dla urządzeń wbudowanych o dużych ograniczeniach

Techniki mikroprocesorowe

Projektowanie prostego RTOS

• Jakie są priorytety tych zadań?

• Czy terminowe wykonie któregoś z nich jest istotniejsze dla poprawnego działania urządzenia niż pozostałych?

• Czy niewykonanie zadania określonego typu może doprowadzić do niedopuszczalnych anomalii w działaniu urządzenia?

11

Page 12: Wbudowane systemy czasu rzeczywistegolielow/PTM/Wyklady/W14_Wbudowane...FreeRTOS •FreeRTOS jest systemem czasu rzeczywistego przeznaczonym dla urządzeń wbudowanych o dużych ograniczeniach

Techniki mikroprocesorowe

Asynchroniczność w prostych RTOS

• Większość prostych mikrokontrolerów jednoukładowych nie umożliwia/umożliwia w bardzo ograniczonym stopniu implementację podziału czasu, wieloprogramowości i podobnych mechanizmów znanych z „pełnowartościowych” platform

• Istnieje jednak możliwość zapewnienia w pewnym zakresie asynchroniczności wykonywanych zadań

12

Page 13: Wbudowane systemy czasu rzeczywistegolielow/PTM/Wyklady/W14_Wbudowane...FreeRTOS •FreeRTOS jest systemem czasu rzeczywistego przeznaczonym dla urządzeń wbudowanych o dużych ograniczeniach

Techniki mikroprocesorowe

Asynchroniczność na przykładzie AVR

• Najprostszym sposobem zapewnienia namiastki wieloprogramowości w mikrokontrolerach AVR jest wykorzystanie przerwań:

– Pochodzenia wewnętrznego, zgłaszanych np. przez timery przy przepełnieniu lub zgodności

– Pochodzenia zewnętrznego, zgłaszanych przez moduły komunikacyjne lub porty INTx lub PCIx

• Można też zrealizować podział czasu w pętli głównej

13

Page 14: Wbudowane systemy czasu rzeczywistegolielow/PTM/Wyklady/W14_Wbudowane...FreeRTOS •FreeRTOS jest systemem czasu rzeczywistego przeznaczonym dla urządzeń wbudowanych o dużych ograniczeniach

Techniki mikroprocesorowe

Wykorzystanie przerwań

• Przerwania pozwalają na szybką obsługę zdarzenia

• Przerwania zapewniają wywłaszczanie zrealizowane sprzętowo, zgodnie tabelą priorytetów przerwań

• Nie ma dwóch przerwań o tym samym priorytecie

• Priorytety przerwań nie mogą zostać zmienione

14

Page 15: Wbudowane systemy czasu rzeczywistegolielow/PTM/Wyklady/W14_Wbudowane...FreeRTOS •FreeRTOS jest systemem czasu rzeczywistego przeznaczonym dla urządzeń wbudowanych o dużych ograniczeniach

Techniki mikroprocesorowe

Wykorzystanie przerwań

• W przypadku wykorzystania przerwań istnieje ryzyko wystąpienia następujących anomalii: – Ryzyko głodzenia programu z pętli głównej, polegające

na zawieszaniu jego wykonywania, a w skrajnym wypadku, na całkowitym jego zatrzymaniu

– Ryzyko zablokowania obsługi przerwań o niższym priorytecie: co prawda przerwania te zostaną obsłużone po zakończeniu obsługi przerwania o wyższym priorytecie, ale zostaną obsłużone tylko raz bez względu na liczbę ich wystąpień w momencie blokady

15

Page 16: Wbudowane systemy czasu rzeczywistegolielow/PTM/Wyklady/W14_Wbudowane...FreeRTOS •FreeRTOS jest systemem czasu rzeczywistego przeznaczonym dla urządzeń wbudowanych o dużych ograniczeniach

Techniki mikroprocesorowe

Wykorzystanie przerwań

• W przypadku wykorzystania przerwań istnieje ryzyko wystąpienia następujących anomalii:

– Ryzyko pominięcia wystąpień danego przerwania w trakcie jego obsługi spowodowane zbyt częstym jego zgłaszaniem lub zbyt długim czasem obsługi

16

Page 17: Wbudowane systemy czasu rzeczywistegolielow/PTM/Wyklady/W14_Wbudowane...FreeRTOS •FreeRTOS jest systemem czasu rzeczywistego przeznaczonym dla urządzeń wbudowanych o dużych ograniczeniach

Techniki mikroprocesorowe

Wykorzystanie pętli głównej

• Pętla główna może zostać wykorzystana do realizacji wielozadaniowości

– Bez wywłaszczania – zadania muszą być wystarczająco krótkie lub muszą samodzielnie zwalniać procesor po wykorzystaniu określonego czasu

– Z wywłaszczaniem, trudne w implementacji, brak wsparcia sprzętowego

17

Page 18: Wbudowane systemy czasu rzeczywistegolielow/PTM/Wyklady/W14_Wbudowane...FreeRTOS •FreeRTOS jest systemem czasu rzeczywistego przeznaczonym dla urządzeń wbudowanych o dużych ograniczeniach

FreeRTOS

Techniki mikroprocesorowe

FreeRTOS

18

Page 19: Wbudowane systemy czasu rzeczywistegolielow/PTM/Wyklady/W14_Wbudowane...FreeRTOS •FreeRTOS jest systemem czasu rzeczywistego przeznaczonym dla urządzeń wbudowanych o dużych ograniczeniach

Techniki mikroprocesorowe

FreeRTOS

• FreeRTOS jest systemem czasu rzeczywistego przeznaczonym dla urządzeń wbudowanych o dużych ograniczeniach na ilość posiadanych zasobów, przede wszystkim pamięci RAM

• Ze względu na swoją niezawodność i stabilność jest powszechnie wykorzystywany w rozwiązaniach przemysłowych

19

Page 20: Wbudowane systemy czasu rzeczywistegolielow/PTM/Wyklady/W14_Wbudowane...FreeRTOS •FreeRTOS jest systemem czasu rzeczywistego przeznaczonym dla urządzeń wbudowanych o dużych ograniczeniach

Techniki mikroprocesorowe

FreeRTOS

• FreeRTOS oferowany jest na zmodyfikowanej licencji GNU, umożliwiającej komercyjną dystrybucję gotowego oprogramowania bez udostępniania kodu źródłowego

• Podobnie jak inne systemy dla platform o ograniczonych zasobach, FreeRTOS jest kompilowany razem z obsługiwanymi aplikacjami

20

Page 21: Wbudowane systemy czasu rzeczywistegolielow/PTM/Wyklady/W14_Wbudowane...FreeRTOS •FreeRTOS jest systemem czasu rzeczywistego przeznaczonym dla urządzeń wbudowanych o dużych ograniczeniach

Techniki mikroprocesorowe

FreeRTOS

• FreeRTOS nie oferuje

– Wsparcia dla mechanizmu sterowników urządzeń

– Zaawansowanego zarządzania pamięcią

– Zaawansowanych algorytmów pracy schedulera

– Obsługi sieci (obsługa sieci może być zrealizowana za pomocą bibliotek trzecich)

– Obsługi kont użytkowników w jakiejkolwiek postaci

21

Page 22: Wbudowane systemy czasu rzeczywistegolielow/PTM/Wyklady/W14_Wbudowane...FreeRTOS •FreeRTOS jest systemem czasu rzeczywistego przeznaczonym dla urządzeń wbudowanych o dużych ograniczeniach

Techniki mikroprocesorowe

FreeRTOS

• FreeRTOS oferuje

– Scheduler nadzorujący wykonywania zadań

– Mechanizmy kolejkowania, umożliwiające obsługę przerwań

– Semafory i mutexy, umożliwiające kontrolę dostępu do zasobów

22

Page 23: Wbudowane systemy czasu rzeczywistegolielow/PTM/Wyklady/W14_Wbudowane...FreeRTOS •FreeRTOS jest systemem czasu rzeczywistego przeznaczonym dla urządzeń wbudowanych o dużych ograniczeniach

Techniki mikroprocesorowe

FreeRTOS

• Jedyne mechanizmy zależne od platformy obsługiwane przez system to układy licznikowe i ewentualne przerwania softwarowe (o ile dana platforma je udostępnia)

• Warstwa abstrakcji dla Pozostałych układów peryferyjnych mikrokontrolera nie jest nadzorowana przez system, dzięki czemu ograniczone zostaje zużycie zasobów na obsługę komunikacji między warstwą obsługi sprzętu i warstwą aplikacji

23

Page 24: Wbudowane systemy czasu rzeczywistegolielow/PTM/Wyklady/W14_Wbudowane...FreeRTOS •FreeRTOS jest systemem czasu rzeczywistego przeznaczonym dla urządzeń wbudowanych o dużych ograniczeniach

Techniki mikroprocesorowe

FreeRTOS

24

Page 25: Wbudowane systemy czasu rzeczywistegolielow/PTM/Wyklady/W14_Wbudowane...FreeRTOS •FreeRTOS jest systemem czasu rzeczywistego przeznaczonym dla urządzeń wbudowanych o dużych ograniczeniach

Techniki mikroprocesorowe

Wybrane platformy

• Atmel

– AVR, AVR32

– SAM3, SAM4, SAM7, SAM9, SAM D20, SAM L21

• ARM

– ARM7, ARM9, ARM Cortex-M0, ARM Cortex-M0+, ARM Cortex-M3, ARM Cortex-M4, ARM Cortex-A

• Intel

– X86, 8052

• IBM

– PPC405, PPC404

• PIC

– PIC18, PIC24, dsPIC, PIC32

• NXP

– LPC1000, LPC2000, LPC4300

• STMicroelectronics

– STM32, STR7

25

Page 26: Wbudowane systemy czasu rzeczywistegolielow/PTM/Wyklady/W14_Wbudowane...FreeRTOS •FreeRTOS jest systemem czasu rzeczywistego przeznaczonym dla urządzeń wbudowanych o dużych ograniczeniach

Techniki mikroprocesorowe

Wybrane elementy FreeRTOS

• Scheduler

• Zadania

• Kolejki

• Semafory i mutexy

26

Page 27: Wbudowane systemy czasu rzeczywistegolielow/PTM/Wyklady/W14_Wbudowane...FreeRTOS •FreeRTOS jest systemem czasu rzeczywistego przeznaczonym dla urządzeń wbudowanych o dużych ograniczeniach

Techniki mikroprocesorowe

Scheduler

• Scheduler (wywłaszczający lub niewywłaszczający) systemu odpowiada za kontrolę wykonywania zadań i zarządza przydziałem czasu procesora

• Podstawową jednostką czasu jest tick, wynoszący zwykle 1-10ms

• Scheduler systemu FreeRTOS obsługuje priorytety zadań

27

Page 28: Wbudowane systemy czasu rzeczywistegolielow/PTM/Wyklady/W14_Wbudowane...FreeRTOS •FreeRTOS jest systemem czasu rzeczywistego przeznaczonym dla urządzeń wbudowanych o dużych ograniczeniach

Techniki mikroprocesorowe

Scheduler

• Operacje na zadaniu wpierane przez scheduler

– Utworzenie i usunięcie

– Zawieszenie i wznawianie

– Opóźnienie wykonywania

28

Page 29: Wbudowane systemy czasu rzeczywistegolielow/PTM/Wyklady/W14_Wbudowane...FreeRTOS •FreeRTOS jest systemem czasu rzeczywistego przeznaczonym dla urządzeń wbudowanych o dużych ograniczeniach

Techniki mikroprocesorowe

Zadania

• Zadania są podstawową strukturą FreeRTOS

• Są to zazwyczaj funkcje zawierające nieskończone pętle programowe

• Wykonywanie zadań jest nadzorowane przez scheduler

• Każde zadanie posiada swój własny stos, priorytet oraz opcjonalnie handler

29

Page 30: Wbudowane systemy czasu rzeczywistegolielow/PTM/Wyklady/W14_Wbudowane...FreeRTOS •FreeRTOS jest systemem czasu rzeczywistego przeznaczonym dla urządzeń wbudowanych o dużych ograniczeniach

Techniki mikroprocesorowe

Zadania

• Elementy zadania – Stos – obszar pamięci przechowujący aktualny

stan zadania, jego rozmiar musi być zadeklarowany dla każdego zadania osobno

– Priorytet – liczba naturalna decydująca o czasie procesora, który zostanie przyznany zadaniu i po przekroczeniu którego zadanie zostanie wywłaszczone przez scheduler

– Handler – obiekt reprezentujący zadanie, pozwala na zarządzanie zadaniem przez inne zadanie

30

Page 31: Wbudowane systemy czasu rzeczywistegolielow/PTM/Wyklady/W14_Wbudowane...FreeRTOS •FreeRTOS jest systemem czasu rzeczywistego przeznaczonym dla urządzeń wbudowanych o dużych ograniczeniach

Techniki mikroprocesorowe

Tworzenie zadania

portBASE_TYPE xTaskCreate(

pdTASK_CODE pvTaskCode,

const portCHAR * const pcName,

unsigned portSHORT usStackDepth,

void *pvParameters,

unsigned portBASE_TYPE uxPriority,

xTaskHandle *pvCreatedTask

); 31

Page 32: Wbudowane systemy czasu rzeczywistegolielow/PTM/Wyklady/W14_Wbudowane...FreeRTOS •FreeRTOS jest systemem czasu rzeczywistego przeznaczonym dla urządzeń wbudowanych o dużych ograniczeniach

Techniki mikroprocesorowe

Tworzenie zadania

pvTaskCode – wskaźnik do funkcji stanowiącej zadanie

pcName – nazwa zadania (opcjonalna)

usStackDepth – wielkość stosu

pvParameters – opcjonalne parametry, które zostaną przekazane do kodu zadania

uxPriority – priorytet zadania

pvCreatedTask – opcjonalny wskaźnik do handlera

32

Page 33: Wbudowane systemy czasu rzeczywistegolielow/PTM/Wyklady/W14_Wbudowane...FreeRTOS •FreeRTOS jest systemem czasu rzeczywistego przeznaczonym dla urządzeń wbudowanych o dużych ograniczeniach

Techniki mikroprocesorowe

Kolejki

• Kolejki są podstawowym mechanizmem umożliwiającym wymianę danych między zadaniami

33

Page 34: Wbudowane systemy czasu rzeczywistegolielow/PTM/Wyklady/W14_Wbudowane...FreeRTOS •FreeRTOS jest systemem czasu rzeczywistego przeznaczonym dla urządzeń wbudowanych o dużych ograniczeniach

Techniki mikroprocesorowe

Tworzenie kolejki

xQueueHandle xQueueCreate(

unsigned portBASE_TYPE uxQueueLength,

unsigned portBASE_TYPE uxItemSize

);

uxQueueLength – długość kolejki

uxItemSize – wielkość pojedynczego obiektu

34

Page 35: Wbudowane systemy czasu rzeczywistegolielow/PTM/Wyklady/W14_Wbudowane...FreeRTOS •FreeRTOS jest systemem czasu rzeczywistego przeznaczonym dla urządzeń wbudowanych o dużych ograniczeniach

Techniki mikroprocesorowe

Wysyłanie komunikatu

portBASE_TYPE xQueueSend( xQueueHandle xQueue, const void * pvItemToQueue, portTickType xTicksToWait ); xQueue – kolejka pvItemToQueue – element do wysłania xTicksToWait – maksymalny czas oczekiwania na

umieszczenie zadania w kolejce 35

Page 36: Wbudowane systemy czasu rzeczywistegolielow/PTM/Wyklady/W14_Wbudowane...FreeRTOS •FreeRTOS jest systemem czasu rzeczywistego przeznaczonym dla urządzeń wbudowanych o dużych ograniczeniach

Techniki mikroprocesorowe

Odbieranie komunikatu

portBASE_TYPE xQueueReceive( xQueueHandle xQueue, void *pvBuffer, portTickType xTicksToWait ); xQueue – kolejka pvBuffer – bufor, w którym zostanie umieszczony

odebrany element xTicksToWait – maksymalny czas oczekiwania na

pojawienie się elementu gotowego do odbioru 36

Page 37: Wbudowane systemy czasu rzeczywistegolielow/PTM/Wyklady/W14_Wbudowane...FreeRTOS •FreeRTOS jest systemem czasu rzeczywistego przeznaczonym dla urządzeń wbudowanych o dużych ograniczeniach

Techniki mikroprocesorowe

Kolejki i przerwania

• FreeRTOS dostarcza funkcje do obsługi kolejek, które mogą być bezpiecznie używane w funkcji obsługującej przerwanie, nie blokując działania funkcji

– xQueueSendFromISR

– xQueueReceiveFromISR

37

Page 38: Wbudowane systemy czasu rzeczywistegolielow/PTM/Wyklady/W14_Wbudowane...FreeRTOS •FreeRTOS jest systemem czasu rzeczywistego przeznaczonym dla urządzeń wbudowanych o dużych ograniczeniach

Techniki mikroprocesorowe

Semafory

• Semafory umożliwiają synchronizację wykonywanych zadań

• Semafory udostępniane przez system FreeRTOS mają właściwości analogiczne jak semafory w innych systemach

38

Page 39: Wbudowane systemy czasu rzeczywistegolielow/PTM/Wyklady/W14_Wbudowane...FreeRTOS •FreeRTOS jest systemem czasu rzeczywistego przeznaczonym dla urządzeń wbudowanych o dużych ograniczeniach

Techniki mikroprocesorowe

Tworzenie semafora

vSemaphoreCreateBinary(

xSemaphoreHandle xSemaphore

);

xSemaphore – handler semafora

39

Page 40: Wbudowane systemy czasu rzeczywistegolielow/PTM/Wyklady/W14_Wbudowane...FreeRTOS •FreeRTOS jest systemem czasu rzeczywistego przeznaczonym dla urządzeń wbudowanych o dużych ograniczeniach

Techniki mikroprocesorowe

Ustawianie semafora

xSemaphoreTake(

xSemaphoreHandle xSemaphore,

portTickType xBlockTime

);

xSemaphore – handler semafora, który ma zostać ustawiony

xBlockTime – maksymalny czas liczony w tickach schedulera przewidziany na ustawienie semafora

40

Page 41: Wbudowane systemy czasu rzeczywistegolielow/PTM/Wyklady/W14_Wbudowane...FreeRTOS •FreeRTOS jest systemem czasu rzeczywistego przeznaczonym dla urządzeń wbudowanych o dużych ograniczeniach

Techniki mikroprocesorowe

Zwolnienie semafora

xSemaphoreGive(

xSemaphoreHandle xSemaphore

);

xSemaphore – handler semafora przewidzianego do zwolnienia

41

Page 42: Wbudowane systemy czasu rzeczywistegolielow/PTM/Wyklady/W14_Wbudowane...FreeRTOS •FreeRTOS jest systemem czasu rzeczywistego przeznaczonym dla urządzeń wbudowanych o dużych ograniczeniach

Techniki mikroprocesorowe

Semafory i przerwania

• Funkcja zwalniająca semafor posiada swój odpowiednik wykorzystywany wewnątrz funkcji obsługujących przerwania

– xSemaphoreGiveFromISR

42

Page 43: Wbudowane systemy czasu rzeczywistegolielow/PTM/Wyklady/W14_Wbudowane...FreeRTOS •FreeRTOS jest systemem czasu rzeczywistego przeznaczonym dla urządzeń wbudowanych o dużych ograniczeniach

Techniki mikroprocesorowe

Komponenty trzecie

• uIP– stos TCP/IP na licencji opensource, obecnie część systemu Contiki https://github.com/adamdunkels/uip

• lwIP – inny otwartoźródłowy stos IP, wspierający takie protokoły jak IP, ICMP, IGMP, UDP, TCP, DNS, SNMP, DHCP itp. http://savannah.nongnu.org/projects/lwip/

43

Page 44: Wbudowane systemy czasu rzeczywistegolielow/PTM/Wyklady/W14_Wbudowane...FreeRTOS •FreeRTOS jest systemem czasu rzeczywistego przeznaczonym dla urządzeń wbudowanych o dużych ograniczeniach

Techniki mikroprocesorowe

Komponenty trzecie

• wolfSSL – biblioteka na licencji GPL dostarczająca wsparcia dla SSL/TLS dla platform wbudowanych http://www.wolfssl.com/wolfSSL/Products-wolfssl.html

• FatFs – otwartoźródłowa biblioteka zapewniająca wsparcie dla systemów plików Fat12/Fat16/Fat32 (zapis i odczyt) http://elm-chan.org/fsw/ff/00index_e.html

44

Page 45: Wbudowane systemy czasu rzeczywistegolielow/PTM/Wyklady/W14_Wbudowane...FreeRTOS •FreeRTOS jest systemem czasu rzeczywistego przeznaczonym dla urządzeń wbudowanych o dużych ograniczeniach

Techniki mikroprocesorowe

Komponenty trzecie

• u8glib – biblioteka na licencji BSD umożliwiająca tworzenie interfejsów graficznych na platformach wbudowanych https://code.google.com/p/u8glib/

• M2tklib – biblioteka graficzna na licencji GPL dla platform wbudowanych http://code.google.com/p/m2tklib/

45

Page 46: Wbudowane systemy czasu rzeczywistegolielow/PTM/Wyklady/W14_Wbudowane...FreeRTOS •FreeRTOS jest systemem czasu rzeczywistego przeznaczonym dla urządzeń wbudowanych o dużych ograniczeniach

Inne systemy RTOS

Techniki mikroprocesorowe

Inne systemy RTOS

46

Page 47: Wbudowane systemy czasu rzeczywistegolielow/PTM/Wyklady/W14_Wbudowane...FreeRTOS •FreeRTOS jest systemem czasu rzeczywistego przeznaczonym dla urządzeń wbudowanych o dużych ograniczeniach

Techniki mikroprocesorowe

OpenRTOS

• Zmodyfikowana licencja FreeRTOS, której jeden z zapisów mówi, że kod systemu FreeRTOS użytego w komercyjnym projekcie musi być udostępniony (nie dotyczy do kodu nie będącego częścią dystrybucji FreeRTOS), może powodować trudności z wykorzystaniem go w projekcie o zamkniętych źródłach, zwłaszcza w sytuacji, gdy kod jakiegoś komponentu systemu został zmodyfikowany

47

Page 48: Wbudowane systemy czasu rzeczywistegolielow/PTM/Wyklady/W14_Wbudowane...FreeRTOS •FreeRTOS jest systemem czasu rzeczywistego przeznaczonym dla urządzeń wbudowanych o dużych ograniczeniach

Techniki mikroprocesorowe

OpenRTOS

• Projekt OpenRTOS firmy WITTENSTEIN High Integrity Systems bazuje na kodzie źródłowym FreeRTOS, ale jest wydawany na całkowicie komercyjnej licencji, umożliwiającej pełne zamknięcie kodu

• OpenRTOS posiada ponadto pełny support

48

Page 49: Wbudowane systemy czasu rzeczywistegolielow/PTM/Wyklady/W14_Wbudowane...FreeRTOS •FreeRTOS jest systemem czasu rzeczywistego przeznaczonym dla urządzeń wbudowanych o dużych ograniczeniach

Techniki mikroprocesorowe

SafeRTOS

• SafeRTOS jest systemem bazującym na FreeRTOS , rozwijanym przez firmę WITTENSTEIN High Integrity Systems podobnie jak OpenRTOS

• SafeRTOS przeszedł proces certyfikacji potwierdzającej, że specyfikacja systemu jest zgodna ze stanem rzeczywistym

• Firma WITTENSTEIN High Integrity Systems umożliwia również certyfikację gotowych rozwiązań opartych o SafeRTOS

49

Page 50: Wbudowane systemy czasu rzeczywistegolielow/PTM/Wyklady/W14_Wbudowane...FreeRTOS •FreeRTOS jest systemem czasu rzeczywistego przeznaczonym dla urządzeń wbudowanych o dużych ograniczeniach

Techniki mikroprocesorowe

SafeRTOS

• SafeRTOS posiada certyfikaty spełniania norm umożliwiające stosowanie go w następujących gałęziach przemysłu – Industrial (UL 1998, IEC 61508)

– Transportation/Rail (CENELEC EN 50128, IEC 61508)

– Medical (FDA 510(k), IEC 62304, IEC 60601, ISO 14971)

– Nuclear (IEC 61513, IEC 62138, ASME NQA-1 2008)

– Process (IEC 61511)

– Automotive (ISO 26262, IEC 61508)

– Aerospace (DO178B) 50