اطلاعیه

Collapse
No announcement yet.

swstack , hwstack و framesize چیست؟

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

    swstack , hwstack و framesize چیست؟

    میخواستم دوستان اگه هرچی درمورد پشته های نرم افزاری و سخت افزاری در AVR میدونن بنویسن
    ممنونم. :smile:

    #2
    پاسخ : swstack , hwstack و framesize چیست؟

    :eek: :eek: :eek: :eek:

    میشه مثنوی هزار.....
    کسی که همچین وقتی داشته باشه میشینه یه کتاب مینویسه!!!
    شما کجاشو مشکل داری؟
    تشکر لازم نیست!

    دیدگاه


      #3
      پاسخ : swstack , hwstack و framesize چیست؟

      میخوام در حدی که تو AVR (بیسیک) بدون مشکل خاصی جلو برم.
      یعنی وقتی این عبارت ها رو دیدم دست و پامو گم نکنم و بدونم دقیقا موارد مذکور چه کارایی انجام میدن.
      توی کتاب کاهه چیزی پیدا نکردم:arrow: :redface:

      دیدگاه


        #4
        پاسخ : swstack , hwstack و framesize چیست؟

        توی AVR یک مشکل طراحی وجود داره. موقعی که stack در حافظه خارجی قرار بگیره اگر وقفه ای پیش بیاد به محض اختتام روال وقفه میکرو به برنامه وقفه داده شده برنمی گرده. و اصطلاحا آدرس برگشتش رو گم میکنه. بخاطر این موضوع بعضی از کامپایلر ها من جمله کدویژن فضای پشته رو به دو قسمت یکی برای نگهداری آدرس برگشت توابع و دیگری برای یک محل موقت تفکیک میکنن و به اولی پشته سخت افزاری و به دومی پشته نرم افزاری میگن.
        اگر شما روالهایی رو استفاده میکنی که مثلا بطور بازگشتی کار میکنن یا خیلی تو در تو استفاده میشن قاعدتا باید حجم بیشتری رو به فضای پشته سخت افزاری اختصاص بدی و گرنه این محدوده معمولا حجم کمی داره. چون حدودا به ازای هر روال در عمق اجرایی برنامه بین 2 تا سه بایت و برای وقفه ها بین 4 تا 5 بایت باید حجم حداقل تخصیص داده بشه. اگر در سورس ها push و pop استفاده بشه روی این پشته کار میکنه.
        متغیر های محلی و موقت هم در پشته نرم افزاری تخصیص داده میشه.

        دیدگاه


          #5
          پاسخ : swstack , hwstack و framesize چیست؟

          دوست عزیز :
          من خودم سر این قضیه کلی مصیبت کشیدم . دست آخر تو HELP برنامه بسکام قسمت MEMORY USAGE راهنمایی کامل مربوط به محاسبه هر کدام از مقادیر رو بدست آوردم .
          تو INDEX کلمات MEMORY USAGE رو تایپ کنی یه مطلب که به زبان انگلیسی هست وجود داره . خیلی هم کامل . همین طور میتونی تو همونجا به صورت جداگانه کلمات HWSTACK$ , SWSTACK$ و FRAMESIZE$ تایپ کنی و مطلب رو به صورت کامل بخونی .
          یه راهنمایی تجربی :
          کامپایلر بسکام نمی تونه وقتی برنامه رو نوشتی و کامپایل کردی دوباره این مقادیر رو به درستی تغییر بده بهتر اینکه برنامه رو به صفحه جدیدی کپی کنی و دوباره با مقادیر جدید کامپایل کنی .

          دیدگاه


            #6
            پاسخ : swstack , hwstack و framesize چیست؟

            نوشته اصلی توسط M.MARDANI
            دوست عزیز :
            من خودم سر این قضیه کلی مصیبت کشیدم . دست آخر تو HELP برنامه بسکام قسمت MEMORY USAGE راهنمایی کامل مربوط به محاسبه هر کدام از مقادیر رو بدست آوردم .
            تو INDEX کلمات MEMORY USAGE رو تایپ کنی یه مطلب که به زبان انگلیسی هست وجود داره . خیلی هم کامل . همین طور میتونی تو همونجا به صورت جداگانه کلمات HWSTACK$ , SWSTACK$ و FRAMESIZE$ تایپ کنی و مطلب رو به صورت کامل بخونی .
            یه راهنمایی تجربی :
            کامپایلر بسکام نمی تونه وقتی برنامه رو نوشتی و کامپایل کردی دوباره این مقادیر رو به درستی تغییر بده بهتر اینکه برنامه رو به صفحه جدیدی کپی کنی و دوباره با مقادیر جدید کامپایل کنی .
            با سلام
            میتونید یک فرمول کلی برای محاسبه این مقادیر ارئه کنید ، راستش من هم یک چند وقتی دنبال این موضوع بودم اما بی نتیجه موند و نتونستم به یک فرمول ثابت برای محاسبه این مقادیر برسم

            دیدگاه


              #7
              پاسخ : swstack , hwstack و framesize چیست؟

              با سلام
              لینک زیر توضیح کاملی درباره استک نرم افزاری و سخت افزاری و فریم سایز توضیح داده است.
              http://www.mcselec.com/index.php?option=com_content&task=view&id= 286&Itemid=57

              دیدگاه

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