NOTICE توجه: این یک موضوع قدیمی است که آخرین پست ارسالی آن مربوط به 4388 روز قبل است . لطفا فقط پاسخ ها ، سوالات و درخواست های 100 درصد مرتبط را به آن ارسال کنید و برای درخواست ها و سوالات جدید موضوع جدیدی را ایجاد کنید
نمایش نتایج: از 1 به 13 از 13

موضوع: کم آوردن فضای sram

  1. #1
    مدیر باز نشسته behnam6500 آواتار ها
    تاریخ عضویت
    Jan 2009
    نوشته ها
    801
    تشکر
    311
    تشکر شده 899 بار در 390 پست

    پیش فرض کم آوردن فضای sram

    سلام

    تو پروژه ای که دارم کار میکنم از مگا64 استفاده میکنم و sram کم اوردم.

    Data: 3931 bytes (96.0% Full)

    با winavr کار میکنم. الان نمیتونم از رم خارجی استفاده کنم و برای کار با mmc هم به خاطر حجم کم sram برنامه قاط میزنه!

    راهی سراغ دارید که این مشکل حل بشه؟
    ممنونم

  2. تشکرها از این نوشته :


  3. # ADS
    Circuit advertisement
    تاریخ عضویت
    Always
    نوشته ها
    Many
     

  4. #2
    مدیر کل انجمن ها morteza_rk آواتار ها
    تاریخ عضویت
    Apr 2009
    نام
    مرتضی رحیمی کردمحله
    نوشته ها
    2,071
    تشکر
    2,376
    تشکر شده 2,899 بار در 1,263 پست

    پیش فرض

    سلام دادا

    یکی از کاربردهای فضای Sram تخصیص فضا به متغیرهاست. اگه شما بیشتر متغیرهاتو از نوع محلی (درون تابع) تعریف کنی می تونی از فضای Sram بهتر استفاده کنی تا اینکه متغیرهات عمومی باشن.

    در انتها اگه دیدی نمیشه (تا ببینیم راهکار سایر دوستان چیه؟) مجبوری ATMega64 رو با یک ATMega128 عوض کنی. چون ترتیب پایه هاشون عین هم دیگست.
    .
    اَللّهُمَ صَلّ عَلی مُحَمَّد وَ آلِ مُحَمَّد وَ عَجّل الفَرَجَهُم


    وبلاگ شخصی من

  5. تشکرها از این نوشته :


  6. #3
    مدیر باز نشسته behnam6500 آواتار ها
    تاریخ عضویت
    Jan 2009
    نوشته ها
    801
    تشکر
    311
    تشکر شده 899 بار در 390 پست

    پیش فرض

    تا اونجایی که تونستم متغیر کم کردم و فضا رو اوردم پایین! حتا یه سری داده رو هم مستقیما با eeprom کار میکنم! (از رو ناچاری)

    مقدار sram مگا 64 و 128 یکیه! فرقی با هم ندارن!

  7. تشکرها از این نوشته :


  8. #4
    مدیر کل انجمن ها morteza_rk آواتار ها
    تاریخ عضویت
    Apr 2009
    نام
    مرتضی رحیمی کردمحله
    نوشته ها
    2,071
    تشکر
    2,376
    تشکر شده 2,899 بار در 1,263 پست

    پیش فرض

    مقدار sram مگا 64 و 128 یکیه! فرقی با هم ندارن!
    عجب شانسی داریا! الان به دیتاشیت ها نگاه کردم. مگا128 حافظه ی Eeprom بیشتر از مگا64 داره ولی Sram هر دو 2 کیلو هست.

    یه روش دیگه هم در باره ی متغیرها به ذهنم رسید! می تونی متغیرهاتو بصورت اشاره گر تعریف کنی تا بجای اینکه توی Sram ذخیره بشن ، توی حافظه ی Flash ذخیره بشن. (فکر می کنم باید اینطوری باشه)
    .
    اَللّهُمَ صَلّ عَلی مُحَمَّد وَ آلِ مُحَمَّد وَ عَجّل الفَرَجَهُم


    وبلاگ شخصی من

  9. تشکرها از این نوشته :


  10. #5
    مدیر باز نشسته behnam6500 آواتار ها
    تاریخ عضویت
    Jan 2009
    نوشته ها
    801
    تشکر
    311
    تشکر شده 899 بار در 390 پست

    پیش فرض

    حافظشون 4 کیلو هست.

    توی فلش ذخیره نمیشن! اشاره گر باز از حافظه sram استفاده میکنه! کار به جایی رسیده که از متغیر ها برای چند کـــار دارم استفاده میکنم!

    راه اندازی حافظه خارجی برای مگا 64 یا 128 چقدر زمان میبره؟ (البته الان نمیتونم استفاده کنم به خاطر کم بودن زمان و عدم دسترسی به حافظه خارجی) ولی بعدن شاید...

  11. تشکرها از این نوشته :


  12. #6
    مدیر کل انجمن ها morteza_rk آواتار ها
    تاریخ عضویت
    Apr 2009
    نام
    مرتضی رحیمی کردمحله
    نوشته ها
    2,071
    تشکر
    2,376
    تشکر شده 2,899 بار در 1,263 پست

    پیش فرض

    حافظشون 4 کیلو هست.
    چرا من امروز همه چیزو یه جور دیگه می بینم؟! از رو هم غلط می نویسم! (خنگ شدما )

    ولی باید یه راهی باشه که بشه متغیرهارو توی Flash ذخیره کرد. امکان نداره که نشه ، مخصوصا توی زبان C ، متاسفانه من C زیاد بلد نیستم. بقیه کجان پس؟ بیاید کمک!!
    .
    اَللّهُمَ صَلّ عَلی مُحَمَّد وَ آلِ مُحَمَّد وَ عَجّل الفَرَجَهُم


    وبلاگ شخصی من

  13. تشکرها از این نوشته :


  14. #7
    مدیر باز نشسته behnam6500 آواتار ها
    تاریخ عضویت
    Jan 2009
    نوشته ها
    801
    تشکر
    311
    تشکر شده 899 بار در 390 پست

    پیش فرض

    تو سی میشه از حافظه فلش کمک گرفت! توی کدویژن با عبارت flash و winavr با progmem و...

    مشکل اینجاست که به حافظه فلش هم نیاز دارم!!!!

  15. تشکرها از این نوشته :


  16. #8
    مدیرکل انجمنها agape آواتار ها
    تاریخ عضویت
    Feb 2009
    نام
    Zeus
    نوشته ها
    1,235
    تشکر
    139
    تشکر شده 2,209 بار در 846 پست

    پیش فرض

    خوب دایی جان یکی از راهکار های دیگه استفاده از malloc و free هست که اول شما میآی مثلا یک کیلو بایت رو اختصاص میدی به heap برنامه هست. ساز و کار به این صورته که شما برای عملیاتی نیاز به بافر توی یه تابع داری ، میای اونو با دستور مالوک میگیری از هیپ و بعد از اتمام کار اونو با دستور فری به سیستم بر میگردونی ، یا اگر نیاز به پاس دادن داشته باشی ، یعنی بخوای یه آرایه رو پاس بدی باز این دستورات خیلی به درد میخوره ، بعد حتی میتونی متغیرت هات رو روی یه حافظه خارجی سریال ذخیره کنی و توبعی رو برای دسترسی اونا بنویسی !

  17. کاربران : 6 تشکر کرده اند از شما agape برای ارسال این پست سودمند:


  18. #9
    مدیر باز نشسته behnam6500 آواتار ها
    تاریخ عضویت
    Jan 2009
    نوشته ها
    801
    تشکر
    311
    تشکر شده 899 بار در 390 پست

    پیش فرض

    ما رو باش همه جا رو فکر کردیم جز این یکی!

    دمت گرم ای ول...

  19. تشکرها از این نوشته :


  20. #10
    کاربر فعال naatamam آواتار ها
    تاریخ عضویت
    Apr 2009
    نام
    حسن معماری
    نوشته ها
    283
    تشکر
    287
    تشکر شده 877 بار در 286 پست

    پیش فرض

    نقل قول نوشته اصلی توسط agape نمایش پست ها
    خوب دایی جان یکی از راهکار های دیگه استفاده از malloc و free هست که اول شما میآی مثلا یک کیلو بایت رو اختصاص میدی به heap برنامه هست. ساز و کار به این صورته که شما برای عملیاتی نیاز به بافر توی یه تابع داری ، میای اونو با دستور مالوک میگیری از هیپ و بعد از اتمام کار اونو با دستور فری به سیستم بر میگردونی ، یا اگر نیاز به پاس دادن داشته باشی ، یعنی بخوای یه آرایه رو پاس بدی باز این دستورات خیلی به درد میخوره ، بعد حتی میتونی متغیرت هات رو روی یه حافظه خارجی سریال ذخیره کنی و توبعی رو برای دسترسی اونا بنویسی !
    سلام

    این روشی را که گفتید را بیشتر نوضیح بدهید . من تا حالا نشنیده بودم.
    من هم مشکل sram داشتم البته در میکروی tiny26 مجبور شدم میکرو را عوض کنم!
    البته من فقط کدویژن بلدم.

  21. کاربران : 2 تشکر کرده اند از شما naatamam برای ارسال این پست سودمند:


  22. #11
    مدیر باز نشسته behnam6500 آواتار ها
    تاریخ عضویت
    Jan 2009
    نوشته ها
    801
    تشکر
    311
    تشکر شده 899 بار در 390 پست

    پیش فرض

    خیلی سادست با malloc - calloc - realloc حافظه ای رو از سیستم میگیریم بصورت پویا وقتی کار تموم میشه برمیگرده به سیستم و حافظه ازاد میشه!

    من هیچ حواسم به این نبود! بهترین استفاده رو میشه از sram برد..

  23. تشکرها از این نوشته :


  24. #12
    مدير بخش STM32 sadmonew آواتار ها
    تاریخ عضویت
    Jun 2011
    نام
    صادق محمدي
    نوشته ها
    2,002
    تشکر
    6,283
    تشکر شده 3,115 بار در 1,408 پست

    پیش فرض

    نقل قول نوشته اصلی توسط naatamam نمایش پست ها
    من هم مشکل sram داشتم البته در میکروی tiny26 مجبور شدم میکرو را عوض کنم!البته من فقط کدویژن بلدم.
    سلام مهندس
    دستوراتي كه جناب مهندس agape معرفي كردن جزو دستورات استاندارد زبان سي هستش. و همه كامپايلرها اين دستورات رو دارن.
    _____________________________________
    _____________________________________

  25. تشکرها از این نوشته :


  26. #13
    مدیر باز نشسته behnam6500 آواتار ها
    تاریخ عضویت
    Jan 2009
    نوشته ها
    801
    تشکر
    311
    تشکر شده 899 بار در 390 پست

    پیش فرض

    دارم حافظه رو بصورت داینامیک تعریف میکنم...

    Before: Data: 3931 bytes (96.0% Full)

    After: Data: 3107 bytes (75.9% Full)

    باز هم دارم پویا میکنم...

  27. کاربران : 2 تشکر کرده اند از شما behnam6500 برای ارسال این پست سودمند:


موضوعات مشابه

  1. خطای حافظه ی Sram برای Attiny13
    توسط mapmap در انجمن پرسش و پاسخ (نرم افزارهای تخصصی)
    پاسخ: 12
    آخرين نوشته: 10-09-2018, 10:10
  2. سوال در مورد حافظه sram
    توسط mihman در انجمن AVR
    پاسخ: 13
    آخرين نوشته: 23-09-2011, 20:33
  3. پاسخ: 0
    آخرين نوشته: 13-05-2011, 00:49
  4. ارتقاي sram در برد آموزشي آرم
    توسط ena در انجمن AT91 series (ATMEL)
    پاسخ: 8
    آخرين نوشته: 03-08-2010, 16:40

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •