Picproje Elektronik Sitesi

MİKRODENETLEYİCİLER => RTOS Uygulamaları => Konuyu başlatan: yamak - 22 Ağustos 2013, 16:53:25

Başlık: Round Robin Scheduling Hakkında
Gönderen: yamak - 22 Ağustos 2013, 16:53:25
Micrium'da round robin i kullanmaya çalışıyorum ama bir türlü beceremedim.Hatam nerde acaba? Yazdığım program aşağıda amacım bir ledi 1 saniyede 1 diğer ledi 5 saniyede bir söndürmek

#include "lpc17xx.h"
#include  <app_cfg.h>
#include  <bsp.h>
#include  <os.h>
#include  <os_csp.h>
#include  <csp.h>
#include  <cpu.h>
#include  <lib_def.h>


static OS_TCB  vLEDTask1TCB, vLEDTask2TCB;
static CPU_STK vLEDTask1Stk[APP_CFG_TASK_START_STK_SIZE];
static CPU_STK vLEDTask2Stk[APP_CFG_TASK_START_STK_SIZE];

extern void OS_CSP_TickInit(void);
static void vLEDTask2(void *p_arg)
{
OS_ERR err;
while (1) {
LPC_GPIO2->FIOPIN=LPC_GPIO2->FIOPIN^(1<<5);
OSTimeDlyHMSM(0u, 0u, 1u, 0u, OS_OPT_TIME_HMSM_STRICT, &err);

}
}
static void vLedTask1(void *p_arg)
{
  OS_ERR os_err;
OS_CSP_TickInit();
OSTaskCreate(   (OS_TCB      *) &vLEDTask2TCB,
(CPU_CHAR    *) "vLEDTask2",
(OS_TASK_PTR) vLEDTask2,
(void        *) 0,
(OS_PRIO) APP_CFG_TASK_START_PRIO,
(CPU_STK     *) vLEDTask2Stk,
(CPU_STK_SIZE) APP_CFG_TASK_START_STK_SIZE_LIMIT,
(CPU_STK_SIZE) APP_CFG_TASK_START_STK_SIZE,
(OS_MSG_QTY) 0u,
(OS_TICK) 0u,
(void        *) 0,
(OS_OPT) (OS_OPT_TASK_STK_CHK | OS_OPT_TASK_STK_CLR),
(OS_ERR      *) &os_err);
while(1)
{
LPC_GPIO2->FIOPIN=LPC_GPIO2->FIOPIN^(1<<1);
OSTimeDlyHMSM(0u, 0u, 5u, 0u, OS_OPT_TIME_HMSM_STRICT, &os_err);
}
}

int main(void)
{
OS_ERR   os_err,os_err2;
  BSP_PreInit();
CPU_Init();
LPC_GPIO2->FIODIR=0xFF;
LPC_GPIO2->FIOCLR=0xFF;
OSInit(&os_err);

OSSchedRoundRobinCfg ((CPU_BOOLEAN)DEF_TRUE,
                              (OS_TICK)10,
                            OS_ERR_NONE);
OSTaskCreate(   (OS_TCB      *) &vLEDTask1TCB,
(CPU_CHAR    *) "vLEDTask1",
(OS_TASK_PTR) vLedTask1,
(void        *) 0,
(OS_PRIO) APP_CFG_TASK_START_PRIO,
(CPU_STK     *) vLEDTask1Stk,
(CPU_STK_SIZE) APP_CFG_TASK_START_STK_SIZE_LIMIT,
(CPU_STK_SIZE) APP_CFG_TASK_START_STK_SIZE,
(OS_MSG_QTY) 0u,
(OS_TICK) 0u,
(void        *) 0,
(OS_OPT) (OS_OPT_TASK_STK_CHK | OS_OPT_TASK_STK_CLR),
(OS_ERR      *) &os_err);

OSStart(&os_err);
return 0;
   
}
Başlık: Ynt: Round Robin Scheduling Hakkında
Gönderen: yamak - 23 Ağustos 2013, 03:43:58
Arkadaşlar bir fikri olan yok mu?
Başlık: Ynt: Round Robin Scheduling Hakkında
Gönderen: kurumahmut - 23 Ağustos 2013, 08:13:29
micrium II kullanmadım Ama RTOS'u çalıştırabildiğine emin misin? Kullandığının mimariye düzgün port edebildin mi? OS tick timerlarını düzgün ayarlayabildin mi? Task creating işlemlerinin başarılı olup olmadığını sorguladın mı? Kullandığın pinleri output olarak ayarladın mı?

Yukardaki soruların cevabını aramalısın. Kolay Gelsin...

