اطلاعیه

Collapse
No announcement yet.

هنگ کردن برنامه

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

    #16
    پاسخ : هنگ کردن برنامه

    نوشته اصلی توسط محمد نحوی
    به چه صورت من فایل map رو در همین پست قرار دادم اگه امکان داره بفرمایید چطوری از روی این فایل میشه سایز استک رو تعیین کرد.
    در متن فایل map مصرف stack در مراحل مختلف نمایش داده می شود.
    اوژن: به معنای افکننده و شکست دهنده است
    دانایی، توانایی است-Knowledge is POWER
    برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
    وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
    قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
    اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
    ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد

    دیدگاه


      #17
      پاسخ : هنگ کردن برنامه

      با سلام
      در برنامه هایی که یک یا چند اینتراپت تایمری، دارای روتین طولانی هستند، و مثلا حتی قبل از تکمیل یک بار از روتین اینتراپت ، نوبت بعدی اجرا ی همان روتین هم فرا می رسد!
      بعضا به دلیل انباشتگی های مختلف ، شبیه وضعیت فوق رخ می دهد ، ( سایکلهای مورد نیاز در بعضی اجراهای همان اینتراپت ، آنقدر طول می کشند تا نوبت بعدی هم فرا برسد )
      من با تغییر نوع اینتراپت بین حساس به لبه و حساس به سطح
      بعضا موفق به عبور از مسئله ( نه تحلیل و حل دقیق مسئله ) شده ام.

      شاید ایجاد و کنترل یک رجیستر شمارنده به عنوان تایم لیمیت ، برای پایان اجباری روتین وقفه ، در درون بخشهای انتظاری(wait for some flags ) مسئله را حل کند.

      مثلا تایمر 0 تنظیم شده تا با هر بار رسیدن به 1500 ایجاد وقفه نموده و صفر می شود و شمارش از صفر ادامه یافته تا مجددا به 1500 برسد و ...
      در روتین وقفه در بخشهای انتظاری ، باید مقدار رجیستر تایمر صفر را نیز کنترل کنیم تا مثلا با رسیدن به 800 ، روتین وقفه را جمع و جور کنیم و خارج شویم( با درج فلگ مناسب تا در اجرای بعدی روتین ، از همین جا ادامه دهیم)
      به این ترتیب ، این روتین در حدود 800 سایکل از 1500 سایکل متوالی را می تواند مصرف کند و 700 سایکل برای سایر امور باقی می ماند.

      با سپاس
      گشتی در لاله زار
      http://www.eca.ir/forum2/index.php?topic=76138.0

      http://www.eca.ir/forum2/index.php?topic=76141

      دیدگاه


        #18
        پاسخ : هنگ کردن برنامه

        نوشته اصلی توسط Solsal
        با سلام
        در برنامه هایی که یک یا چند اینتراپت تایمری، دارای روتین طولانی هستند، و مثلا حتی قبل از تکمیل یک بار از روتین اینتراپت ، نوبت بعدی اجرا ی همان روتین هم فرا می رسد!
        بعضا به دلیل انباشتگی های مختلف ، شبیه وضعیت فوق رخ می دهد ، ( سایکلهای مورد نیاز در بعضی اجراهای همان اینتراپت ، آنقدر طول می کشند تا نوبت بعدی هم فرا برسد )
        سلام.
        من هنگام ورود و خروج از وقفه ها یک بیت رو صفر و یک می کردم. روی اسکوپ که نگاه میکردم طولانی ترین زمان اجرای روتین وقفه 2.3 میلی ثانیه بود و من زمان فراخونی این وقفه رو 3 میلی ثانیه قرار دادم.
        بنابراین مطمئن هستم که وقفه در وقفه فراخونی نمیشه. ولی اولویت این وقفه پایین هست و وقفه های با اولویت بالاتر در این وقفه فراخونی میشه که حداکثر زمانی که به زمان این وقفه افزوده میشه حدود 90 میکروثانیه هست.

        در مورد روشی هم که گفتید شبیه کاری که نیست که سیستم عامل ها انجام میدن؟
        حقیقتش من همیشه به همین روش کد مینویسم(که همینکار رو کردم و مشکل حل شد) ولی اینبار شاید یکم هم به خاطر تنبلی اینکار رو نکردم ولی اتفاقی افتاد که کنجکاوم کرد که به علتش پی ببرم.
        با سپاس
        شأن انسان در ایمان و هجرت و جهاد است و هجرت، مقدمهآ‌ی جهاد فیآ‌سبیلآ‌الله.
        هجرت، هجرت از سنگینیآ‌هاست و جاذبهآ‌هایی که تو را به خاک میآ‌چسباند.
        چکمهآ‌هایت را بپوش، رهآ‌توشهآ‌ات را بردار و هجرت کن.

        دیدگاه

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