اطلاعیه

Collapse
No announcement yet.

>>>مهم<<<|>>>اولویت وقفه ها<<<|>>>مهم<<<

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    >>>مهم<<<|>>>اولویت وقفه ها<<<|>>>مهم<<<

    سلام دوستان من یه سوال در مورد وقفه ها و اولویت اون ها داشتم

    سوال اینه :اگه یه وقفه کم اولویت در حال اجرا باشه و مثلا 2 ثانیه طول میکشه و در بین این 2 ثانیه (مثلا ثانیه 1) یه وقفه با اولویت بالا تر رخ بده
    توی avr به اینصورت است که وقفه دوم اصلا اجرا نمیشه (حتی اگر اولویت داشته باشه) و cpu ادامه کار خودشو میکنه و وقفه اول رو تموم میکنه و بعد از اتمام اون منتظر وقفه جدید میمونه . درواقع انگار اصلا وقفه شماره 2 رخ نداده

    میخاستم ببینم که توی arm هم به همین صورت است ؟ آخه شنیدم این موضوع توی میکرو های مختلف ، مختلف است و هر کدوم از میکرو ها توی این شرایط به یه روش متفاوتی عمل میکنن . البته حدس خودم اینه که arm هم شبیه avr باشه

    اگه این موضوع توی خانواده های مختلف arm با هم فرق داره لطفا اونو هم ذکر کنید

    خواهشا اساتید جواب بدن یا کسایی که به صحت پاسخشون صد در صد یقین دارند .لطفا !
    *****براي آدمي بهتر است که اصلا به دنيا نيايد تا اينکه بيايدو هيچ تاثيري نگذارد *****
    ناپلئون بناپارت

    #2
    پاسخ : &gt;&gt;&gt;مهم&lt;&lt;&lt;|&gt;&gt;&gt;اولویت وقفه ها&lt;&lt;&lt;|&gt;&gt;&gt;مهم&lt;&lt;&lt;

    سلام . خیر توی arm خانواده lpc17xx این قابلیت وجود دارد .
    یعنی این میکروها از قابلیت &quot; کنترل کننده وقفه ی برداری تو در تو &quot; NVIC &quot; بهره می برند . یعنی یک وقفه با الویت بالاتر می تونه وقفه با الویت پایین رو قبضه یا لغو کنه .
    چه زشت است کوچکي به هنگام نياز و سرکشي به هنگام بي نيازي ...

    دیدگاه


      #3
      پاسخ : &gt;&gt;&gt;مهم&lt;&lt;&lt;|&gt;&gt;&gt;اولویت وقفه ها&lt;&lt;&lt;|&gt;&gt;&gt;مهم&lt;&lt;&lt;

      نوشته اصلی توسط dvilla1992
      سلام . خیر توی arm خانواده lpc17xx این قابلیت وجود دارد .
      یعنی این میکروها از قابلیت &quot; کنترل کننده وقفه ی برداری تو در تو &quot; NCIC &quot; بهره می برند . یعنی یک وقفه با الویت بالاتر می تونه وقفه با الویت پایین رو قبضه یا لغو کنه .
      ممنون ولی اگه شما این موضوع رو بلد نبودی و یکی به اینصورت که شما جواب دادی ، جواب میداد یاد میگرفتی ؟
      من خوب متوجه نشدم لطفا کامل تر جواب بدید
      یعنی قبضه میکنه و بعد از انجام وقفه با اولویت بالاتر دوباره به وقفه با اولویت کم تر میره و ادامه اونو انجام میده ؟ یا اول وای میسته که وقفه کم ارزش تموم شه بعدا میپره توی وقفه دوم ؟
      *****براي آدمي بهتر است که اصلا به دنيا نيايد تا اينکه بيايدو هيچ تاثيري نگذارد *****
      ناپلئون بناپارت

      دیدگاه


        #4
        پاسخ : &gt;&gt;&gt;مهم&lt;&lt;&lt;|&gt;&gt;&gt;اولویت وقفه ها&lt;&lt;&lt;|&gt;&gt;&gt;مهم&lt;&lt;&lt;

        یه اصلاح کنم . NCIC نبود منظورم NVIC بود .
        عذر می خوام دوست عزیز .
        توی این خاتواده ، وقفه ها دارای یک شماره گروه الویت هستند و یک شماره برای زیر الویت . مثلا واسه EXT0 می تونیم گروه الویت 0 و زیر الویت 2 بدهیم .
        تا اونجایی که می دونم 2 نوع وقفه ها رو کنترل میکنه :
        1 : tail chaining : تو این روش وقفه ها شماره گروه الویتشون یکی هست ولی زیر الویتشون متقاوت
        مثلا EXT0 دارای گروه الویت 0 و زیر الویت 2 و EXT3 دارای گروه الویت 0 و زیر الویت 1 باشه . اگه در حین رخ دادن EXT0 اون EXT3 رخ بده باید EXT3 اجرا بشه چون زیر الویت بیشتره . ولی تو این حالت EXT3 نمی تونه حق تقدم رو از EXT0 بگیره

        2 : late arriving : مثلا EXT0 گروه الویت 0 و زیر الویت 0 باشه و EXT3 گروه الویت 1 و زیر الویت 0 باشه . اگه زمانی که EXT3 رخ می ده EXT.0 بیاد ، چون گروه الویتش
        بالاتره، EXT3 قبضه می شه تا EXT0 اجرا بشه .

        ببخشید اگه یکم گنگ بود
        چه زشت است کوچکي به هنگام نياز و سرکشي به هنگام بي نيازي ...

        دیدگاه


          #5
          پاسخ : &gt;&gt;&gt;مهم&lt;&lt;&lt;|&gt;&gt;&gt;اولویت وقفه ها&lt;&lt;&lt;|&gt;&gt;&gt;مهم&lt;&lt;&lt;

          نه دستت درد نکنه الان بهتر متوجه شدم
          ببین درسته ؟ اگه دوتا وقفه داشته باشیم که هر دوتا توی یک گروه اولویت باشند اما زیر اولویت اونا با هم فرق داشته باشن مثل avr وقفه با اولویت نمیتونه وقفه کم اولویت رو کنار بزنه اما اگر از لحاظ گروه اولویت متفاوت باشند اون وقفه ای که توی گروه با اولویت بیشتر است میتونه حتی وسط وقفه ی کم اولویت هم فعال شه و انجام شه و بعد از اتمام اون دوباره ادامه وقفه کم اولویت اجرا میشه
          درست گفتم ؟

          این تنظیمات توسط چه رجیستر هایی صورت میپذیره ؟
          *****براي آدمي بهتر است که اصلا به دنيا نيايد تا اينکه بيايدو هيچ تاثيري نگذارد *****
          ناپلئون بناپارت

          دیدگاه


            #6
            پاسخ : &gt;&gt;&gt;مهم&lt;&lt;&lt;|&gt;&gt;&gt;اولویت وقفه ها&lt;&lt;&lt;|&gt;&gt;&gt;مهم&lt;&lt;&lt;

            آره . درسته

            مثال های زیادی هست . اگه از CMSIS استفاده کنی که فقط تابع ها رو فراخوانی می کنی . مثلا

            کد:
             NVIC_SetPriorityGrouping(4) 
            NVIC_SetpPriority(EINT0_IRQn,0)
            ولی رجیسترهاس :
            ICER0,1
            ICPR0,1
            IPR0-8
            IABR0,1
            STIR
            چه زشت است کوچکي به هنگام نياز و سرکشي به هنگام بي نيازي ...

            دیدگاه


              #7
              پاسخ : &gt;&gt;&gt;مهم&lt;&lt;&lt;|&gt;&gt;&gt;اولویت وقفه ها&lt;&lt;&lt;|&gt;&gt;&gt;مهم&lt;&lt;&lt;

              دمت گرم

              یه سوال کوچیک دیگه :
              من میخام خودم یه هدر بزنم که مستقیم از پورت usb پروگرم شه
              دقیقا چ سخت افزاری برای این کار لازم هست؟
              عکسی ، شماتیکی ، مطلبی چیزی داری که کمکم کنه ؟
              راستی بی زحمت اینم مثل قبلی خوب جواب بده
              ممنون
              *****براي آدمي بهتر است که اصلا به دنيا نيايد تا اينکه بيايدو هيچ تاثيري نگذارد *****
              ناپلئون بناپارت

              دیدگاه


                #8
                پاسخ : &gt;&gt;&gt;مهم&lt;&lt;&lt;|&gt;&gt;&gt;اولویت وقفه ها&lt;&lt;&lt;|&gt;&gt;&gt;مهم&lt;&lt;&lt;

                خب اگه بخوای با پورت usb پروگرام کنی 2 تا راه داری :
                1 : از یه مبدل سریال به usb استفاده کنی . نقشه ساختشم زیاد هست . می تونی از ft232rl استفاده کنی . البته تو فروشگاه چندتا مبدل داره



                اونوقت راحت می تونی با پورت سریال پروگرامش کنی .
                2 : می تونی از بوت لودر استفاده کنی ، که تو شماتیک هدر برد فروشگاه ، و انجمن هست . بعضی از دوستانم pcb ش رو زده بودند .
                چه زشت است کوچکي به هنگام نياز و سرکشي به هنگام بي نيازي ...

                دیدگاه


                  #9
                  پاسخ : &gt;&gt;&gt;مهم&lt;&lt;&lt;|&gt;&gt;&gt;اولویت وقفه ها&lt;&lt;&lt;|&gt;&gt;&gt;مهم&lt;&lt;&lt;

                  من اونو دیدم (منظورم همون روش بوت لودره)

                  دوتا فیوز داره یه تعداد مقاومت و ......

                  سوالم اینه که حداقل چه سخت افزاری میخاد؟
                  فک میکنم اون هدر بورده یه چیزایی رو باسه امنیت یا جلوگیری آسیب دیدن میکرو گذاشتن

                  اگ + و _ یو اس بی رو مستقیم به پایه های usb میکرو وصل کنم جواب نمیده؟
                  *****براي آدمي بهتر است که اصلا به دنيا نيايد تا اينکه بيايدو هيچ تاثيري نگذارد *****
                  ناپلئون بناپارت

                  دیدگاه


                    #10
                    پاسخ : &gt;&gt;&gt;مهم&lt;&lt;&lt;|&gt;&gt;&gt;اولویت وقفه ها&lt;&lt;&lt;|&gt;&gt;&gt;مهم&lt;&lt;&lt;

                    یه سوال مسخره :
                    تو تاپیکا که میگشتم همش دیدم نوشتن CMSIS
                    نمیدونم به چه معنایی هست؟
                    یه توضیح کوچیک در این رابطه میدی ؟
                    ببخشید از این سوالا میکنم تازه آشنا شدم با این میکرو
                    *****براي آدمي بهتر است که اصلا به دنيا نيايد تا اينکه بيايدو هيچ تاثيري نگذارد *****
                    ناپلئون بناپارت

                    دیدگاه


                      #11
                      پاسخ : &gt;&gt;&gt;مهم&lt;&lt;&lt;|&gt;&gt;&gt;اولویت وقفه ها&lt;&lt;&lt;|&gt;&gt;&gt;مهم&lt;&lt;&lt;

                      این رو ببین :
                      چه زشت است کوچکي به هنگام نياز و سرکشي به هنگام بي نيازي ...

                      دیدگاه


                        #12
                        پاسخ : &gt;&gt;&gt;مهم&lt;&lt;&lt;|&gt;&gt;&gt;اولویت وقفه ها&lt;&lt;&lt;|&gt;&gt;&gt;مهم&lt;&lt;&lt;

                        CMSIS یک واسط نرم افزاری واسه میکروهای مبتنی بر CORTEX هست . واسه کسایی که تجربه ندارن تو برنامه نویسی میکرو خیلی مفیده .
                        خلاصه بگم شما رو از درگیر کردن با رجیستر راحت می کنه . کافیه فقط تابع مناسب رو صدا بزنی
                        مثلا واسه ارسال از uart :
                        ;(UART_SendByte(LPC_UART0,a
                        دیگه کار با رجیستر TER,LCR,DLL,DLM رو نداره . یه جست و جو بزن راجعش ، خیلی مفیده واسه شما که تازه کاری !!! البته اگه با رچیستر ها کارکنی ، به نظر من خیلی بهتره !!!
                        چه زشت است کوچکي به هنگام نياز و سرکشي به هنگام بي نيازي ...

                        دیدگاه


                          #13
                          پاسخ : &gt;&gt;&gt;مهم&lt;&lt;&lt;|&gt;&gt;&gt;اولویت وقفه ها&lt;&lt;&lt;|&gt;&gt;&gt;مهم&lt;&lt;&lt;

                          نوشته اصلی توسط mash hasan
                          توی avr به اینصورت است که وقفه دوم اصلا اجرا نمیشه (حتی اگر اولویت داشته باشه)
                          تو avr اینطوری نیست . فقط پرچم وقفه سراسری بصورت خودکار غیرفعال میشه . شما داخل وقفه بلافاصله میتونی پرچم رو فعال کنی .
                          تنها موردي كه همه آدما يقين دارن خدا در حقش زیاد لطف کرده
                          داشتن عقله زيادتر از دیگر آدم ها است

                          دیدگاه


                            #14
                            پاسخ : &gt;&gt;&gt;مهم&lt;&lt;&lt;|&gt;&gt;&gt;اولویت وقفه ها&lt;&lt;&lt;|&gt;&gt;&gt;مهم&lt;&lt;&lt;

                            نوشته اصلی توسط aliila
                            تو avr اینطوری نیست . فقط پرچم وقفه سراسری بصورت خودکار غیرفعال میشه . شما داخل وقفه بلافاصله میتونی پرچم رو فعال کنی .
                            اینو میدونستم که اگر توی وقفه فعال کنی میشه ولی منظورم به صورت معمولی بود

                            ممنون از نظرت :nice:
                            *****براي آدمي بهتر است که اصلا به دنيا نيايد تا اينکه بيايدو هيچ تاثيري نگذارد *****
                            ناپلئون بناپارت

                            دیدگاه


                              #15
                              پاسخ : &gt;&gt;&gt;مهم&lt;&lt;&lt;|&gt;&gt;&gt;اولویت وقفه ها&lt;&lt;&lt;|&gt;&gt;&gt;مهم&lt;&lt;&lt;

                              نوشته اصلی توسط dvilla1992
                              این رو ببین :
                              اون خازنه یا مقاومت 1.5 کیلو به چه دردی میخورند ؟ باسه چی میزاریمشون ؟

                              اگه بخایم از این روش پروگرم کنیم vcc باید وصل باشه ؟ منظورم dip switch شماره 3 هست
                              *****براي آدمي بهتر است که اصلا به دنيا نيايد تا اينکه بيايدو هيچ تاثيري نگذارد *****
                              ناپلئون بناپارت

                              دیدگاه

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