(Türk insanının eğitim hayatında dahi RTOS uğraşması ne kadar güzel bir ilerleme)
Başlık: Ynt: Round Robin Scheduling Hakkında
Gönderen: muhittin_kaplan - 23 Ağustos 2013, 09:12:11
ledtask1 in içerisinde mi oluşturuyorsun task2 yi
Başlık: Ynt: Round Robin Scheduling Hakkında
Gönderen: yamak - 23 Ağustos 2013, 11:50:08
Alıntı yapılan: kurumahmut - 23 Ağustos 2013, 08:13:29
micrium II kullanmadım Ama RTOS'u çalıştırabildiğine emin misin? Kullandığının mimariye düzgün port edebildin mi? OS tick timerlarını düzgün ayarlayabildin mi? Task creating işlemlerinin başarılı olup olmadığını sorguladın mı? Kullandığın pinleri output olarak ayarladın mı?

Yukardaki soruların cevabını aramalısın. Kolay Gelsin...

(Türk insanının eğitim hayatında dahi RTOS uğraşması ne kadar güzel bir ilerleme)
Hocam Söyledikleriniz hepsi düzgün çalışıyor.Çünkü preemtive mod da yapmak istediğim şeyi yaptım.
Alıntı yapılan: muhittin_kaplan - 23 Ağustos 2013, 09:12:11
ledtask1 in içerisinde mi oluşturuyorsun task2 yi
Evet hocam.
Başlık: Ynt: Round Robin Scheduling Hakkında
Gönderen: muhittin_kaplan - 23 Ağustos 2013, 13:55:18
Yamak  örneklerini incelemek gerek ama neden öyle yaptın ?
her task1 e girdiğinde task2 yeniden yaratılacak. yanlış bence

sen task2 nin oluşturulma satırlarını main in içerisine task1 in ardına yerleştirerek denesene.
Başlık: Ynt: Round Robin Scheduling Hakkında
Gönderen: kurumahmut - 23 Ağustos 2013, 14:17:38
Task1 oluşturulurken Tas2 bir kere oluşturulur ve task1 while içerisinde kalır. OS Delay ile 5 sn de bir pini 1 ile exorlamış yani toogle eder. Diğer task 1sn de bir başka bir pini toogle eder.

Oncelikle kernel hiç çalışamıyor gibi. O nedenle taskların çalışamıyor. Kod "OSStart(&os_err);" hiç gelemez diye düşünüyorum...
Başlık: Ynt: Round Robin Scheduling Hakkında
Gönderen: yamak - 23 Ağustos 2013, 14:43:27
Alıntı yapılan: muhittin_kaplan - 23 Ağustos 2013, 13:55:18
Yamak  örneklerini incelemek gerek ama neden öyle yaptın ?
her task1 e girdiğinde task2 yeniden yaratılacak. yanlış bence

sen task2 nin oluşturulma satırlarını main in içerisine task1 in ardına yerleştirerek denesene.
Hocam arkadaşın da dediği gibi task1 sürekli while döngüsü içinde kalacağı için böyle bir durum oluşmaz.
Alıntı yapılan: kurumahmut - 23 Ağustos 2013, 14:17:38
Task1 oluşturulurken Tas2 bir kere oluşturulur ve task1 while içerisinde kalır. OS Delay ile 5 sn de bir pini 1 ile exorlamış yani toogle eder. Diğer task 1sn de bir başka bir pini toogle eder.

Oncelikle kernel hiç çalışamıyor gibi. O nedenle taskların çalışamıyor. Kod "OSStart(&os_err);" hiç gelemez diye düşünüyorum...

Hocam
OSSchedRoundRobinCfg ((CPU_BOOLEAN)DEF_TRUE,
                              (OS_TICK)10,
                            OS_ERR_NONE);

satırlarını kaldırdığımda program çalışıyor.
Başlık: Ynt: Round Robin Scheduling Hakkında
Gönderen: mufitsozen - 23 Ağustos 2013, 15:30:06
sayin @yamak,

hata olarak dusundugunuz seyin ne oldugnu yazmamissiniz.

yani round-robin yapinca ne oluyor?

- led1 saniyede bir yanip sonuyor, led2 hic yanmiyormu/sonmuyormu?

yada nedir?

birde ucos-III icin program yazdiginizi varsayiyoruz değilmi?



mesaj birleştirme:: 23 Ağustos 2013, 15:48:15

Alıntı YapOSSchedRoundRobinCfg ((CPU_BOOLEAN)DEF_TRUE,
                              (OS_TICK)10,
                            OS_ERR_NONE);

yazmissiniz, ama bu fonksiyon soyle tanimlanmis

void OSSchedRoundRobinCfg (CPU_BOOLEAN en,
                                                OS_TICK dflt_time_quanta,
                                                OS_ERR *p_err)
