اطلاعیه

Collapse
No announcement yet.

سیستم عامل بی درنگ RTX برای ARM7/9 و Cortex-M

Collapse
این موضوع برجسته شده است.
X
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    #61
    پاسخ : سیستم عامل بی درنگ RTX برای ARM7/9 و Cortex-M

    2روزه دارم سرچ میکنم مطلب فارسی گیر نیاوردم انگلیسین همه زبانم خوب نیست نمیدونم کدومش به دردم میخوره کدوم نمیخوره لطفا اگه مطالبی دارین یا یه منبعی دارن معرفی کنین یا لینکشو بزارین ممنون

    دیدگاه


      #62
      پاسخ : سیستم عامل بی درنگ RTX برای ARM7/9 و Cortex-M

      نوشته اصلی توسط meh1011
      2روزه دارم سرچ میکنم مطلب فارسی گیر نیاوردم انگلیسین همه زبانم خوب نیست نمیدونم کدومش به دردم میخوره کدوم نمیخوره لطفا اگه مطالبی دارین یا یه منبعی دارن معرفی کنین یا لینکشو بزارین ممنون
      یه سوال:
      این KEIL RTX ، یوزر منوال نداره؟
      بگذارعشق خاصیت تو باشد نه رابطه خاص تو باکسی
      موفقیت پیش رفتن است نه به نقطه ی پایان رسیدن
      نلسون ماندلا

      دیدگاه


        #63
        پاسخ : سیستم عامل بی درنگ RTX برای ARM7/9 و Cortex-M

        help داره اما خیلی مرتب و منسجم نیست.

        دیدگاه


          #64
          پاسخ : سیستم عامل بی درنگ RTX برای ARM7/9 و Cortex-M

          منبع فارسی ترجمه کتاب های سیستم عامل هست. استالینگس، تننباوم ...

          این سایت مطالب آموزشی خیلی خوبی داره. حتما ببینین
          http://www.freertos.org
          https://www.linkedin.com/in/mohammadhosseini69

          http://zakhar.blog.ir

          دیدگاه


            #65
            پاسخ : سیستم عامل بی درنگ RTX برای ARM7/9 و Cortex-M

            سلام بچها
            من این سیستم عامل رو رو راه انداختم ولی متاسفانه هنگ میکنه
            تنها وقتی هنگ میکنه میخام روی پورت سریال با دستور printf اطلاعت بفرستم جالبه که اطلاعات ارسال میشه و بعد دیگه به کار ادامه نمیده البته من با شبیح ساز کیل دارم کار میکنم
            برنامه معمولی که توی پست سوم بود رو کامپایل کردم موردی نداره پورت B رو تند تند صفر یک میکنه ولی توی این برنامه متاسفانه گیر میکنه!
            دیدم نوشته بودین حافضه استک رو بیشتر کنم من که سر در نیاوردم کدوم رو بیشتر کنم
            UND_Stack_Size EQU 0x00000000
            SVC_Stack_Size EQU 0x00000080
            ABT_Stack_Size EQU 0x00000000
            FIQ_Stack_Size EQU 0x00000000
            IRQ_Stack_Size EQU 0x00000100
            USR_Stack_Size EQU 0x00000200
            ؟؟؟؟؟؟؟؟
            انجام پروژه های برنامه نویسی اندروید
            [glow=red,2,300]نرم افزار نقشه های پاور کامپیوتر اندورید[/glow]
            http://cafebazaar.ir/app/?id=com.atxdroid

            دیدگاه


              #66
              پاسخ : سیستم عامل بی درنگ RTX برای ARM7/9 و Cortex-M

              فایل configure
              فسمت task configuration
              task stack size
              https://www.linkedin.com/in/mohammadhosseini69

              http://zakhar.blog.ir

              دیدگاه


                #67
                پاسخ : سیستم عامل بی درنگ RTX برای ARM7/9 و Cortex-M

                نوشته اصلی توسط محمد حسینی
                فایل configure
                فسمت task configuration
                task stack size
                خیلی ممنون
                درست شد
                گزاشتم 1024
                انجام پروژه های برنامه نویسی اندروید
                [glow=red,2,300]نرم افزار نقشه های پاور کامپیوتر اندورید[/glow]
                http://cafebazaar.ir/app/?id=com.atxdroid

                دیدگاه


                  #68
                  پاسخ : سیستم عامل بی درنگ RTX برای ARM7/9 و Cortex-M

                  سلام برو بچ

                  من میخام با دو دستور
                  tsk_lock ();
                  tsk_unlock ();
                  کار کنم ولی متاسفانه نمیشه.
                  مشکل این هست که به دیگر تسک ها هم سر میزنه و ...
                  مگه کار این دوتا دستور این نیست که روی این تسک قفل کنه تا موقعی که به انلاگ برسه؟

                  نمونه تسک
                  __task void task2(void)
                  {
                  while(1){
                  tsk_lock ();
                  type_lcd_picture("2.BMP"
                  tsk_unlock ();
                  //os_dly_wait(1);
                  }

                  }
                  انجام پروژه های برنامه نویسی اندروید
                  [glow=red,2,300]نرم افزار نقشه های پاور کامپیوتر اندورید[/glow]
                  http://cafebazaar.ir/app/?id=com.atxdroid

                  دیدگاه


                    #69
                    پاسخ : سیستم عامل بی درنگ RTX برای ARM7/9 و Cortex-M

                    نوشته اصلی توسط محسن فاریابی
                    مگه کار این دوتا دستور این نیست که روی این تسک قفل کنه تا موقعی که به انلاگ برسه؟
                    اوهوم !
                    از این دستور تو ناحیه های بحرانی برنامه استفاده میشه. ناحیه بحرانی، قسمتی از برنامه که وقتی واردش شدیم دیگه نباید تو اجراش وقفه پیش بیاد تا اینکه کامل اجرا بشه.
                    تو هلپ کیل گفته بهتره تایمر scheduler برای مدت کوتاهی غیر بشه. نمی دونم این دستور رو تست کردم یا نه. شاید باگ داشته باشه.
                    بهرحال یه راه دیگه اینه که اولویت تسک رو موقتا بالا ببری و بعد از اینکه ناحیه بحرانی کد تموم شد دوباره اولویتش رو به حالت قبل برگردونی
                    با دستور os_tsk_prio یا os_tsk_prio_self
                    پارامترهای ورودیش رو تو هلپ کیل ببینین
                    https://www.linkedin.com/in/mohammadhosseini69

                    http://zakhar.blog.ir

                    دیدگاه


                      #70
                      پاسخ : سیستم عامل بی درنگ RTX برای ARM7/9 و Cortex-M

                      خودتون جواب خودتون رو دادین!
                      قسمتی از برنامه که وقتی واردش شدیم دیگه نباید تو اجراش وقفه پیش بیاد.
                      و روال scheduler بر اساس وقفه تایمر کار میکنه.
                      یعنی task switch انجام نمیشه.
                      پس بین این دو فراخوانی؛ فقط همین task جاری در حال اجرا هست.

                      دیدگاه


                        #71
                        پاسخ : سیستم عامل بی درنگ RTX برای ARM7/9 و Cortex-M

                        ممنون از توجهتون
                        با دستور os_tsk_prio یا os_tsk_prio_self
                        هر کار کردم نشد یا میره دیگه بر نمیگرده یا نمیره و ...
                        فکر کنم هنگ میکنه ولی به نظرم خودم بیشتر هنگ کردم انشالله فردا از دوباره شروع میکنم و ببینم چی میشه.
                        یه سوال؟
                        اگه یه زیر برنامه تعریف کنیم و توی تسک ها تعریفش نکنیم و فراخوانیش کنیم چی میشه(یعنی اولویت بندی نشه)؟

                        اقای رضا اقا درسته حق با شماست.
                        توی هلپ دیدم این هشدار رو ولی متوجه منظورش نشدم،که شما بهم فهموندین
                        ولی یه چیز دیگه من این دوتا دستور لاک و ان لاک رو توی زیر برنامه نوشتم ولی متاسفنه تاثیری نداشت و به دیگر تسک ها سر میزد؟؟؟؟

                        یه سوال دیگه
                        این دو دستور وجود دارن؟
                        OS_LOCK()
                        OS_UNLOCK()
                        z
                        اخه برای من میگه اصلا تعریف نشدن!
                        انجام پروژه های برنامه نویسی اندروید
                        [glow=red,2,300]نرم افزار نقشه های پاور کامپیوتر اندورید[/glow]
                        http://cafebazaar.ir/app/?id=com.atxdroid

                        دیدگاه


                          #72
                          پاسخ : سیستم عامل بی درنگ RTX برای ARM7/9 و Cortex-M

                          نوشته اصلی توسط reza_agha
                          خودتون جواب خودتون رو دادین!
                          قسمتی از برنامه که وقتی واردش شدیم دیگه نباید تو اجراش وقفه پیش بیاد.
                          و روال scheduler بر اساس وقفه تایمر کار میکنه.
                          یعنی task switch انجام نمیشه.
                          پس بین این دو فراخوانی؛ فقط همین task جاری در حال اجرا هست.
                          جواب چی ؟!
                          مگه مشکلش این نیست که میگه بین این دو فراخوانی تسک های دیگه هم اجرا میشن؟!

                          منم منظورم از این :
                          تو هلپ کیل گفته بهتره تایمر scheduler برای مدت کوتاهی غیر بشه.
                          استفاده از همون دو تا تابع lock بود ...

                          توی هلپ دیدم این هشدار رو ولی متوجه منظورش نشدم،که شما بهم فهموندین
                          کدوم هشدار؟ قضیه چیه بگین منم بفهمم
                          این دو دستور وجود دارن؟
                          OS_LOCK()
                          OS_UNLOCK()
                          z
                          اخه برای من میگه اصلا تعریف نشدن!
                          اینا رو از کجا آوردی؟!

                          اگه یه زیر برنامه تعریف کنیم و توی تسک ها تعریفش نکنیم و فراخوانیش کنیم چی میشه(یعنی اولویت بندی نشه)؟
                          توی تسک ها تعریفش نکنیم یعنی به عنوان تسک تعریف نشه؟ خب میشه یه سابروتین و فقط میشه از تو یکی از تسک ها فراخوانیش کرد. هر موقع هم که فراخوانی شد مثل اینه که قسمتی از کد اون تسک، و اولویتش هم برابر اولویت همون تسک.
                          https://www.linkedin.com/in/mohammadhosseini69

                          http://zakhar.blog.ir

                          دیدگاه


                            #73
                            پاسخ : سیستم عامل بی درنگ RTX برای ARM7/9 و Cortex-M

                            طبق فرمایش آقای حسینی؛ یک سابروتین قسمتی از کد تسکی هست که اجراش میکنه. فارغ از اینکه توی تابع مربوط به تسک باشه یا یک روال مجزا. فقط تنها مسئله مهم در استفاده از توابع؛ اصطلاحا re-entrant بودن تابع هست. که اگر یک تابع این خصوصیت رو نداشته باشه باید حتما synchronization اعمال بشه.

                            این دو دستور وجود دارن؟
                            OS_LOCK()
                            OS_UNLOCK()
                            این دو دستور در RTX_Config.c تعریف شدن و تا جایی که یادم هست فقط مصرف داخلی دارن و معادل همون دو تا تابع محسوب میشن که وقفه تایمری رو که scheduler بر اساس اون کار میکنه رو فعال و غیر فعال میکنن.

                            بهرحال یه راه دیگه اینه که اولویت تسک رو موقتا بالا ببری و بعد از اینکه ناحیه بحرانی کد تموم شد دوباره اولویتش رو به حالت قبل برگردونی
                            متاسفانه این روش یک سوتی اساسی داره. در هنگام کار در ناحیه بحرانی فرض بر این هست که کلیه تسک ها غیر از تسک جاری نباید اجرا بشن. با بالا بردن اولویت یک تسک این تسک ممکنه نسبت به خیلی از تسک ها اولویت بالاتری پیدا کنه. اما آیا همه تسک ها دارای اولویت پایین تری نسبت به این تسک هستن؛ احتیاج به بررسی لحظه ای داره.
                            چون عمل اول یک تضمین مطلق میده ولی عمل دوم یک تضمین نسبی.

                            دیدگاه


                              #74
                              پاسخ : سیستم عامل بی درنگ RTX برای ARM7/9 و Cortex-M

                              متاسفانه این روش یک سوتی اساسی داره. در هنگام کار در ناحیه بحرانی فرض بر این هست که کلیه تسک ها غیر از تسک جاری نباید اجرا بشن. با بالا بردن اولویت یک تسک این تسک ممکنه نسبت به خیلی از تسک ها اولویت بالاتری پیدا کنه. اما آیا همه تسک ها دارای اولویت پایین تری نسبت به این تسک هستن؛ احتیاج به بررسی لحظه ای داره.
                              چون عمل اول یک تضمین مطلق میده ولی عمل دوم یک تضمین نسبی.
                              من نفهمیدم
                              توضیح بیشتر لطفا
                              https://www.linkedin.com/in/mohammadhosseini69

                              http://zakhar.blog.ir

                              دیدگاه


                                #75
                                پاسخ : سیستم عامل بی درنگ RTX برای ARM7/9 و Cortex-M

                                ببینین آقای حسینی:
                                در یک مسابقه دو ممکنه شما نسبت به خیلی ها سریعتر بدوین اما دلیل نمیشه از همه جلو بزنین. شاید یکی باشه که شما ازش سریعتر ندوین.

                                اگر بطور مطلق بخواییم اطمینان حاصل کنیم که بطور مثال تسک شماره 5 جلوی اجرای همه تسک ها رو میگیره بایستی همه تسک ها شناسایی بشن و اولویت پایینتری نسبت به تسک 5 بعد از ارتقاء اولویت پیدا کنن تا تسک شماره 5 جلوی اجرای بقیه رو بگیره. تازه این هم منوط به شرایطی میشه. مثلا تسک شماره 5 خودش رو در وضعیتی قرار نده که scheduler ناچار بشه وقت به تسک های دیگه بده. مثلا wait کردن برای اختتام عمل DMA در هنگام دسترسی به mmc. بنا براین استفاده از اولویت برای بلوکه کردن تسک های دیگه یک امر مطلق نمیتونه باشه. و خیلی به اما و اگر های متفاوتی بستگی پیدا میکنه. اما مکانیسم هایی که scheduler رو از کار میندازن بطور مطلق باعث عدم کارکرد بقیه تسک ها میشن. تازه این هم تسک هایی هستن که توسط scheduler مدیریت میشن و نه توسط روال های دیگر وقفه.

                                دیدگاه

                                لطفا صبر کنید...
                                X