اطلاعیه

Collapse
No announcement yet.

تنظیم مقدار STACK در Atmel Studio 6!

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

    تنظیم مقدار STACK در Atmel Studio 6!

    سلام.
    من یه پروژه با Mega32 کار کردم که مشکل ریست شدن غیر منتظره برنامه در جاهای مختلف اون رو نمی تونم حل کنم. آخرین چیزی که به ذهنم رسیده اینه که مقدار حافظه stack رو افزایش بدم. ولی توی AtmelStudioنمیدونم چطوری میشه اینکار رو کرد. ممنون میشم راهنماییم کنید

    #2
    پاسخ : تنظیم مقدار STACK در Atmel Studio 6!

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

    دیدگاه


      #3
      پاسخ : تنظیم مقدار STACK در Atmel Studio 6!

      نوشته اصلی توسط mori64
      سلام
      بعید میدونم مشکل از stack باشه !از فانکشن های تو در تو استفاده کردی ؟
      یا تو روتین وقفه کد زیاد گذاشتی؟
      بله در روتین وقفه تایمر صفر کدهای زیادی مجبور بودم بنویسم.

      دیدگاه


        #4
        پاسخ : تنظیم مقدار STACK در Atmel Studio 6!

        نوشته اصلی توسط ghmansoory
        بله در روتین وقفه تایمر صفر کدهای زیادی مجبور بودم بنویسم.
        خوب برای تست کد هارو برداریید تست کنید ببینید چی میشه
        از جمله ی رفتگان این راه دراز
        باز آمده ای کو که به ما گوید راز
        هان بر سر این دو راهه از روی نیاز
        چیزی نگذاری که نمی آیی باز

        دیدگاه


          #5
          پاسخ : تنظیم مقدار STACK در Atmel Studio 6!

          نوشته اصلی توسط mori64
          خوب برای تست کد هارو برداریید تست کنید ببینید چی میشه
          این کار رو انجام میدم. ولی سوال من این بود که چطوری میشه مقدار حافظه تخصیص داده شده به Stack رو در Atmel Studio 6 تغییر داد؟

          دیدگاه


            #6
            پاسخ : تنظیم مقدار STACK در Atmel Studio 6!

            خب یه هم چین چیزی وجود نداره چون توی gcc حافظه که به stack اختصاص داده میشود از قسمت بالای ram آغاز میشه و به پایین میاد و متغییر ها از پایین به بالا پس یه هم چین چیزی وجود نداره!
            در زمن اینکه داخل روتین وقفه کد زیاد نوشته شده بشه کار بسیار اشتبا هی و شما باید یک فلگ رو داخل
            وقفه فعال کنید و داخل برنامه از اون فلگ استفاده کنید.
            باز هم اگر کار ی بود که چاره ای نبود فکر میکنم این کلمات "prologue" and "epilogue" رو گوگل کنید کمکتون کنه
            داخل کانفیک پروژتون میتونید پیداشون کنید.
            از جمله ی رفتگان این راه دراز
            باز آمده ای کو که به ما گوید راز
            هان بر سر این دو راهه از روی نیاز
            چیزی نگذاری که نمی آیی باز

            دیدگاه


              #7
              پاسخ : تنظیم مقدار STACK در Atmel Studio 6!

              نوشته اصلی توسط mori64
              خب یه هم چین چیزی وجود نداره چون توی gcc حافظه که به stack اختصاص داده میشود از قسمت بالای ram آغاز میشه و به پایین میاد و متغییر ها از پایین به بالا پس یه هم چین چیزی وجود نداره!
              در زمن اینکه داخل روتین وقفه کد زیاد نوشته شده بشه کار بسیار اشتبا هی و شما باید یک فلگ رو داخل
              وقفه فعال کنید و داخل برنامه از اون فلگ استفاده کنید.
              باز هم اگر کار ی بود که چاره ای نبود فکر میکنم این کلمات "prologue" and "epilogue" رو گوگل کنید کمکتون کنه
              داخل کانفیک پروژتون میتونید پیداشون کنید.
              ممنون از توضیحات شما.
              ولی علت اینکه گفتید نباید در روتین وقفه کد زیادی نوشته بشه چیه؟ منطورتون همپوشانی روی بردار وقفه های دیگه است؟ اگه اینه که فکر نمیکنم مشکلی باشه.

              دیدگاه


                #8
                پاسخ : تنظیم مقدار STACK در Atmel Studio 6!

                سلام
                ببخشید جواب دیر شد .
                وقتی روتین وقفه اجرا میشود آدرس برنامه در حال اجرا در پشته ذخیره میشود و زمانی
                که شما در روتین وقفه فانکشن های دیگری کال میکنید دوباره آدرس در پشته ذخیره
                میشود در صورتی این کال ها زیاد انجام شود و مقدار متغیرهای در برنامه زیاد باشد
                stack overflow اتفاق میافتد. یعنی دو قسمت بالا و پایین استفاده شده در ram به هم میرسند .
                از جمله ی رفتگان این راه دراز
                باز آمده ای کو که به ما گوید راز
                هان بر سر این دو راهه از روی نیاز
                چیزی نگذاری که نمی آیی باز

                دیدگاه

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