bu satir gercekten compile ediyormu? nasil bir mesaj veriyor? OS_ERR_NONE sanki bir defined constant gibi?
kullandiginiz compiler nedir? bu satira hic degilse bir warning vs vermiyormu?


OSSchedRoundRobinCfg ((CPU_BOOLEAN)DEF_TRUE,
                              (OS_TICK)10,
                            &os_err);

yazip denermisiniz?
Başlık: Ynt: Round Robin Scheduling Hakkında
Gönderen: yamak - 23 Ağustos 2013, 16:50:11
Hocam haklısınız o kısma dikkat etmemişim.OS_ERR_NONE os.h içinde aşağıdaki gibi tanımlanmış
typedef  enum  os_err {
    OS_ERR_NONE                      =     0u,

    OS_ERR_A                         = 10000u,
    OS_ERR_ACCEPT_ISR                = 10001u,

    OS_ERR_B                         = 11000u,

    OS_ERR_C                         = 12000u,
    OS_ERR_CREATE_ISR                = 12001u,

    OS_ERR_D                         = 13000u,
    OS_ERR_DEL_ISR                   = 13001u,

    OS_ERR_E                         = 14000u,

    OS_ERR_F                         = 15000u,
    OS_ERR_FATAL_RETURN              = 15001u,

    OS_ERR_FLAG_GRP_DEPLETED         = 15101u,
    OS_ERR_FLAG_NOT_RDY              = 15102u,
    OS_ERR_FLAG_PEND_OPT             = 15103u,
    OS_ERR_FLUSH_ISR                 = 15104u,

    OS_ERR_G                         = 16000u,

    OS_ERR_H                         = 17000u,

    OS_ERR_I                         = 18000u,
    OS_ERR_ILLEGAL_CREATE_RUN_TIME   = 18001u,
    OS_ERR_INT_Q                     = 18002u,
    OS_ERR_INT_Q_FULL                = 18003u,
    OS_ERR_INT_Q_SIZE                = 18004u,

    OS_ERR_J                         = 19000u,

    OS_ERR_K                         = 20000u,

    OS_ERR_L                         = 21000u,
    OS_ERR_LOCK_NESTING_OVF          = 21001u,

    OS_ERR_M                         = 22000u,

    OS_ERR_MEM_CREATE_ISR            = 22201u,
    OS_ERR_MEM_FULL                  = 22202u,
    OS_ERR_MEM_INVALID_P_ADDR        = 22203u,
    OS_ERR_MEM_INVALID_BLKS          = 22204u,
    OS_ERR_MEM_INVALID_PART          = 22205u,
    OS_ERR_MEM_INVALID_P_BLK         = 22206u,
    OS_ERR_MEM_INVALID_P_MEM         = 22207u,
    OS_ERR_MEM_INVALID_P_DATA        = 22208u,
    OS_ERR_MEM_INVALID_SIZE          = 22209u,
    OS_ERR_MEM_NO_FREE_BLKS          = 22210u,

    OS_ERR_MSG_POOL_EMPTY            = 22301u,
    OS_ERR_MSG_POOL_NULL_PTR         = 22302u,

    OS_ERR_MUTEX_NOT_OWNER           = 22401u,
    OS_ERR_MUTEX_OWNER               = 22402u,
    OS_ERR_MUTEX_NESTING             = 22403u,

    OS_ERR_N                         = 23000u,
    OS_ERR_NAME                      = 23001u,

    OS_ERR_O                         = 24000u,
    OS_ERR_OBJ_CREATED               = 24001u,
    OS_ERR_OBJ_DEL                   = 24002u,
    OS_ERR_OBJ_PTR_NULL              = 24003u,
    OS_ERR_OBJ_TYPE                  = 24004u,

    OS_ERR_OPT_INVALID               = 24101u,

    OS_ERR_OS_NOT_RUNNING            = 24201u,
    OS_ERR_OS_RUNNING                = 24202u,

    OS_ERR_P                         = 25000u,
    OS_ERR_PEND_ABORT                = 25001u,
    OS_ERR_PEND_ABORT_ISR            = 25002u,
    OS_ERR_PEND_ABORT_NONE           = 25003u,
    OS_ERR_PEND_ABORT_SELF           = 25004u,
    OS_ERR_PEND_DEL                  = 25005u,
    OS_ERR_PEND_ISR                  = 25006u,
    OS_ERR_PEND_LOCKED               = 25007u,
    OS_ERR_PEND_WOULD_BLOCK          = 25008u,

    OS_ERR_POST_NULL_PTR             = 25101u,
    OS_ERR_POST_ISR                  = 25102u,

    OS_ERR_PRIO_EXIST                = 25201u,
    OS_ERR_PRIO                      = 25202u,
    OS_ERR_PRIO_INVALID              = 25203u,

    OS_ERR_PTR_INVALID               = 25301u,

    OS_ERR_Q                         = 26000u,
    OS_ERR_Q_FULL                    = 26001u,
    OS_ERR_Q_EMPTY                   = 26002u,
    OS_ERR_Q_MAX                     = 26003u,
    OS_ERR_Q_SIZE                    = 26004u,

    OS_ERR_R                         = 27000u,
    OS_ERR_REG_ID_INVALID            = 27001u,
    OS_ERR_ROUND_ROBIN_1             = 27002u,
    OS_ERR_ROUND_ROBIN_DISABLED      = 27003u,

    OS_ERR_S                         = 28000u,
    OS_ERR_SCHED_INVALID_TIME_SLICE  = 28001u,
    OS_ERR_SCHED_LOCK_ISR            = 28002u,
    OS_ERR_SCHED_LOCKED              = 28003u,
    OS_ERR_SCHED_NOT_LOCKED          = 28004u,
    OS_ERR_SCHED_UNLOCK_ISR          = 28005u,

    OS_ERR_SEM_OVF                   = 28101u,
    OS_ERR_SET_ISR                   = 28102u,

    OS_ERR_STAT_RESET_ISR            = 28201u,
    OS_ERR_STATE_INVALID             = 28202u,
    OS_ERR_STATUS_INVALID            = 28203u,
    OS_ERR_STK_INVALID               = 28204u,
    OS_ERR_STK_SIZE_INVALID          = 28205u,
    OS_ERR_STK_LIMIT_INVALID         = 28206u,

    OS_ERR_T                         = 29000u,
    OS_ERR_TASK_CHANGE_PRIO_ISR      = 29001u,
    OS_ERR_TASK_CREATE_ISR           = 29002u,
    OS_ERR_TASK_DEL                  = 29003u,
    OS_ERR_TASK_DEL_IDLE             = 29004u,
    OS_ERR_TASK_DEL_INVALID          = 29005u,
    OS_ERR_TASK_DEL_ISR              = 29006u,
    OS_ERR_TASK_INVALID              = 29007u,
    OS_ERR_TASK_NO_MORE_TCB          = 29008u,
    OS_ERR_TASK_NOT_DLY              = 29009u,
    OS_ERR_TASK_NOT_EXIST            = 29010u,
    OS_ERR_TASK_NOT_SUSPENDED        = 29011u,
    OS_ERR_TASK_OPT                  = 29012u,
    OS_ERR_TASK_RESUME_ISR           = 29013u,
    OS_ERR_TASK_RESUME_PRIO          = 29014u,
    OS_ERR_TASK_RESUME_SELF          = 29015u,
    OS_ERR_TASK_STK_CHK_ISR          = 29016u,
    OS_ERR_TASK_SUSPENDED            = 29017u,
    OS_ERR_TASK_SUSPEND_IDLE         = 29018u,
    OS_ERR_TASK_SUSPEND_INT_HANDLER  = 29019u,
    OS_ERR_TASK_SUSPEND_ISR          = 29020u,
    OS_ERR_TASK_SUSPEND_PRIO         = 29021u,
    OS_ERR_TASK_WAITING              = 29022u,

    OS_ERR_TCB_INVALID               = 29101u,

    OS_ERR_TICK_WHEEL_SIZE           = 29201u,

    OS_ERR_TIME_DLY_ISR              = 29301u,
    OS_ERR_TIME_DLY_RESUME_ISR       = 29302u,
    OS_ERR_TIME_GET_ISR              = 29303u,
    OS_ERR_TIME_INVALID_HOURS        = 29304u,
    OS_ERR_TIME_INVALID_MINUTES      = 29305u,
    OS_ERR_TIME_INVALID_SECONDS      = 29306u,
    OS_ERR_TIME_INVALID_MILLISECONDS = 29307u,
    OS_ERR_TIME_NOT_DLY              = 29308u,
    OS_ERR_TIME_SET_ISR              = 29309u,
    OS_ERR_TIME_ZERO_DLY             = 29310u,

    OS_ERR_TIMEOUT                   = 29401u,

    OS_ERR_TMR_INACTIVE              = 29501u,
    OS_ERR_TMR_INVALID_DEST          = 29502u,
    OS_ERR_TMR_INVALID_DLY           = 29503u,
    OS_ERR_TMR_INVALID_PERIOD        = 29504u,
    OS_ERR_TMR_INVALID_STATE         = 29505u,
    OS_ERR_TMR_INVALID               = 29506u,
    OS_ERR_TMR_ISR                   = 29507u,
    OS_ERR_TMR_NO_CALLBACK           = 29508u,
    OS_ERR_TMR_NON_AVAIL             = 29509u,
    OS_ERR_TMR_STK_INVALID           = 29510u,
    OS_ERR_TMR_STOPPED               = 29511u,

    OS_ERR_U                         = 30000u,

    OS_ERR_V                         = 31000u,

    OS_ERR_W                         = 32000u,

    OS_ERR_X                         = 33000u,

    OS_ERR_Y                         = 34000u,
    OS_ERR_YIELD_ISR                 = 34001u,

    OS_ERR_Z                         = 35000u
} OS_ERR;

