stm32f4

CMSIS-RTOS 2

RTOS, birçok program threadlarının öncelik sırasına, eş güdümle ve dönüşümlü çalıştırılmasına imkan veren bir scheduler programıdır. Threadlar arası iletişim semaforlar,sinyaller,interruptlar, muteksler ve mailbox sistemi gibi birçok RTOS nesnesi tarafından yapılır.

Herhangi bir CMSIS-RTOS API özellğine erişim için aşağıdaki başlık dosyasını eklemeliyiz.

#include<cmsis_os.h>

Bu başlık dosyası ARM tarafından CMSIS-RTOS standardının bir parçası olarak geliştirilmiştir.

Threadlar CMSIS-RTOS’un temelini oluştururlar. Threadlar C fonksiyonlarına benzeselerde aralarında bazı temel farklar vardır. C fonksiyonlarından yapmaları gereken iş bitince çıkılır. Threadlar ise sürekli çalışmaları için bir döngüye sahiptirler. Bu açıdan bakınca, treadları RTOS içinde bağımsız mini programlar olarak düşünebiliriz.

Bir RTOS programı scheduler tarafından kontrol edilen bir dizi programdan oluşur. Bu scheduler SysTick timerını kullanarak zaman temelinde periyodik bir interrupt üretir. Bu scheduler, herbir interrupt için belli bir çalışma süresi ayrılır. İlk threadtan sonuncusuna kadar tüm threadlar sırayla ve eşit sürelerde çalıştıktan sonra tekrar ilk threat çalışmaya başlar. Bu döngü threadların simultane çalışmasının temelini oluşturur.

Bir thread oluşturulurken aynı zamanda bir thread kimliği oluştururuz. Bu kimlik sayesinde thread aktşf iken threadımızı kontrol edebiliriz. Thread kimliği aşağıdaki gibi tanımlanır.

osThreadId kimlik1,kimlik2,kimlik3;

Threadların çalışma durumları hakkındaki bilgilere Thread kontrol bloklarından ulaşırız. Bir thread çalışıyorsa, diğer threadlar çalışmazlar ancak çalışmaya hazır vaziyettedirler. Bir thread çalışır(running),hazır(ready) veya inter-thread bir OSEvent gelinceye kadar engellenme durumunu ifade eden bekleme(wait) durumunda olabilir.

 

CMSIS-RTOS 2&rdquo için 1 yorum

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Google fotoğrafı

Google hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Connecting to %s

%d blogcu bunu beğendi: