اطلاعیه

Collapse
No announcement yet.

تنظیم مقدار Stack در Atmelstudio ؟

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

    تنظیم مقدار Stack در Atmelstudio ؟

    سلام

    توی بسکام برای درست کارکردن توابع باید گزینه های زیر رو مقدار دهی میکردیم
    [code=vb]$hwstack = 128 $swstack = 128 $framesize = 512 [/code]

    توی Atmelstudio آیا نیاز هست که یه همچین مواری مقدار دهی بشه ؟
    تنها چیزی که پیدا کردام تو قسمت Memory Setting >> Initial Stack Address هست که با مقدار دهی فرضی 0x100 میکرو xmega128a1 قاطی کرد


    #2
    پاسخ : تنظیم مقدار Stack در Atmelstudio ؟

    در GCC مقداردهی به این موارد وجود ندارد و خود برنامه نویس باید مراقب مواردی مثل Overflow شدن Stack و میزان استفاده متغیرها از حافظه Ram و ... باشد. مقدار اشاره گر Stack توسط کامپایلر برابر آخرین آدرس Ram مقداردهی می شود (با اینکه در XMEGA این عمل به صورت سخت افزاری انجام می شود) و شما در Memory Setting مقدار آن را برابر آدرس 256 قرار دادید که مطمئنا مشکل ساز هست. در AVR Libc به قسمت Memory Areas and Using malloc مراجعه کنید.
    گاهی افرادی به موفقیت های بزرگ می رسند، تنها به این دلیل ساده که نمی دانند کاری که به آن دست زده اند بسیار دشوار، بلکه غیر ممکن است.

    دیدگاه


      #3
      پاسخ : تنظیم مقدار Stack در Atmelstudio ؟

      اگه منظور شما رو درست متوجه شده باشم یعنی فرضا اگه تو یه برنامهای مقدار رم مورد استفاده توسط برنامه ای که نوشتیم مثلا 2 کیلو بایت باشه و میکرو 8 کیلو بایت رم داشته باشه بقیه اون 6 کیلو برای Stack بصورت خودکار در نظر گرفته میشه درسته؟

      آیا آدرس برگشت از توابع و آدرس متغییر های موقت همگی در همین فضای Stack ذخیره میشه ؟

      یه سوال دیگه avrstudio برای متقغییر های که تو برنامه استفاده میشه آیا فایل گزارشی ایجاد میکنه؟

      دیدگاه


        #4
        پاسخ : تنظیم مقدار Stack در Atmelstudio ؟

        پاسخ هر سه سوال مثبت هست. در Solution Explorer در پوشه Output Files فایلهایی هم نام با پروژه و با پسوندهای متفاوت وجود دارند که فایل با پسوند map. فایل مورد نظر شماست. در قسمتهای انتهایی فایل که با data. و bss. و COMMON شروع می شوند نام و اندازه و آدرس متغیرها در دسترس هست.
        گاهی افرادی به موفقیت های بزرگ می رسند، تنها به این دلیل ساده که نمی دانند کاری که به آن دست زده اند بسیار دشوار، بلکه غیر ممکن است.

        دیدگاه

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