Yani bu durumda OS_ERR_NONE ancak hata kontrolü yaparken kullanılabilir. Teşekkür ederim &os_err yapınca düzdi.Ama şunu da belirteyim derleyici uyarı vermedi aslında tüm suç keil'de  :P
Başlık: Ynt: Round Robin Scheduling Hakkında
Gönderen: mufitsozen - 23 Ağustos 2013, 17:38:17
Alıntı YapAma şunu da belirteyim derleyici uyarı vermedi aslında tüm suç keil'de  :P
tabi, tabi   :D

sayin @yamak en azindan bu satirda `implicit type conversion` yada benzeri bir warning vermesi lazim(sonrada run-time'da hafizadaki 0 adresine gidip fonksiyondan gelen error degerini yazmasi!!! aslinda bu daha tehlikeli, bu tip hatalara wild write diyoruz.)

Aslinda bana sorarsaniz bu satiri hic compile etmeyip error verse daha iyi. KEILin warning/error seviyeleri ayarlarinda bir hataniz var gibi. Bu yuzden farkina varmadiginiz baska yanlislarda yapabilirsiniz.

Benim nacizane tavsiyem C diline tam olarak hakim olana kadar butun warning/error seviyelerini aciniz. Her mesajida ne anlama geldigini anlayarak duzeltiniz.

Alıntı YapTeşekkür ederim &os_err yapınca düzdi
Nereyi kim duzdi! yazmamissiniz  :) Lutfen Turkce ifadelerinizede birak buraz birez (napayım ben bır muhendısım!  :P) azicik ihtimam gosteriniz. Dilimizi koruyunuz, ona iyi davraniniz.
Başlık: Ynt: Round Robin Scheduling Hakkında
Gönderen: muhittin_kaplan - 23 Ağustos 2013, 17:42:00
Alıntı Yapbirak ihtimam
Hocam Bu Da Güzeldi.

