اطلاعیه

Collapse
No announcement yet.

avr ومشکل کمبود حافظه برای برنامه

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

    avr ومشکل کمبود حافظه برای برنامه

    سلام.
    من در برنامه ام یک متغییر بسیار بزرگ دارم که یک آرایه به صورت زیر هستش.
    unsigned long w[1280] ;//32bit(4byte)*1280
    این ارایه روی میکرو جا نمیشه. اونو چه جوری روی یک ای سی eeprom خارجی ذخیره کنم و لطفا دستوراتش رو تو codevision بهم بگید.
    البته اگه راهی به ذهنتون میرسه غیر از ای سی eeprom هم بهم بگید.
    با تشکر.
    king15

    #2
    پاسخ : avr ومشکل کمبود حافظه برای برنامه

    حجم این آرایه بیشتر از 5 کیلو بایت هست. اگر میخوای مدام باهاش کار کنی که جاش توی ایپرام نیست. یا رم خارجی استفاده کن یا الگوریتم رو جوری بهینه کن که در حین اجرا به این میزان حافظه احتیاج نداشته باشی یا از یک آی سی با رم بالاتر مثل xmega استفاده کن.

    دیدگاه


      #3
      پاسخ : avr ومشکل کمبود حافظه برای برنامه

      آی سی های فلش ساخته توشیبا با قابلیت اتصال سریال رو میتونی تو بازار پیدا کنی متاسفانه الان به شماره آی سی دسترسی ندارم برات بذارم

      دیدگاه


        #4
        پاسخ : avr ومشکل کمبود حافظه برای برنامه

        اگر فلش باشه که تعداد دفعات نوشتن توش محدوده و کار ram رو نمیکنه.

        دیدگاه


          #5
          پاسخ : avr ومشکل کمبود حافظه برای برنامه

          نوشته اصلی توسط رضا آقازاده
          حجم این آرایه بیشتر از 5 کیلو بایت هست. اگر میخوای مدام باهاش کار کنی که جاش توی ایپرام نیست. یا رم خارجی استفاده کن یا الگوریتم رو جوری بهینه کن که در حین اجرا به این میزان حافظه احتیاج نداشته باشی یا از یک آی سی با رم بالاتر مثل xmega استفاده کن.
          00000000000000000000000000000000000000000000000000 000000000000000000000000000000000
          میشه توضیح بدین چه طوری از رم استفاده کنم. یعنی دستورات و تنظیمات توی codevision اون چطوری؟ یکم توضیح بیشتر لطفا :mrgreen:

          دیدگاه


            #6
            پاسخ : avr ومشکل کمبود حافظه برای برنامه

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

            چه میکرویی استفاده میکنی؟ اگر مگا هشت هست که بی خیال حافظه خارجی. یه چیزی مثل مگا 64 یا مگا 162 میخوای برای رم خارجی یا حداقل یک میکرو که اگه رم خارجی رو ساپورت نمیکنه پایه های آزادش زیاد باشه. چیزی حداقل برابر 16 عدد. برای 8 کیلو بایت.

            دیدگاه


              #7
              پاسخ : avr ومشکل کمبود حافظه برای برنامه

              نوشته اصلی توسط رضا آقازاده
              اگر فلش باشه که تعداد دفعات نوشتن توش محدوده و کار ram رو نمیکنه.
              چه محدودیتی فلش داره؟ چون در اکثر نرم افزارهایی که دیدم ارایه را در فلش قرار میدن.

              دیدگاه


                #8
                پاسخ : avr ومشکل کمبود حافظه برای برنامه

                اگر منظورتون برنامه های مرسوم میکروهای avr هست که اونها داده های ثابت رو در فلش قرار میدن. نه داده ای که مدام بخواییم عوضش کنیم. ایپرام هم علی الاصول داده هایی رو درش قرار میدن که نخواییم به سرعت عوضشون کنیم ولی بخواییم با قطع برق هم از دست نرن. این فلش-ی که دوستمون هم فرمودن بنظر میرسه از انواع فلش هایی هست که قابلیت بازنویسی دارن. مثل NAND-FLASH یا NOR-FLASH.
                اگر اینطوری بود که دیگه چه احتیاجی بود به داشتن ایپرام یا حتی رم؟ همیشه فلش استفاده میکردیم.

                مثلا برای یک ایپرام سریال در نظر بگیرین. خوندن خیلی خیلی سریعتره تا نوشتن. فکر میکنم هر بار نوشتن چیزی حدود 5 میلی ثانیه زمان ببره. در صورتیکه در سرعت 1 مگا هرتزی شما میتونین در عرض 2 الی 3 میکروثانیه (داخلی یا خارجی) در رم چیزی بنویسین یا ازش بخونین. مضلف بر اینکه هر بایت رم میکروی شما قابلیت آدرس دهی مستقیم داره که معمولا در فلش و ایپرام خارجی (جز در انواع پارالل) امکانپذیر نیست.

                حالا نگفتی مشکلت دقیقا چیه؟ منظورم اونایی که در پست قبلی بهشون اشاره کردم.

                دیدگاه


                  #9
                  پاسخ : avr ومشکل کمبود حافظه برای برنامه

                  تو گوگل سرچ کن : استفاده از MMC به عنوان حافظه میکرو . یه PDF هست دانلودش کن ، بخونش ، مشکلت حل میشه
                  دلا خو کن به تنهایی که از تنها بلا خیزد

                  دیدگاه


                    #10
                    پاسخ : avr ومشکل کمبود حافظه برای برنامه

                    شما تا حالا یعنی اصلا براتون پیش نیومده با متغییر های پر حجم و بزرگ کار کنید!!!!!!!!!!
                    ببینید دکتر ها و مهندسین عزیز. من باید با 6 تا آرایه به صورت زیر داشته باشم که برای یک نوع رمز در مخابرات استفاده میشه که 3 تای اول فقط یک بار پر میشه ولی 3 تای دوم با توجه به حجم اطلاعات موجود برای رمز کردن ممکن چندین بار تغییر کنه.آرایه ها به این شکله و همه هم از نوع unsigned long هستش:
                    1-unsignde long w[1280]//32bit *1280
                    2-unsigned long p1[512]//32bit*512
                    3-unsigned long q1[512]//32bit*512
                    4-unsigned long p2[512]//32bit*512
                    5-unsigned long q2[512]//32bit*512
                    6-unsigned long key[512]//32bit*512
                    آرایه های 4 و 5و و6 با توجه به حجم اطلاعات ممکن چندین بار فراخوانی و بر اساسد یک الگوریتمی تغییر پیدا کنند.
                    حالا عزیزان بزرگوار اگر میشه لطف کنید و نمونه کد با طریقه تنظیمات اون در نرم افزار codevision (که من فقط همین نرم افزار رو بلدم) برای ما بزارند.
                    خواهش می کنم صورت مسئله رو عوض نکنید(با Xmega کار کن!!!!) من حول و هوش همین atmega 32 یا atmega 64 باشم فعلا برام کافیه!
                    باز هم تشکر از همه دوستانی که تا الان لطف کردند و راهنمایی نمودند.
                    king15

                    دیدگاه


                      #11
                      پاسخ : avr ومشکل کمبود حافظه برای برنامه

                      پس با این اوصاف شما مجبوری از رم خارجی استفاده کنی. مشکل هم کد و اینجور چیزا نیست. فقط یه کمی سخت افزارت ممکنه تغییر کنه. اگر از مگا 64 استفاده میکنی که راحتی. فقط پورت A و C و سه بیت پایینی پورت G رو از دست میدی. با همون کد ویژن هم کارت براحتی راه میفته. امکانش هست این تغییر رو توی سخت افزارت بدی؟

                      دیدگاه


                        #12
                        پاسخ : avr ومشکل کمبود حافظه برای برنامه

                        بله من مشکلی با سخت افزار ندارم فقط طریقه تنظیماتش و کد های نورد نیاز رو بلد نیستم.
                        اگه امکانش هست کد لازم برای تعریف کردن آرایه ها و اصلا طریقه اتصال و هر چیزی که لازمه رو از اول در رابطه با استفاده از رم خارجی بگین.
                        ممنون king15
                        :read:

                        دیدگاه


                          #13
                          پاسخ : avr ومشکل کمبود حافظه برای برنامه

                          متاسفانه بعد از تغییرات سایت من هنوز نمیدونم چطوری باید عکس پ کنم. اگر راهی دارین بگین تا شماتیک مورد نیازتون رو براتون بفرستم.

                          دیدگاه


                            #14
                            پاسخ : avr ومشکل کمبود حافظه برای برنامه

                            نوشته اصلی توسط رضا آقازاده
                            متاسفانه بعد از تغییرات سایت من هنوز نمیدونم چطوری باید عکس پ کنم. اگر راهی دارین بگین تا شماتیک مورد نیازتون رو براتون بفرستم.
                            سلام.برای این کار ابتدا به سایت up.vatandownload بروید و سپس عکس را پلود کنید.لینک عکس را کپی کنید و سپس در قسمتی که می خواهید پست بدید گزینه ای به نام قرار دادن عکس هست که لینک آن را می توانید بین آن دو کروشه کپی کنید.
                            یا مستقیما [img][/img] این دستور رو قرار دهید و بین این دو کروشه لینک عکس را بگذارید.

                            این تایپیک هم ببینید:http://www.eca.ir/forum2/index.php?topic=53859.0
                            همیشه در حال یادگیری.سعی می کنم موانع سر راهم را بردارم.

                            دیدگاه


                              #15
                              پاسخ : avr ومشکل کمبود حافظه برای برنامه

                              البته ممنون از توضیحاتتون. ولی مشکل به روش سنتی و با ایمیل حل شد.
                              انشالله تا دفعه بعدی یادم میمونه. باز هم ممنون.

                              دیدگاه

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