Amaliy ish №4 Mavzu: idle vazifasi va Freertos



Download 32,62 Kb.
Sana28.05.2022
Hajmi32,62 Kb.
#613091
Bog'liq
real vaqt 4
Xatolar, Xatolar, 12-мавзу тест, 12-мавзу тест, 301, 1 4931671703433511489, Иқтисодиёт назариясидан курс иши копия, Buddaviylikning to’rt oliy хaqiqati, Азрақийлар, Жоҳилия даври ва араблар, Operatsion tizim nima, SHEVALARDA LAQABLAR ETIMOLOGIYASI VA ULARNING ISHLATILISHI MINGBULOQ, Soliyeva Sh thesis, France to ban pupils religious dress3 Cast1

MUXAMMAD AL-XORAZMIY NOMIDAGI
TOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI
SAMARQAND FILIALI

KOMPYUTER TIZIMLARI KAFEDRASI

5330501- Kompyuter injiniring ta'lim yo'nalishi

Real vaqt tizimlari” fanidan



AMALIY ISH № 4

Mavzu: IDLE vazifasi va FreeRTOS da timerga bog’liq masalalar.


Bajardi: Isayev I.
Qabul qildi: Bo’riboyev A.S.
Ishni bahosi: ___________ ball


Samarqand – 2022
LABORATORIYA ISHI №4.
IDLE vazifasi va FreeRTOS da timerga bog’liq masalalar.


Ishning maqsadi. Real vaqt operatsion tizimlarda dasturiy ta'minot taymerlari muayyan vaqt oralig'idan keyin vazifa yoki funktsiyani bajarish uchun funksionallikni ta'minlash.
Idle bu - rejalashtiruvchi ishga tushganda bo'sh turgan vazifa avtomatik ravishda yaratiladi.
Agar CPU uchun hech qanday vazifa mavjud bo'lmasa, bu vazifa bajariladi.
Vazifa o'chirilganda, u tomonidan ishlatiladigan xotira darhol bo'sh bo'lmaydi. Bu bo'sh ishda amalga oshiriladi.
Misol. Ushbu misolda biz turli xil ustuvorliklarga ega 2-vazifa yaratmoqchimiz.
Har bir vazifa bir muncha vaqt ishlaydi va keyin boshqa vazifalarni bajarishga ruxsat beruvchi bloklangan holatga o'tadi. Kutish vaqti tugagandan so'ng, rejalashtiruvchi vazifani tayyor holatga keltiradi va oxir-oqibat, agar uning ustuvorligi hozirgi bajarilayotgan vazifaga nisbatan yuqoriroq bo'lsa, uni ishga tushirish holatiga keltiradi. Loop() funktsiyasi protsessor ishlamay qolganda ishlaydi.
#include
void setup()
{
Serial.begin(9600);
Serial.println(F("In Setup function"));
/* Create two tasks with priorities 1 and 2.
* Enable the Idle Task Hook by setting configUSE_IDLE_HOOK to 1, by this the loop function can be used as Idle task*/
xTaskCreate(MyTask1, "Task1", 100, NULL, 1, NULL);
xTaskCreate(MyTask2, "Task2", 100, NULL, 2, NULL);
}
void loop()
{
// Hooked to IDle task, it will run whenever CPU is idle
Serial.println(F("Loop function"));
delay(50);
}
/* Task1 with priority 1 */
static void MyTask1(void* pvParameters)
{
while(1)
{
Serial.println(F("Task1"));
vTaskDelay(100/portTICK_PERIOD_MS);
}
}
/* Task2 with priority 2 */
static void MyTask2(void* pvParameters)
{
while(1)
{
Serial.println(F("Task2"));
vTaskDelay(150/portTICK_PERIOD_MS);
}
}
Natija. Tekshirish moslamasi o'rnatish funktsiyasidan bajarishni boshlaydi. Seriya port 9600 bod tezligida ishga tushiriladi va sozlash xabari chop etiladi.
Keyinchalik 2,1,0 ustuvorliklari bo'yicha 3-Tasks (Vazifa 1, Vazifa 2 va Ishsiz) yaratiladi. O'rnatish funksiyasining oxirida, rejalashtiruvchi/yadro boshqaruvni oladi.
Tayyor holatda 3 ta vazifa mavjud va Vazifa 2 eng yuqori ustuvorlikka ega bo'lgani uchun u birinchi bo'lib ishga tushadi va 150 ms uchun blokirovka holatiga o'tadi.
Endi 2 ta vazifa rejalashtiruvchi uchun mavjud va u Vazifa 1 ni tanlaydi, chunki u mavjud yuqoriroq vazifa hisoblanadi.
Endi Task1 biroz vaqt ishlaydi va keyin 100ms uchun bloklangan holatga o'tadi.
Protsessor Kutish vazifasidan tashqarida qoladi va u ishlay boshlaydi.
Vazifa 2 bloklangan holatda 150 ms va vazifa 1 100 ms bo'ladi. Shunday qilib, vazifa 1 avval bloklangan holatdan chiqadi.
Task1 kutish vaqti tugagandan so'ng, u Tayyor holatga keladi. Ishlamaslik vazifasi bilan solishtirganda u ko'proq ustuvorlikka ega bo'lganligi sababli, u Bekor bo'lgan vazifani oldini oladi va ishlay boshlaydi. U yana 100ms uchun bloklangan holatga o'tadi.
Endi CPU IDLE vazifasidan tashqarida qoldi va u uni ishga tushira boshlaydi.
Task2 kutish vaqti tugagandan so'ng, u Tayyor holatiga keladi. Ishlamaslik vazifasi bilan solishtirganda u ko'proq ustuvorlikka ega bo'lganligi sababli, u Bekor bo'lgan vazifani oldini oladi va ishlay boshlaydi. U yana 150ms uchun bloklangan holatga o'tadi.



Dastur kodi:

#include


void setup()
{
Serial.begin(9600);
Serial.println(F("In Setup function"));
/* Create two tasks with priorities 1 and 2.
* Enable the Idle Task Hook by setting configUSE_IDLE_HOOK to 1, by this the loop function can be used as Idle task*/
xTaskCreate(MyTask1, "Javlon", 100, NULL, 1, NULL);
xTaskCreate(MyTask3, "Oxun", 100, NULL, 1, NULL);
xTaskCreate(MyTask2, "Xusniddin", 100, NULL, 2, NULL);
}
void loop()
{
// Hooked to IDle task, it will run whenever CPU is idle
Serial.println(F("Loop function"));
delay(50);
}
/* Task1 with priority 1 */
static void MyTask1(void* pvParameters)
{
while(1)
{
Serial.println(F("Javlon"));
vTaskDelay(300/portTICK_PERIOD_MS);
}
}
static void MyTask3(void* pvParameters)
{
while(1)
{
Serial.println(F("Oxun"));
vTaskDelay(300/portTICK_PERIOD_MS);
}
}
/* Task2 with priority 2 */
static void MyTask2(void* pvParameters)
{
while(1)
{
Serial.println(F("Xusniddin"));
vTaskDelay(1000/portTICK_PERIOD_MS);
}
}


Natija




Download 32,62 Kb.

Do'stlaringiz bilan baham:




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2022
ma'muriyatiga murojaat qiling

    Bosh sahifa
davlat universiteti
ta’lim vazirligi
axborot texnologiyalari
maxsus ta’lim
zbekiston respublikasi
guruh talabasi
O’zbekiston respublikasi
nomidagi toshkent
o’rta maxsus
davlat pedagogika
toshkent axborot
texnologiyalari universiteti
xorazmiy nomidagi
rivojlantirish vazirligi
Ўзбекистон республикаси
pedagogika instituti
haqida tushuncha
таълим вазирлиги
tashkil etish
O'zbekiston respublikasi
махсус таълим
toshkent davlat
vazirligi muhammad
kommunikatsiyalarini rivojlantirish
respublikasi axborot
saqlash vazirligi
vazirligi toshkent
bilan ishlash
Toshkent davlat
fanidan tayyorlagan
uzbekistan coronavirus
sog'liqni saqlash
respublikasi sog'liqni
vazirligi koronavirus
koronavirus covid
coronavirus covid
risida sertifikat
qarshi emlanganlik
vaccination certificate
covid vaccination
sertifikat ministry
Ishdan maqsad
o’rta ta’lim
fanidan mustaqil
matematika fakulteti
haqida umumiy
fanlar fakulteti
pedagogika universiteti
moliya instituti
ishlab chiqarish
fanining predmeti