mesaj birleştirme:: 23 Ağustos 2013, 17:44:14

Müfit Hocam Hepsi Bir Yana,
Bilen Birilerinden TALEP ediyoruz Yani Bilen Birilerinin Talebesi olmak istiyoruz RTOS hakkında.
Genelden Özele bir Çalışma Planıyla Bilen Birinin Bu Cahil Cüheda (Kendi Nazarımda Yazıyorum) lara Öğretsin.
Bilen Birini Tanıyor musunuz ?
Başlık: Ynt: Round Robin Scheduling Hakkında
Gönderen: yamak - 23 Ağustos 2013, 17:55:47
Alıntı yapılan: mufitsozen - 23 Ağustos 2013, 17:38:17
tabi, tabi   :D

sayin @yamak en azindan bu satirda `implicit type conversion` yada benzeri bir warning vermesi lazim(sonrada run-time'da hafizadaki 0 adresine gidip fonksiyondan gelen error degerini yazmasi!!! aslinda bu daha tehlikeli, bu tip hatalara wild write diyoruz.)

Aslinda bana sorarsaniz bu satiri hic compile etmeyip error verse daha iyi. KEILin warning/error seviyeleri ayarlarinda bir hataniz var gibi. Bu yuzden farkina varmadiginiz baska yanlislarda yapabilirsiniz.

Benim nacizane tavsiyem C diline tam olarak hakim olana kadar butun warning/error seviyelerini aciniz. Her mesajida ne anlama geldigini anlayarak duzeltiniz.
Nereyi kim duzdi! yazmamissiniz  :) Lutfen Turkce ifadelerinizede birak ihtimam gosteriniz. Dilimizi koruyunuz, ona iyi davraniniz.
Hocam Estağfurullah kimsenin kimseyi düzdiği yok. :)
Hocam optimizasyon seviyesi 3'teyken de 0'dayken de hiçbir uyarı vermedi.

Hocam size bir sorum daha olacak bu soruyu daha öncede sormuştum ama görmemiş olabilirsiniz. Bu taskların stackte kaplayacağı alan dinamik olarak ayarlanabiliyodu.

Bu nasıl oluyo yani task'ların stackte kaplayacağı alan dinamik olarak nasıl ayarlanıyo.
Başlık: Ynt: Round Robin Scheduling Hakkında
Gönderen: mufitsozen - 23 Ağustos 2013, 18:10:51
Alıntı YapBu nasıl oluyo yani task'ların stackte kaplayacağı alan dinamik olarak nasıl ayarlanıyo.

Sayin @yamak, bu sorunuza bir kucuk fikra ile cevap vereyim.

Bir gun caminin imami vakitsiz bir zamanda camiye gelmis, birde iceri girmiski, icerden garip sesler, kikirdasmalar, gulusmeler geliyor.

Birde ne gorsun, muezzin bir kadin getirmis camiye, ikiside ciplak, curm-u meshut halindeler.

Baslamis, bagirmaya, acmis agzini, yummus gozunu. Ey bre zindik, ey bire kafir, ey bire munafik, ey bire seytanin cocugu, ey bire dinsiz, ey bre imansiz!

Muezzin, mahcup bir yandan giyinmeye calisirken, bir yandanda cevap vermis, Yok be hoca, dinsizlikten imansizliktan degil, yersizlikten yersizlikten!


Simdi, sizinde sordugunuz sorular daha detaylaninca, vede compilerin isleyisine, Real-time kavramlarina, RTOS markasina, MCU tipine filan gore olmaya baslayinca, bildigim bir cevabi bile duzgun bir sekilde cevap olarak yazmak bayagi zahmetli oluyor. Sadece soru/cevap picproje icinde yapilabilecek bir sey degil bu.

Keske, bu cilali tas devri ortamini niyazi bey, moodle filan gibi daha moderene bir ortama tasisa, virtual clasroom, interactive sessions filan yapsak,... dermisim :-[.

Gordugunuz gibi cevabi neden yazmadigimi soylemek bile bir suru zaman ve yer tuttu!  :-[

Fakat aramizda kalsin, @gerbay hem benden daha genc/enerjik, hemde daha damardan bilir bu isleri. Onu taciz etsek benim icin daha kolay olurdu!  ;)

mesaj birleştirme:: 23 Ağustos 2013, 18:16:09

Alıntı yapılan: muhittin_kaplan - 23 Ağustos 2013, 17:42:00
Hocam Bu Da Güzeldi.

mesaj birleştirme:: 23 Ağustos 2013, 17:44:14
mesajin o kismini duzelttim.
Alıntı YapTurkce ifadelerinizede birak buraz birez (napayım ben bır muhendısım!  :P) azicik ihtimam

Alıntı Yap
Müfit Hocam Hepsi Bir Yana,
Bilen Birilerinden TALEP ediyoruz Yani Bilen Birilerinin Talebesi olmak istiyoruz RTOS hakkında.
Genelden Özele bir Çalışma Planıyla Bilen Birinin Bu Cahil Cüheda (Kendi Nazarımda Yazıyorum) lara Öğretsin.
Bilen Birini Tanıyor musunuz ?

bu arada cuheda cuhela olmasin sakin? (yav, iyi be, Turk olunce bi tek Turkceye dikkat edemiyoruz, bir de arapca veya farscaya da dikkat etmek lazim geliyor iyimi?)


mesaj birleştirme:: 23 Ağustos 2013, 18:25:32

Alıntı YapMüfit Hocam Hepsi Bir Yana,
Bilen Birilerinden TALEP ediyoruz Yani Bilen Birilerinin Talebesi olmak istiyoruz RTOS hakkında.
Genelden Özele bir Çalışma Planıyla Bilen Birinin Bu Cahil Cüheda (Kendi Nazarımda Yazıyorum) lara Öğretsin.
Bilen Birini Tanıyor musunuz ?

sayin @muhittin hoca, aslinda bende yari emekli oldugumdan, bir bu konularda kitapmi yazsam diyorum, yada soyle 3-4 haftalik, bir embedded programing kursu mu hazirlasam diyorum. ama tek basima yapamiyorum.

Picproje dahil bircok kaynaktan bir cirak aradim  (cok parada veremiyorum, emekli olmam hasebiyle, hem yardimci olur hemde ogrenir diye dusunmustum) Ama kiminle konussam, ya ben ostimde gunde 40 lira yevmiye alirim diyor yada ne projesi yapacaz. gpsmi gsm mi filan diyor. Kimsenin meslegini ogrenip hakkiyla yapmaya vakti/istegi yok. Ama daha cok para nasil kazanirim diye devamli bir ugras icindeler


Siz zannederim izmirdesiniz. Bir ara bir sirket kurup izmire yerleseyim (URLA daha dogrusu) diye bir planim vardi, oda maalesef olmadi. Yakinda olsaydim yardim etmek isterdim ama, zaman ve kaynak problemi. Malum, bilgiye/tecrubeye sahip olmak ciddi bir ugras, o bilgi ve tecrubeyi baskasina aktaracak ortami, materyali, sistematigi olusturmak cok daha zor bir ugras.

Sorunuza cevap olmadi ama, soz bu hafta sonu sizin icin bir seyler dusunecegim.
Başlık: Ynt: Round Robin Scheduling Hakkında
Gönderen: muhittin_kaplan - 23 Ağustos 2013, 18:29:22
Hocam ben işi Bilmediğimden Bilen Birinin kim olduğunu bilemem, Boyut Farkından Dolayı.
Böyle bir konuya ihtiyacımız var, TALEP EDİYORUM.

o OS bu OS fark etmez. Belli bir periyotta verilebilir gibi düşünüyorum.

(Ayrıca Gençlik Yaş Almayla Alakalı Değildir.  ;) )
Başlık: Ynt: Round Robin Scheduling Hakkında
Gönderen: E_Kk - 23 Ağustos 2013, 20:19:27
Sayın Müfit hocam, Muhittin hocam çok haklı. Şu an bu konularda sizin gibi tecrübeli büyüklerimizin desteğine çok ihtiyacımız var. Böyle bir konuya el atarsanız Türkiye deki bu konulardaki kaynak eksikliğine büyük katkıda bulunmuş olursunuz. Konu biraz değişti ama Kusura bakmayın.
Başlık: Ynt: Round Robin Scheduling Hakkında
Gönderen: yamak - 23 Ağustos 2013, 21:49:50
Alıntı YapFakat aramizda kalsin, @gerbay hem benden daha genc/enerjik, hemde daha damardan bilir bu isleri. Onu taciz etsek benim icin daha kolay olurdu!   
O zaman @gerbay hocamizi buraya cagiriyoruz. Hocam bu konuya bi el atin
Başlık: Ynt: Round Robin Scheduling Hakkında
Gönderen: muhittin_kaplan - 28 Ağustos 2013, 10:07:16
Hocam,
Başlık: Ynt: Round Robin Scheduling Hakkında
Gönderen: muhittin_kaplan - 28 Ağustos 2013, 11:29:39
o bir sıkıntı, genel bir çerçeve çizebiliriz. soru cevap gidebiliriz.
Başlık: Ynt: Round Robin Scheduling Hakkında
Gönderen: berat23 - 28 Ağustos 2013, 11:30:51
bence herkesçe kabul edilen bir os üzerinden örneklerle gitsek daha doğru.
Başlık: Ynt: Round Robin Scheduling Hakkında
Gönderen: muhittin_kaplan - 28 Ağustos 2013, 12:20:30
bence bedava ve öğrenmesi kolay olmalı, elimizdeki donanımı desteklemeli (stmf4 olabilir bence)
(burada biraz hinlik yapıyorum)
Başlık: Ynt: Round Robin Scheduling Hakkında
Gönderen: E_Kk - 28 Ağustos 2013, 12:26:20
Bende berat23 e katılıyorum. Genel bir çerçeve üzerinden gidilebilir ama belli bir os ve belli bir board üzerinden gidilirse hem katılanlar arasında karışıklık olmaz hem de uygulamalar açısından iyi olur diye düşünüyorum.
Başlık: Ynt: Round Robin Scheduling Hakkında
Gönderen: berat23 - 28 Ağustos 2013, 13:04:05
ben hinlik yapmadan net konuşayım o zaman. dsp/bios üzerinden cm4 stelarisler üzerinden de gidebiliriz. veya herhangi bir ti ürünü üzerinden de gidebiliriz. bence döküman konusuda en başarılı üretici ti.
Başlık: Ynt: Round Robin Scheduling Hakkında
Gönderen: E_Kk - 28 Ağustos 2013, 13:49:57
Herkesin kolayca ulaşması ve döküman açısından sıkıntı çekmemek için beaglebone yada beagleboard olabilir. @gerbay hocam sizin aşina oldugunuz bir board varsa o daha iyi olur.
Başlık: Ynt: Round Robin Scheduling Hakkında
Gönderen: muhittin_kaplan - 28 Ağustos 2013, 14:04:10
STM de ısrarcıyım.
STM32F4 neredeyse herkesde var.
Başlık: Ynt: Round Robin Scheduling Hakkında
Gönderen: f_machine - 28 Ağustos 2013, 14:48:14
bence işlemci desteği fazla olan bir os daha mantıklı. Micrium OS veya freeRTOS seçilebilir . hem   freeRTOS adındanda anlaşılacağı gibi bedava.
Başlık: Ynt: Round Robin Scheduling Hakkında
Gönderen: berat23 - 28 Ağustos 2013, 14:52:42
demokrasi her zaman işe yaramıyor, feodal yöntemlere dönelim. madem gerbay anlatacak, os seçimi ona kalsın derm.
Başlık: Ynt: Round Robin Scheduling Hakkında
Gönderen: Erol YILMAZ - 28 Ağustos 2013, 15:10:33
Stellaris i TI bile bıraktı, onun üzerine gitmek manasız oluyor.

STM32F4 ise çok daha genel diye düşünüyorum.
Başlık: Ynt: Round Robin Scheduling Hakkında
Gönderen: muhittin_kaplan - 28 Ağustos 2013, 15:33:41
Hocalarım, özellikleri çok ahım şahım olması gerekmez bence temel olan şeyleri barındırsa genel işlemcileri desteklese ki http://scmrtos.sourceforge.net/ScmRTOS (http://scmrtos.sourceforge.net/ScmRTOS)
bu konuda iyi görünüyor. (yanlış düşünüyor olabilirim.)
bana kalsa CoOS olsun derim.
http://www.coocox.com/CoOS.htm (http://www.coocox.com/CoOS.htm)
Başlık: Ynt: Round Robin Scheduling Hakkında
Gönderen: E_Kk - 28 Ağustos 2013, 15:48:20
Ben ısrarcı değilim fakat benim oyum beaglebone ve QNX den yana.
http://www.qnx.com/partners/ti/
Başlık: Ynt: Round Robin Scheduling Hakkında
Gönderen: muhittin_kaplan - 28 Ağustos 2013, 17:33:27
BB yada RP gibi platform olursa sanki seviyeyi yükseltiriz. Buda Müşteri/Öğrenmek İsteyenleri Azaltır Kanısındayım.
Başlık: Ynt: Round Robin Scheduling Hakkında
Gönderen: E_Kk - 28 Ağustos 2013, 17:45:11
Haklısınız Muhittin hocam. Aslında gerbay hocamın en iyi hakim olduğu platform ve os olursa hem gerbay hocama fazla yük olmamış oluruz hem de daha hızlı ilerleriz gibi geliyor.
Başlık: Ynt: Round Robin Scheduling Hakkında
Gönderen: E_Kk - 30 Ağustos 2013, 14:49:26
Hocam durum nedir?
Başlık: Ynt: Round Robin Scheduling Hakkında
Gönderen: matador - 01 Eylül 2013, 00:04:12
RTOS oluştururken hangi konular önemli?

Nelere dikkat edilmeli?

Veri yapıları?

Bunların birbiri ile iletişimi?

OS'daki temel işleyiş mümkünse en ince detayına kadar?

Herhangi bir os değilde yapı anlatılsa daha güzel olmaz mı? Kalkıpta kendi rtosumu yazacağım demiyorum ama kullandığım mekanizmayı en ince detayına kadar tanırsam etkin olarak kullanabilirim.

Umarım anlatabilmişimdir.
Başlık: Ynt: Round Robin Scheduling Hakkında
Gönderen: kurumahmut - 09 Eylül 2013, 13:21:35
Bilgisayar mühendisliği mezunu arkadaşlar "işletim sistemleri" adı altında ders alırlar. Bu ders kapsamında OS ile tanışırlar. Temel kavramları öğrenmiş oluyorlar. Ancak Elektronik mezunları ya da teknik eğitim mezunu olunca bu temeli alamıyoruz. O nedenle RTOS ile uğraşmaya başlarken temel bileşenleri terimleri öğrenmek daha önemli. Bunun için bir işletim sistemi seçmeye de gerek yok. ADEOS OS üzerinden anlatımlı bir kitap okumuştum. Sonra FreeRTOS ile elimdeki boardda basit çalışmalar yapmıştım. Ancak şirketimde VxWorks ve GreenHills Integrity kullanılıyor. Bunun da üzerinde kendi geliştirdikleri bir işletim sistemi koşuyor.

Yeni işe giren arkadaşlar ya C diline çok hakim olmuyor(genelde pointer, structure ve union gibi ileri konularda takıntılar oluyor) ya da hakim olanlarda RTOS mantığını bilmiyor(Genelde kodun bir tane while(1) ve interrupt fonksiyonları şeklinde olduğunu tasarım şekli). Bu kısımların öğrenim hayatında iken aşılması diye bir konu önceden yoktu. Herkes PIC alıp servo, lcd sürerdik :) Ancak bu konuları bilme ihtiyacının doğması ve bunları araştırıp iş hayatına atılmak Türkiye için güzel bir ilerleme.

Kısaca tavsiyem insanların bir kaynak seçmesi ve temel yapıları öğrenmesi. Bunu bilen birinden dinlemekte güzel olur ancak boş bir şekilde başlanmamalı. Güzel bir kaynakta Türkçeye çevrilerek bu konuda ilerlenebilir.